import { LoaderIcon, PlusIcon } from "@lume/icons"; import { User } from "@lume/ui"; import { Link } from "@tanstack/react-router"; import { createFileRoute, redirect, useNavigate } from "@tanstack/react-router"; import { useState } from "react"; export const Route = createFileRoute("/")({ beforeLoad: async ({ context }) => { const ark = context.ark; const accounts = await ark.get_all_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].npub; const loadedAccount = await ark.load_selected_account(account); if (loadedAccount) { throw redirect({ to: "/$account/home", params: { account }, replace: true, }); } // Account selection default: return { accounts }; } }, component: Screen, }); function Screen() { const navigate = 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 (

{currentDate}

Welcome back!

{loading ? (
) : ( <> {context.accounts.map((account) => ( ))}

Add

)}
Lock Screen Background Design by NoGood
); }