import { useEffect, useState } from 'react'; import { invoke } from '@tauri-apps/api/core'; export default function Root() { const [existingAccounts, setExistingAccounts] = useState([]) const [signedIn, setSignedIn] = useState<{serverDomain: string, username: string} | null>(null) const [accountData, setAccountData] = useState('') async function signIn() { let [serverDomain, username] = await invoke('start_account_auth', {instanceDomain: 'social.tempest.dev'}) as string[] setSignedIn({serverDomain, username}) } async function getSelf() { if (!signedIn) throw new Error("Not signed in") const {serverDomain, username} = signedIn; let result = await invoke('get_self', {serverDomain, username}) as string setAccountData(JSON.parse(result)) } useEffect(() => { (async () => { setExistingAccounts(await invoke('get_all_accounts')) })() }, []) return ( <> {!signedIn ? ( <>

Existing accounts:

{existingAccounts.map(({username, server_domain}: {username: string, server_domain: string}) => ( <>
))} ) : (!accountData ? ( ):(

Result from rust:

{JSON.stringify(accountData, null, 2)}

))} ) }