Skip to content

Commit 753f06c

Browse files
authored
chore: Migrate useSelfHostedUserList to TS Query V5 (#3575)
1 parent 92c721b commit 753f06c

File tree

6 files changed

+337
-254
lines changed

6 files changed

+337
-254
lines changed

src/pages/AdminSettings/AdminMembers/MemberList/MemberTable.test.jsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ const mockOpenSeatsTaken = {
6666
const queryClient = new QueryClient({
6767
defaultOptions: { queries: { retry: false, cacheTime: Infinity } },
6868
})
69-
7069
const queryClientV5 = new QueryClientV5({
7170
defaultOptions: { queries: { retry: false, cacheTime: Infinity } },
7271
})
@@ -88,7 +87,7 @@ beforeAll(() => {
8887
server.listen()
8988
})
9089

91-
beforeEach(() => {
90+
afterEach(() => {
9291
queryClient.clear()
9392
queryClientV5.clear()
9493
server.resetHandlers()

src/pages/AdminSettings/AdminMembers/MemberList/MemberTable.tsx

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ import {
44
useQueryClient,
55
} from '@tanstack/react-query'
66
import {
7-
useQueryClient as useQueryClientV5,
87
useSuspenseQuery as useSuspenseQueryV5,
8+
useInfiniteQuery as useInfiniteQueryV5,
9+
useQueryClient as useQueryClientV5,
910
} from '@tanstack/react-queryV5'
1011
import {
1112
createColumnHelper,
@@ -19,9 +20,13 @@ import { useInView } from 'react-intersection-observer'
1920
import { useParams } from 'react-router'
2021

2122
import { useLocationParams } from 'services/navigation'
22-
import { UserListOwner, useSelfHostedUserList } from 'services/selfHosted'
2323
import { SelfHostedSettingsQueryOpts } from 'services/selfHosted/SelfHostedSettingsQueryOpts'
24+
import {
25+
SelfHostedUserListQueryOpts,
26+
UserListOwner,
27+
} from 'services/selfHosted/SelfHostedUserListQueryOpts'
2428
import Api from 'shared/api'
29+
import { Provider } from 'shared/api/helpers'
2530
import Spinner from 'ui/Spinner'
2631
import Toggle from 'ui/Toggle'
2732

@@ -59,11 +64,6 @@ const columns = [
5964
}),
6065
]
6166

62-
interface MutationArgs {
63-
activated: boolean
64-
ownerid: number
65-
}
66-
6767
interface CreateTableArgs {
6868
tableData: UserListOwner[]
6969
seatData: SelfHostedSettings
@@ -96,6 +96,35 @@ const createTable = ({ tableData, seatData, mutate }: CreateTableArgs) => {
9696
)
9797
}
9898

99+
interface Params {
100+
activated?: boolean
101+
search?: string
102+
isAdmin?: boolean
103+
}
104+
105+
const useQueryMembersList = (params: Params) => {
106+
const {
107+
data: queryData,
108+
isFetchingNextPage,
109+
hasNextPage,
110+
fetchNextPage,
111+
isLoading,
112+
} = useInfiniteQueryV5(SelfHostedUserListQueryOpts(params))
113+
114+
const flatUsersList = useMemo(
115+
() => queryData?.pages?.flatMap((page) => page.results) ?? [],
116+
[queryData?.pages]
117+
)
118+
119+
return {
120+
data: flatUsersList,
121+
isFetchingNextPage,
122+
hasNextPage,
123+
fetchNextPage,
124+
isLoading,
125+
}
126+
}
127+
99128
const Loader = () => (
100129
<div className="mb-4 flex justify-center pt-4">
101130
<Spinner />
@@ -118,7 +147,12 @@ function LoadMoreTrigger({
118147
}
119148

120149
interface URLParams {
121-
provider: string
150+
provider: Provider
151+
}
152+
153+
interface MutationArgs {
154+
activated: boolean
155+
ownerid: number
122156
}
123157

124158
function MemberTable() {
@@ -136,7 +170,7 @@ function MemberTable() {
136170
})
137171

138172
const { data, isFetchingNextPage, hasNextPage, fetchNextPage, isLoading } =
139-
useSelfHostedUserList(params)
173+
useQueryMembersList(params)
140174

141175
const { mutate } = useMutation({
142176
mutationFn: ({ activated, ownerid }: MutationArgs) =>
@@ -147,7 +181,9 @@ function MemberTable() {
147181
queryKey: SelfHostedSettingsQueryOpts({ provider }).queryKey,
148182
})
149183
queryClient.invalidateQueries(['Seats'])
150-
queryClient.invalidateQueries(['SelfHostedUserList'])
184+
queryClientV5.invalidateQueries({
185+
queryKey: SelfHostedUserListQueryOpts(params).queryKey,
186+
})
151187
},
152188
})
153189

0 commit comments

Comments
 (0)