import { Button } from "./theme"; import cn from "./utils/classnames.ts"; import { formatBytes } from "./utils/format.ts"; import Translator from "./ai/Translator.ts"; import Card from "./theme/misc/Card.tsx"; import Introduction from "./components/Introduction.tsx"; import ModelLoader from "./components/ModelLoader.tsx"; import { flushSync } from "react-dom"; import Waiting from "./components/Waiting.tsx"; interface InitializeProps { progress: number; onInitialize: () => Promise; isInitializing?: boolean; className?: string; } export default function Initialize({ progress, onInitialize, isInitializing = false, className = "", }: InitializeProps) { const handleInitialize = async () => { if (document.startViewTransition) { document.startViewTransition(() => { flushSync(() => { onInitialize(); }); }); } else { await onInitialize(); } }; return (
{isInitializing ? (
) : (
)}
); }