import {useQuery,useQueryClient} from "@tanstack/react-query" import {useSession} from "./session" import {useAccountSelection} from "./account" import type {Account} from "../lib/types" export function useAccounts(){ const {session,client}=useSession();const selectedID=useAccountSelection(state=>state.accountID) const query=useQuery({queryKey:["accounts",session?.user.id],enabled:!!session,queryFn:({signal})=>client("/api/v1/accounts",{signal})}) const accounts=query.data??[];const selected=accounts.find(account=>account.id===selectedID)??accounts[0]??null return {...query,accounts,selected} } export function useSwitchAccount(){const queryClient=useQueryClient();return async(id:string)=>{await queryClient.cancelQueries();queryClient.removeQueries({predicate:query=>query.queryKey[0]!=="accounts"});useAccountSelection.getState().select(id)}}