diff --git a/src/components/DragAndDrop.tsx b/src/components/DragAndDrop.tsx index 76dc45a..f9b248d 100644 --- a/src/components/DragAndDrop.tsx +++ b/src/components/DragAndDrop.tsx @@ -10,7 +10,7 @@ import { DragDropEvent } from "@tauri-apps/api/webview"; interface DragAndDropProps { className?: string; - onFile: (path: string) => void; + onFile?: (path: string) => void; } export default function DragAndDrop({ className, onFile }: DragAndDropProps) { @@ -41,7 +41,7 @@ export default function DragAndDrop({ className, onFile }: DragAndDropProps) { async (event) => { setIsHovering({ state: "off" }); if (await isValid(event.payload.paths)) { - onFile(event.payload.paths[0]); + onFile?.(event.payload.paths[0]); } } ).then((fn) => fn); @@ -87,7 +87,7 @@ export default function DragAndDrop({ className, onFile }: DragAndDropProps) { }); if (selectedFile !== null && (await exists(selectedFile))) { - onFile(selectedFile); + onFile?.(selectedFile); } } diff --git a/src/views/SaveSelector.tsx b/src/views/SaveSelector.tsx index a6d4ae7..574a423 100644 --- a/src/views/SaveSelector.tsx +++ b/src/views/SaveSelector.tsx @@ -10,7 +10,11 @@ type SaveFile = { last_modified: string; }; -export default function SaveSelector() { +interface SaveSelectorProps { + onFile?: (path: string) => void; +} + +export default function SaveSelector({ onFile }: SaveSelectorProps) { const [saveFiles, setSaveFiles] = useState([]); useEffect(() => { @@ -21,11 +25,12 @@ export default function SaveSelector() { }); }, []); - function Item({ file }: { file: SaveFile }) { + function Item({ file, onClick }: { file: SaveFile; onClick: () => void }) { return (
@@ -42,13 +47,20 @@ export default function SaveSelector() { return ( <> - {}} /> +
Or, select a save file from below
{saveFiles.map((file) => { - return ; + return ( + { + onFile?.(file.path); + }} + file={file} + /> + ); })}