@@ -12,7 +12,7 @@ import Toast from '@/components/Toast';
1212import SettingsCard from '@/components/SettingsCard' ;
1313import ConfirmationModal from '@/components/ConfirmationModal' ;
1414import { Preset , LoadoutItemV1 } from '@/lib/types' ;
15- import { getPlayerLoadout , applyLoadout , getPresets , savePresets , getHealth } from '@/services/api' ;
15+ import { getPlayerLoadout , applyLoadout , getPresets , savePresets } from '@/services/api' ;
1616import { getSettings , saveSettings } from '@/services/settings' ;
1717import { LocalClientError } from '@/lib/errors' ;
1818import { useData } from '@/context/DataContext' ;
@@ -26,7 +26,7 @@ const defaultPreset: Preset = {
2626} ;
2727
2828export default function Home ( ) {
29- const { agents, loading : dataContextLoading } = useData ( ) ;
29+ const { agents, loading : dataContextLoading , isClientHealthy } = useData ( ) ;
3030 const [ currentLoadout , setCurrentLoadout ] = useState < Record < string , LoadoutItemV1 > > ( defaultPreset . loadout ) ;
3131 const [ presets , setPresets ] = useState < Preset [ ] > ( [ ] ) ;
3232 const [ selectedPreset , setSelectedPreset ] = useState < Preset | null > ( defaultPreset ) ;
@@ -49,6 +49,7 @@ export default function Home() {
4949
5050 const loadData = useCallback ( async ( ) => {
5151 try {
52+ setIsLoading ( true ) ;
5253 const [ playerLoadout , fetchedPresets , settings ] = await Promise . all ( [
5354 getPlayerLoadout ( ) ,
5455 getPresets ( ) ,
@@ -66,7 +67,6 @@ export default function Home() {
6667 setIsLoading ( false ) ;
6768 } catch ( error ) {
6869 if ( error instanceof LocalClientError ) {
69- setLoadingMessage ( "Waiting for VALORANT to start..." ) ;
7070 setIsLoading ( true ) ;
7171 } else {
7272 console . error ( error ) ;
@@ -78,25 +78,14 @@ export default function Home() {
7878 } , [ ] ) ;
7979
8080 useEffect ( ( ) => {
81- loadData ( ) ;
82- } , [ loadData ] ) ;
83-
84- useEffect ( ( ) => {
85- const healthCheck = async ( ) => {
86- const isHealthy = await getHealth ( ) ;
87- if ( isHealthy && isLoading ) {
88- loadData ( ) ;
89- } else if ( ! isHealthy && ! isLoading ) {
90- setIsLoading ( true ) ;
91- setLoadingMessage ( "Waiting for VALORANT to start..." ) ;
92- }
93- } ;
94-
95- healthCheck ( ) ;
96- const intervalId = setInterval ( healthCheck , 3000 ) ;
97-
98- return ( ) => clearInterval ( intervalId ) ;
99- } , [ isLoading , loadData ] ) ;
81+ if ( isClientHealthy ) {
82+ setLoadingMessage ( 'Loading application data...' ) ;
83+ loadData ( ) ;
84+ } else {
85+ setIsLoading ( true ) ;
86+ setLoadingMessage ( "Waiting for VALORANT to start..." ) ;
87+ }
88+ } , [ isClientHealthy , loadData ] ) ;
10089
10190 useEffect ( ( ) => {
10291 if ( autoSelectAgent !== undefined ) {
@@ -255,14 +244,12 @@ export default function Home() {
255244 if ( error instanceof LocalClientError ) {
256245 setErrorMessage ( error . message ) ;
257246 setShowErrorModal ( true ) ;
258- } else {
259- console . error ( error ) ;
260247 }
248+ } finally {
249+ setIsEditing ( false ) ;
250+ setEditingPreset ( null ) ;
251+ setOriginalPreset ( null ) ;
261252 }
262-
263- setIsEditing ( false ) ;
264- setEditingPreset ( null ) ;
265- setOriginalPreset ( null ) ;
266253 } ;
267254
268255 const handlePresetDelete = ( presetId : string ) => {
@@ -417,7 +404,7 @@ export default function Home() {
417404 </ div >
418405 </ div >
419406 </ main >
420- { isEditing && < Footer onSave = { handleSave } onCancel = { handleCancel } onSaveAsNew = { ( ) => handleOpenPresetNameModal ( false ) } onApply = { handleApply } showSaveButton = { originalPreset ?. uuid !== 'default-preset' } /> }
407+ { isEditing && < Footer onSave = { handleSave } onCancel = { handleCancel } onSaveAsNew = { ( ) => handleOpenPresetNameModal ( false ) } onApply = { handleApply } showSaveButton = { originalPreset ?. uuid !== 'default-preset' } /> }
421408 < PresetNameModal show = { showPresetNameModal } onClose = { handleClosePresetNameModal } onSave = { handleSavePresetName } initialName = { renamingPreset ?. name } />
422409 < ErrorModal show = { showErrorModal } onClose = { handleCloseErrorModal } message = { errorMessage } />
423410 < Toast show = { showToast } onClose = { ( ) => setShowToast ( false ) } message = { toastMessage } />
@@ -430,4 +417,4 @@ export default function Home() {
430417 />
431418 </ >
432419 ) ;
433- }
420+ }
0 commit comments