import { useState } from "react"; import usePyodideBackend from "./usePyodideBackend.ts"; export default function useAppLogic() { const { getBackend, backendReady } = usePyodideBackend(); const [sampleImageUrl, setSampleImageUrl] = useState(null); const [sampleLabel, setSampleLabel] = useState(null); async function onImageFolderUpload(files: File[]) { if (!backendReady) { return; } await getBackend().handleImageFolderUpload(files); } async function getRandomSample() { if (!backendReady) { return; } const { imageUrl, label } = await getBackend().handleGetRandomSample(); setSampleImageUrl(prev => { if (prev) { URL.revokeObjectURL(prev); } return imageUrl; }); setSampleLabel(label); } return { getBackend, backendReady, onImageFolderUpload, getRandomSample, sampleImageUrl, sampleLabel, }; }