import { PlusIcon } from "@lume/icons"; import { Spinner, User } from "@lume/ui"; import { Link } from "@tanstack/react-router"; import { createFileRoute, redirect } from "@tanstack/react-router"; import { invoke } from "@tauri-apps/api/core"; import { useState } from "react"; export const Route = createFileRoute("/")({ beforeLoad: async ({ context }) => { const ark = context.ark; const accounts = await ark.get_all_accounts(); // Run notification service if (accounts.length > 0) { await invoke("run_notification", { accounts }); } switch (accounts.length) { // Guest account case 0: throw redirect({ to: "/landing", replace: true, }); // Only 1 account, skip account selection screen case 1: { const account = accounts[0]; const loadedAccount = await ark.load_selected_account(account); if (loadedAccount) { throw redirect({ to: "/$account/home", params: { account }, replace: true, }); } break; } // Account selection default: return { accounts }; } }, component: Screen, }); function Screen() { const navigate = Route.useNavigate(); const context = Route.useRouteContext(); const [loading, setLoading] = useState(false); const select = async (npub: string) => { setLoading(true); const ark = context.ark; const loadAccount = await ark.load_selected_account(npub); if (loadAccount) { return navigate({ to: "/$account/home", params: { account: npub }, replace: true, }); } }; const currentDate = new Date().toLocaleString("default", { weekday: "long", month: "long", day: "numeric", }); return (
Add