import { MutinyWallet } from "@mutinywallet/mutiny-wasm"; import { createSignal, Show } from "solid-js"; import { Button, InfoBox, InnerCard, NiceP, SimpleDialog, TextField, VStack } from "~/components"; import { useI18n } from "~/i18n/context"; import { downloadTextFile, eify } from "~/utils"; export function Logs() { const i18n = useI18n(); // Create state for errors, password and dialog visibility const [error, setError] = createSignal(); const [exportDecrypt, setExportDecrypt] = createSignal(false); const [password, setPassword] = createSignal(); async function handleSave() { try { setError(undefined); const logs = await MutinyWallet.get_logs(password()); // Use password if required await downloadTextFile( logs.join("") || "", "mutiny-logs.txt", "text/plain" ); } catch (e) { console.error(e); const err = eify(e); if (err.message === "Incorrect password entered.") { setExportDecrypt(true); } else { setError(err); } } } function savePassword(e: Event) { e.preventDefault(); handleSave(); setPassword(undefined); // clear password after use setExportDecrypt(false); // close the dialog } function noop() { // noop } return ( {i18n.t("settings.emergency_kit.logs.something_screwy")} {error()?.message}
setPassword(e.currentTarget.value)} error={""} onBlur={noop} onChange={noop} /> {error()?.message}
); }