import { useNavigate, type RouteSectionProps } from "@solidjs/router"; import { createSignal, Show, type Component, type JSX } from "solid-js"; import { Title } from "@solidjs/meta"; import { Portal } from "solid-js/web"; import { Flex } from "~/components/ui/flex"; import { Progress, ProgressLabel, ProgressValueLabel, } from "~/components/ui/progress"; // import { db } from "~/db"; import { loadDb } from "~/db-queries"; import { decryptBackup } from "~/lib/decryptor"; export const Home: Component = () => { const [decryptionProgress, setDecryptionProgress] = createSignal(); const [isLoadingDatabase, setIsLoadingDatabase] = createSignal(false); const [passphrase, setPassphrase] = createSignal(""); const navigate = useNavigate(); const onFileChange: JSX.ChangeEventHandler = ( event, ) => { const file = event.currentTarget.files?.[0]; const currentPassphrase = passphrase(); if (file && currentPassphrase) { decryptBackup(file, currentPassphrase, setDecryptionProgress) .then((result) => { setDecryptionProgress(undefined); setIsLoadingDatabase(true); setTimeout(() => { loadDb(result.database_statements); setIsLoadingDatabase(false); navigate("/overview"); }, 0); }) .catch((error) => { console.error("Decryption failed:", error); }); } }; return ( <>

Decrypting database

`${value}%`} class="w-[300px] space-y-1" >
Processing...

Loading database

Signal stats
setPassphrase(event.currentTarget.value)} />
); }; export default Home;