Spaces:
Running
Running
| import { useQuery } from "@tanstack/react-query"; | |
| import { useAuth } from "@/context/AuthContext"; | |
| import { getConfig, getKbStats, listDocuments } from "@/lib/api"; | |
| /** | |
| * The user id is still part of every query KEY so switching accounts cannot | |
| * surface the previous account's cached rows — but it is no longer passed to | |
| * the API, which derives identity from the bearer token instead. | |
| */ | |
| function useScopeKey(): string { | |
| const { session } = useAuth(); | |
| return session?.userId ?? "anonymous"; | |
| } | |
| /** App config + model catalog (public, fetched once). */ | |
| export function useConfig() { | |
| return useQuery({ | |
| queryKey: ["config"], | |
| queryFn: getConfig, | |
| staleTime: Infinity, | |
| }); | |
| } | |
| /** Documents in the authenticated user's knowledge base. */ | |
| export function useDocuments() { | |
| const scope = useScopeKey(); | |
| const { isAuthenticated } = useAuth(); | |
| return useQuery({ | |
| queryKey: ["documents", scope], | |
| queryFn: listDocuments, | |
| enabled: isAuthenticated, | |
| }); | |
| } | |
| /** Knowledge-base stats (chunk + document counts). */ | |
| export function useKbStats() { | |
| const scope = useScopeKey(); | |
| const { isAuthenticated } = useAuth(); | |
| return useQuery({ | |
| queryKey: ["kb-stats", scope], | |
| queryFn: getKbStats, | |
| enabled: isAuthenticated, | |
| }); | |
| } | |