Skip to content

Commit 12e8505

Browse files
authored
[PE-6052] Deprecate user hooks from audius-query (#11992)
1 parent 68af6dc commit 12e8505

File tree

33 files changed

+264
-606
lines changed

33 files changed

+264
-606
lines changed

packages/common/src/api/account.ts

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ import { useMemo } from 'react'
22

33
import { Id } from '@audius/sdk'
44
import dayjs from 'dayjs'
5-
import { useSelector } from 'react-redux'
65

76
import { managedUserListFromSDK, userManagerListFromSDK } from '~/adapters/user'
8-
import { QueryHookOptions, createApi } from '~/audius-query'
7+
import { createApi } from '~/audius-query'
98
import { ID, User, UserMetadata } from '~/models'
10-
import { accountSelectors } from '~/store/account'
119

12-
import { useGetUserAccount } from './user'
10+
import {
11+
CurrentUserWalletType,
12+
useCurrentAccount
13+
} from './tan-query/users/account/useCurrentAccount'
1314

1415
type ResetPasswordArgs = {
1516
email: string
@@ -227,37 +228,29 @@ const accountApi = createApi({
227228
}
228229
})
229230

230-
export const useGetCurrentUser = (
231-
_fetchArgs: {},
232-
options?: QueryHookOptions
233-
) => {
234-
const wallets = useSelector(accountSelectors.getWalletAddresses)
235-
const result = useGetUserAccount(
236-
{ wallet: wallets.currentUser! },
237-
{ ...options, disabled: !wallets.currentUser }
238-
)
239-
return { ...result, data: result.data ? result.data.user : null }
231+
// TODO: this is temporary jank to scope down changes - this will go soon when removing this whole file
232+
export const useGetCurrentUser = (_args?: any, options?: any) => {
233+
return {
234+
data: useCurrentAccount(CurrentUserWalletType.currentUser, options)?.data
235+
?.user
236+
}
240237
}
241238

242-
export const useGetCurrentWeb3User = (
243-
_fetchArgs: {},
244-
options?: QueryHookOptions
245-
) => {
246-
const wallets = useSelector(accountSelectors.getWalletAddresses)
247-
const result = useGetUserAccount(
248-
{ wallet: wallets.web3User! },
249-
{ ...options, disabled: !wallets.web3User }
250-
)
251-
252-
return { ...result, data: result.data ? result.data.user : null }
239+
// TODO: this is temporary jank to scope down changes - this will go soon when removing this whole file
240+
export const useGetCurrentWeb3User = (_args?: any, options?: any) => {
241+
return {
242+
data: useCurrentAccount(CurrentUserWalletType.web3User, options)?.data?.user
243+
}
253244
}
254245

255-
export const useGetCurrentUserId = (
256-
...args: Parameters<typeof useGetCurrentUser>
257-
) => {
258-
const result = useGetCurrentUser(...args)
246+
// TODO: this is temporary jank to scope down changes - this will go soon when removing this whole file
247+
export const useGetCurrentUserId = (_args?: any, options?: any) => {
248+
const result = useGetCurrentUser(_args, options)
259249
return useMemo(() => {
260-
return { ...result, data: result.data ? result.data.user_id : null }
250+
return {
251+
...result,
252+
data: result.data ? result.data.user_id : null
253+
}
261254
}, [result])
262255
}
263256

packages/common/src/api/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,14 @@ export * from './tan-query/notifications/useNotificationValidTypes'
4747

4848
// Purchases
4949
export * from './tan-query/purchases/useAudioTransactions'
50+
export * from './tan-query/purchases/useUSDCTransactions'
51+
export * from './tan-query/purchases/useUSDCTransactionsCount'
5052
export * from './tan-query/purchases/useAudioTransactionsCount'
5153
export * from './tan-query/purchases/usePurchases'
5254
export * from './tan-query/purchases/usePurchasesCount'
5355
export * from './tan-query/purchases/usePurchasers'
5456
export * from './tan-query/purchases/usePurchasersCount'
57+
export * from './tan-query/purchases/useSalesAggregate'
5558

5659
// Remixes
5760
export * from './tan-query/remixes/useRemixes'
@@ -81,6 +84,7 @@ export * from './tan-query/tracks/useStems'
8184
export * from './tan-query/tracks/useFileSizes'
8285
export * from './tan-query/tracks/useTrackFileInfo'
8386
export * from './tan-query/tracks/useUpdateTrack'
87+
export * from './tan-query/tracks/useRemixedTracks'
8488

8589
// Users
8690
export * from './tan-query/users/account/useCurrentUserId'

packages/common/src/api/tan-query/purchases/useSalesAggregate.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,23 @@ import { QUERY_KEYS } from '../queryKeys'
88
import { QueryKey, SelectableQueryOptions } from '../types'
99
import { useCurrentUserId } from '../users/account/useCurrentUserId'
1010

11+
export type SalesAggregateWithIntIds = Omit<SalesAggregate, 'contentId'> & {
12+
contentId: number
13+
}
14+
1115
export const getSalesAggregateQueryKey = (userId: ID | null | undefined) => {
1216
return [QUERY_KEYS.salesAggregate, userId] as unknown as QueryKey<
13-
SalesAggregate[] | null
17+
SalesAggregateWithIntIds[] | null
1418
>
1519
}
1620

1721
export const useSalesAggregate = <
18-
TResult = SalesAggregate[] | null | undefined
22+
TResult = SalesAggregateWithIntIds[] | null | undefined
1923
>(
20-
options?: SelectableQueryOptions<SalesAggregate[] | null | undefined, TResult>
24+
options?: SelectableQueryOptions<
25+
SalesAggregateWithIntIds[] | null | undefined,
26+
TResult
27+
>
2128
) => {
2229
const { audiusSdk } = useAudiusQueryContext()
2330
const { data: currentUserId } = useCurrentUserId()
@@ -30,7 +37,10 @@ export const useSalesAggregate = <
3037
const { data } = await sdk.users.getSalesAggregate({
3138
id: Id.parse(currentUserId)
3239
})
33-
return data
40+
return data?.map((sale) => ({
41+
...sale,
42+
contentId: parseInt(sale.contentId)
43+
}))
3444
},
3545
...options,
3646
enabled: options?.enabled !== false && !!currentUserId

packages/common/src/api/tan-query/purchases/useUSDCTransactions.ts

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
1+
import { useCallback } from 'react'
2+
13
import { full, Id } from '@audius/sdk'
2-
import { InfiniteData, useInfiniteQuery } from '@tanstack/react-query'
4+
import {
5+
InfiniteData,
6+
useInfiniteQuery,
7+
UseInfiniteQueryResult,
8+
useQueryClient
9+
} from '@tanstack/react-query'
310

411
import { useAudiusQueryContext } from '~/audius-query'
512
import { ID } from '~/models/Identifiers'
@@ -8,6 +15,7 @@ import { USDCTransactionDetails } from '~/models/USDCTransactions'
815
import { QUERY_KEYS } from '../queryKeys'
916
import { QueryKey, QueryOptions } from '../types'
1017
import { useCurrentUserId } from '../users/account/useCurrentUserId'
18+
import { loadNextPage } from '../utils'
1119

1220
const DEFAULT_PAGE_SIZE = 50
1321

@@ -73,15 +81,17 @@ export const useUSDCTransactions = (
7381
) => {
7482
const { audiusSdk } = useAudiusQueryContext()
7583
const { data: currentUserId } = useCurrentUserId()
84+
const queryClient = useQueryClient()
85+
const queryKey = getUSDCTransactionsQueryKey(currentUserId, {
86+
pageSize,
87+
sortMethod,
88+
sortDirection,
89+
type,
90+
method
91+
})
7692

77-
return useInfiniteQuery({
78-
queryKey: getUSDCTransactionsQueryKey(currentUserId, {
79-
pageSize,
80-
sortMethod,
81-
sortDirection,
82-
type,
83-
method
84-
}),
93+
const queryData = useInfiniteQuery({
94+
queryKey,
8595
initialPageParam: 0,
8696
getNextPageParam: (lastPage: USDCTransactionDetails[], allPages) => {
8797
if (lastPage.length < pageSize) return undefined
@@ -106,4 +116,22 @@ export const useUSDCTransactions = (
106116
...options,
107117
enabled: options?.enabled !== false && !!currentUserId
108118
})
119+
const reset = useCallback(() => {
120+
queryClient.resetQueries({
121+
queryKey
122+
})
123+
}, [queryClient, queryKey])
124+
125+
// @ts-ignore
126+
queryData.reset = reset
127+
const loadNextPageCallback = useCallback(
128+
() => loadNextPage(queryData),
129+
[queryData]
130+
)
131+
// @ts-ignore
132+
queryData.loadNextPage = loadNextPageCallback
133+
return queryData as UseInfiniteQueryResult<USDCTransactionDetails[]> & {
134+
reset: typeof reset
135+
loadNextPage: typeof loadNextPageCallback
136+
}
109137
}

packages/common/src/api/tan-query/users/account/useCurrentAccount.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,26 @@ export const getCurrentAccountQueryKey = (
2121
currentUserId
2222
] as unknown as QueryKey<AccountUserMetadata>
2323

24+
export enum CurrentUserWalletType {
25+
currentUser = 'currentUser',
26+
web3User = 'web3User'
27+
}
28+
2429
/**
2530
* Hook to get the currently logged in user's account
2631
*/
2732
export const useCurrentAccount = <
2833
TResult = AccountUserMetadata | null | undefined
2934
>(
35+
walletType: CurrentUserWalletType = CurrentUserWalletType.currentUser,
3036
options?: SelectableQueryOptions<
3137
AccountUserMetadata | null | undefined,
3238
TResult
3339
>
3440
) => {
3541
const { audiusSdk } = useAudiusQueryContext()
36-
const { currentUser } = useSelector(getWalletAddresses)
42+
const walletAddresses = useSelector(getWalletAddresses)
43+
const currentUserWallet = walletAddresses[walletType]
3744
const { data: currentUserId } = useCurrentUserId()
3845
const { localStorage } = useAppContext()
3946

@@ -58,7 +65,7 @@ export const useCurrentAccount = <
5865
return account
5966
}
6067
const { data } = await sdk.full.users.getUserAccount({
61-
wallet: currentUser!
68+
wallet: currentUserWallet!
6269
})
6370

6471
if (!data) {
@@ -71,6 +78,6 @@ export const useCurrentAccount = <
7178
},
7279
staleTime: options?.staleTime ?? Infinity,
7380
gcTime: Infinity,
74-
enabled: options?.enabled !== false && !!currentUser
81+
enabled: options?.enabled !== false && !!currentUserWallet
7582
})
7683
}

0 commit comments

Comments
 (0)