setSelectedModelId(null)}
+ onSlice={handleSlice}
+ />
+ ) : (
+ <>
+
+
{t('manyfold.description')}
+ {canConfigure && (
+
+ )}
+
+
+
+ {modelsQuery.isError ? (
+ {errorText(modelsQuery.error, t)}
+ ) : !listing ? (
+
+
+
+ ) : listing.models.length === 0 ? (
+ {t('manyfold.noModels')}
+ ) : (
+ <>
+
+
{t('manyfold.modelCount', { count: listing.total })}
+ {canImport && (
+
+ )}
+
+ {canImport && picked.size > 0 && (
+
+ {t('manyfold.modelsSelected', { count: picked.size })}
+
+ {gridProgress ? (
+
+
+ {gridProgress}
+
+ ) : (
+ <>
+
+
+ >
+ )}
+
+ )}
+
+ {listing.models.map((model) => {
+ const isPicked = picked.has(model.id);
+ return (
+
+ {/* Locked while the ticked models import, so a file can't be imported twice at once from the model view. */}
+
+ {canImport && (
+
+ )}
+
+ );
+ })}
+
+ {(listing.has_previous || listing.has_next) && (
+
+
+ {t('manyfold.page', { page: listing.page })}
+
+
+ )}
+ >
+ )}
+ >
+ )}
+ {sliceSource && setSliceSource(null)} />}
+