Files
Veyra/apps/mobile/src/state/accounts.ts
T
Blizzard 92329ddce2
Checks / verify (push) Failing after 9m52s
feat: 完成模拟交易闭环、App 与 A 股行情接入
统一单入口 Go 工程与前端依赖目录,增加后台供应商配置、候选审核、计划预算、成交冲正、持仓复盘和站内通知。接入策略版本、Python 回测、可配置 A 股公开行情及 zap 文件轮转日志,补充迁移、契约与验证。
2026-10-08 22:58:52 +08:00

12 lines
868 B
TypeScript

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<Account[]>("/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)}}