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 ( ); }