mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-08-21 22:44:00 +00:00
57 lines
1.3 KiB
TypeScript
57 lines
1.3 KiB
TypeScript
import { useQuery } from "@tanstack/react-query"
|
|
import { useAuth } from "@lib/auth-context"
|
|
|
|
export type SpaceProfile = {
|
|
static: string[]
|
|
dynamic: string[]
|
|
}
|
|
|
|
const API_BASE =
|
|
process.env.NEXT_PUBLIC_BACKEND_URL ?? "https://api.supermemory.ai"
|
|
|
|
type SpaceProfileResponse = {
|
|
profile?: {
|
|
static?: string[] | null
|
|
dynamic?: string[] | null
|
|
} | null
|
|
}
|
|
|
|
export function useSpaceProfile(containerTag: string) {
|
|
const { org } = useAuth()
|
|
const orgId = org?.id ?? ""
|
|
|
|
return useQuery({
|
|
queryKey: ["space-profile", orgId, containerTag],
|
|
queryFn: async (): Promise<SpaceProfile> => {
|
|
const response = await fetch(`${API_BASE}/v4/profile`, {
|
|
method: "POST",
|
|
credentials: "include",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
"X-App-Source": "nova",
|
|
},
|
|
body: JSON.stringify({ containerTag }),
|
|
})
|
|
|
|
if (!response.ok) {
|
|
const body = (await response.json().catch(() => ({}))) as {
|
|
error?: string
|
|
message?: string
|
|
}
|
|
throw new Error(
|
|
body.message ?? body.error ?? "Failed to load space profile",
|
|
)
|
|
}
|
|
|
|
const data = (await response.json()) as SpaceProfileResponse
|
|
const profile = data.profile
|
|
|
|
return {
|
|
static: profile?.static ?? [],
|
|
dynamic: profile?.dynamic ?? [],
|
|
}
|
|
},
|
|
enabled: !!orgId && !!containerTag,
|
|
staleTime: 60 * 1000,
|
|
})
|
|
}
|