Spaces:
Running
Running
| import { useState } from "react"; | |
| import usePyodideBackend from "./usePyodideBackend.ts"; | |
| export default function useAppLogic() { | |
| const { getBackend, backendReady } = usePyodideBackend(); | |
| const [sampleImageUrl, setSampleImageUrl] = useState<string | null>(null); | |
| const [sampleLabel, setSampleLabel] = useState<string | null>(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, | |
| }; | |
| } |