import { open } from "@tauri-apps/plugin-dialog";
import { useGalleryStore, Folder, IndexProgress } from "../store";
function FolderItem({
folder,
selected,
progress,
}: {
folder: Folder;
selected: boolean;
progress: IndexProgress | undefined;
}) {
const { selectFolder, removeFolder, reindexFolder } = useGalleryStore();
const isIndexing = progress && !progress.done;
return (
selectFolder(folder.id)}
>
{folder.name}
{isIndexing ? (
{progress.indexed}/{progress.total} indexed
) : (
{folder.image_count.toLocaleString()} items
)}
{isIndexing && (
0 ? (progress.indexed / progress.total) * 100 : 0}%`,
}}
/>
)}
);
}
export function Sidebar() {
const { folders, selectedFolderId, addFolder, indexingProgress, totalImages, selectFolder } =
useGalleryStore();
const handleAddFolder = async () => {
const selected = await open({
directory: true,
multiple: false,
title: "Select Media Folder",
});
if (selected && typeof selected === "string") {
await addFolder(selected);
}
};
return (
);
}