3
3
import { useQuery , useMutation } from '@apollo/client'
4
4
import { addToast } from '@heroui/toast'
5
5
import upperFirst from 'lodash/upperFirst'
6
- import { useParams , useSearchParams , useRouter } from 'next/navigation'
6
+ import { useParams } from 'next/navigation'
7
7
import { useSession } from 'next-auth/react'
8
8
import { useEffect , useMemo , useState } from 'react'
9
9
import { ErrorDisplay , handleAppError } from 'app/global-error'
@@ -19,32 +19,24 @@ import LoadingSpinner from 'components/LoadingSpinner'
19
19
20
20
const ProgramDetailsPage = ( ) => {
21
21
const { programKey } = useParams ( ) as { programKey : string }
22
- const searchParams = useSearchParams ( )
23
- const router = useRouter ( )
24
- const shouldRefresh = searchParams . get ( 'refresh' ) === 'true'
25
22
26
23
const { data : session } = useSession ( )
27
24
const username = ( session as ExtendedSession ) ?. user ?. login
28
25
29
26
const [ program , setProgram ] = useState < Program | null > ( null )
30
27
const [ modules , setModules ] = useState < Module [ ] > ( [ ] )
31
- const [ isRefetching , setIsRefetching ] = useState ( false )
32
28
33
29
const [ updateProgram ] = useMutation ( UPDATE_PROGRAM_STATUS_MUTATION , {
34
30
onError : handleAppError ,
35
31
} )
36
32
37
- const {
38
- data,
39
- refetch,
40
- loading : isQueryLoading ,
41
- } = useQuery ( GET_PROGRAM_AND_MODULES , {
33
+ const { data, loading : isQueryLoading } = useQuery ( GET_PROGRAM_AND_MODULES , {
42
34
variables : { programKey } ,
43
35
skip : ! programKey ,
44
36
notifyOnNetworkStatusChange : true ,
45
37
} )
46
38
47
- const isLoading = isQueryLoading || isRefetching
39
+ const isLoading = isQueryLoading
48
40
49
41
const isAdmin = useMemo (
50
42
( ) => ! ! program ?. admins ?. some ( ( admin ) => admin . login === username ) ,
@@ -77,7 +69,6 @@ const ProgramDetailsPage = () => {
77
69
status : newStatus ,
78
70
} ,
79
71
} ,
80
- refetchQueries : [ { query : GET_PROGRAM_AND_MODULES , variables : { programKey } } ] ,
81
72
} )
82
73
83
74
addToast ( {
@@ -93,28 +84,11 @@ const ProgramDetailsPage = () => {
93
84
}
94
85
95
86
useEffect ( ( ) => {
96
- const processResult = async ( ) => {
97
- if ( shouldRefresh ) {
98
- setIsRefetching ( true )
99
- try {
100
- await refetch ( )
101
- } finally {
102
- setIsRefetching ( false )
103
- const params = new URLSearchParams ( searchParams . toString ( ) )
104
- params . delete ( 'refresh' )
105
- const cleaned = params . toString ( )
106
- router . replace ( cleaned ? `?${ cleaned } ` : window . location . pathname , { scroll : false } )
107
- }
108
- }
109
-
110
- if ( data ?. getProgram ) {
111
- setProgram ( data . getProgram )
112
- setModules ( data . getProgramModules || [ ] )
113
- }
87
+ if ( data ?. getProgram ) {
88
+ setProgram ( data . getProgram )
89
+ setModules ( data . getProgramModules || [ ] )
114
90
}
115
-
116
- processResult ( )
117
- } , [ shouldRefresh , data , refetch , router , searchParams ] )
91
+ } , [ data ] )
118
92
119
93
if ( isLoading ) return < LoadingSpinner />
120
94
0 commit comments