import { createSignal } from "solid-js"; import { ConfirmDialog } from "~/components/Dialog"; import { Button } from "~/components/layout"; import { showToast } from "~/components/Toaster"; import { useMegaStore } from "~/state/megaStore"; import eify from "~/utils/eify"; export function deleteDb(name: string) { const req = indexedDB.deleteDatabase(name); req.onsuccess = function () { console.log("Deleted database successfully"); showToast({ title: "Deleted", description: `Deleted "${name}" database successfully` }) }; req.onerror = function () { console.error("Couldn't delete database"); showToast(new Error("Couldn't delete database")) }; req.onblocked = function () { console.error("Couldn't delete database due to the operation being blocked"); showToast(new Error("Couldn't delete database due to the operation being blocked")) }; } export function DeleteEverything() { const [_state, actions] = useMegaStore(); async function confirmReset() { setConfirmOpen(true); } const [confirmOpen, setConfirmOpen] = createSignal(false); const [confirmLoading, setConfirmLoading] = createSignal(false); async function resetNode() { try { setConfirmLoading(true); await actions.deleteMutinyWallet(); showToast({ title: "Deleted", description: `Deleted all data` }) setTimeout(() => { window.location.href = "/"; }, 1000); } catch (e) { console.error(e) showToast(eify(e)) } finally { setConfirmOpen(false); setConfirmLoading(false); } } return ( <> setConfirmOpen(false)}> This will delete your node's state. This can't be undone! ) }