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