@@ -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,24 +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- const intervalId = setInterval ( healthCheck , 3000 ) ;
96-
97- return ( ) => clearInterval ( intervalId ) ;
98- } , [ 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 ] ) ;
9989
10090 useEffect ( ( ) => {
10191 if ( autoSelectAgent !== undefined ) {
@@ -254,14 +244,12 @@ export default function Home() {
254244 if ( error instanceof LocalClientError ) {
255245 setErrorMessage ( error . message ) ;
256246 setShowErrorModal ( true ) ;
257- } else {
258- console . error ( error ) ;
259247 }
248+ } finally {
249+ setIsEditing ( false ) ;
250+ setEditingPreset ( null ) ;
251+ setOriginalPreset ( null ) ;
260252 }
261-
262- setIsEditing ( false ) ;
263- setEditingPreset ( null ) ;
264- setOriginalPreset ( null ) ;
265253 } ;
266254
267255 const handlePresetDelete = ( presetId : string ) => {
@@ -315,8 +303,6 @@ export default function Home() {
315303 setIsNewPresetFromPlus ( false ) ;
316304 } ;
317305
318-
319-
320306 const handleCloseErrorModal = ( ) => {
321307 setShowErrorModal ( false ) ;
322308 } ;
@@ -368,12 +354,15 @@ export default function Home() {
368354
369355 if ( isLoading || dataContextLoading ) {
370356 return (
371- < div className = "d-flex flex-column justify-content-center align-items-center vh-100" >
372- < div className = "spinner-border" role = "status" >
373- < span className = "visually-hidden" > Loading...</ span >
357+ < >
358+ < Header performUpdateAction = { handleUpdate } />
359+ < div className = "d-flex flex-column justify-content-center align-items-center vh-100" >
360+ < div className = "spinner-border" role = "status" >
361+ < span className = "visually-hidden" > Loading...</ span >
362+ </ div >
363+ < p className = "mt-3" > { loadingMessage } </ p >
374364 </ div >
375- < p className = "mt-3" > { loadingMessage } </ p >
376- </ div >
365+ </ >
377366 ) ;
378367 }
379368
@@ -415,7 +404,7 @@ export default function Home() {
415404 </ div >
416405 </ div >
417406 </ main >
418- { 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' } /> }
419408 < PresetNameModal show = { showPresetNameModal } onClose = { handleClosePresetNameModal } onSave = { handleSavePresetName } initialName = { renamingPreset ?. name } />
420409 < ErrorModal show = { showErrorModal } onClose = { handleCloseErrorModal } message = { errorMessage } />
421410 < Toast show = { showToast } onClose = { ( ) => setShowToast ( false ) } message = { toastMessage } />
@@ -428,4 +417,4 @@ export default function Home() {
428417 />
429418 </ >
430419 ) ;
431- }
420+ }
0 commit comments