33import { useQuery , useMutation } from '@apollo/client'
44import { addToast } from '@heroui/toast'
55import upperFirst from 'lodash/upperFirst'
6- import { useParams , useSearchParams , useRouter } from 'next/navigation'
6+ import { useParams } from 'next/navigation'
77import { useSession } from 'next-auth/react'
88import { useEffect , useMemo , useState } from 'react'
99import { ErrorDisplay , handleAppError } from 'app/global-error'
@@ -19,32 +19,24 @@ import LoadingSpinner from 'components/LoadingSpinner'
1919
2020const ProgramDetailsPage = ( ) => {
2121 const { programKey } = useParams ( ) as { programKey : string }
22- const searchParams = useSearchParams ( )
23- const router = useRouter ( )
24- const shouldRefresh = searchParams . get ( 'refresh' ) === 'true'
2522
2623 const { data : session } = useSession ( )
2724 const username = ( session as ExtendedSession ) ?. user ?. login
2825
2926 const [ program , setProgram ] = useState < Program | null > ( null )
3027 const [ modules , setModules ] = useState < Module [ ] > ( [ ] )
31- const [ isRefetching , setIsRefetching ] = useState ( false )
3228
3329 const [ updateProgram ] = useMutation ( UPDATE_PROGRAM_STATUS_MUTATION , {
3430 onError : handleAppError ,
3531 } )
3632
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 , {
4234 variables : { programKey } ,
4335 skip : ! programKey ,
4436 notifyOnNetworkStatusChange : true ,
4537 } )
4638
47- const isLoading = isQueryLoading || isRefetching
39+ const isLoading = isQueryLoading
4840
4941 const isAdmin = useMemo (
5042 ( ) => ! ! program ?. admins ?. some ( ( admin ) => admin . login === username ) ,
@@ -77,7 +69,6 @@ const ProgramDetailsPage = () => {
7769 status : newStatus ,
7870 } ,
7971 } ,
80- refetchQueries : [ { query : GET_PROGRAM_AND_MODULES , variables : { programKey } } ] ,
8172 } )
8273
8374 addToast ( {
@@ -93,28 +84,11 @@ const ProgramDetailsPage = () => {
9384 }
9485
9586 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 || [ ] )
11490 }
115-
116- processResult ( )
117- } , [ shouldRefresh , data , refetch , router , searchParams ] )
91+ } , [ data ] )
11892
11993 if ( isLoading ) return < LoadingSpinner />
12094
0 commit comments