diff --git a/surfsense_web/atoms/invites/invites-query.atoms.ts b/surfsense_web/atoms/invites/invites-query.atoms.ts new file mode 100644 index 000000000..db1aa70a0 --- /dev/null +++ b/surfsense_web/atoms/invites/invites-query.atoms.ts @@ -0,0 +1,22 @@ +import { atomWithQuery } from "jotai-tanstack-query"; +import { activeSearchSpaceIdAtom } from "@/atoms/search-spaces/search-space-query.atoms"; +import { invitesApiService } from "@/lib/apis/invites-api.service"; +import { cacheKeys } from "@/lib/query-client/cache-keys"; + +export const invitesAtom = atomWithQuery((get) => { + const searchSpaceId = get(activeSearchSpaceIdAtom); + + return { + queryKey: cacheKeys.invites.all(searchSpaceId?.toString() ?? ""), + enabled: !!searchSpaceId, + staleTime: 5 * 60 * 1000, // 5 minutes + queryFn: async () => { + if (!searchSpaceId) { + return []; + } + return invitesApiService.getInvites({ + search_space_id: Number(searchSpaceId), + }); + }, + }; +});