@@ -7,24 +7,34 @@ import { playerAuthActivitySchema } from '../entities/playerAuthActivity'
77import canPerformAction , { PermissionBasedAction } from '../utils/canPerformAction'
88import { AuthedUser } from '../state/userState'
99
10- export default function usePlayerAuthActivities ( activeGame : Game , user : AuthedUser , playerId ?: string ) {
11- const fetcher = async ( [ url ] : [ string ] ) => {
12- const res = await makeValidatedGetRequest ( url , z . object ( {
13- activities : z . array ( playerAuthActivitySchema )
10+ export default function usePlayerAuthActivities ( activeGame : Game , user : AuthedUser , playerId : string | undefined , page : number ) {
11+ const fetcher = async ( [ url , page ] : [ string , number ] ) => {
12+ const qs = new URLSearchParams ( {
13+ page : String ( page )
14+ } ) . toString ( )
15+
16+ const res = await makeValidatedGetRequest ( `${ url } ?${ qs } ` , z . object ( {
17+ activities : z . array ( playerAuthActivitySchema ) ,
18+ count : z . number ( ) ,
19+ itemsPerPage : z . number ( ) ,
20+ isLastPage : z . boolean ( )
1421 } ) )
1522
1623 return res
1724 }
1825
1926 const { data, error } = useSWR (
2027 canPerformAction ( user , PermissionBasedAction . VIEW_PLAYER_AUTH_ACTIVITIES ) && playerId
21- ? [ `/games/${ activeGame . id } /players/${ playerId } /auth-activities` ]
28+ ? [ `/games/${ activeGame . id } /players/${ playerId } /auth-activities` , page ]
2229 : null ,
2330 fetcher
2431 )
2532
2633 return {
2734 activities : data ?. activities ?? [ ] ,
35+ count : data ?. count ,
36+ itemsPerPage : data ?. itemsPerPage ,
37+ isLastPage : data ?. isLastPage ,
2838 loading : ! data && ! error ,
2939 error : error && buildError ( error )
3040 }
0 commit comments