@@ -219,6 +219,19 @@ export const ModsPage: React.FC = () => {
219219 }
220220 } ;
221221
222+ const refreshModsAndStates = async ( name : string ) => {
223+ for ( let i = 0 ; i < 4 ; i ++ ) {
224+ try {
225+ const data = await GetMods ( name ) ;
226+ setModsInfo ( data || [ ] ) ;
227+ await refreshEnabledStates ( name ) ;
228+ } catch {
229+ setModsInfo ( [ ] ) ;
230+ }
231+ await new Promise ( ( r ) => setTimeout ( r , 250 ) ) ;
232+ }
233+ } ;
234+
222235 useEffect ( ( ) => {
223236 const name = readCurrentVersionName ( ) ;
224237 if ( ! name ) {
@@ -420,11 +433,13 @@ export const ModsPage: React.FC = () => {
420433 }
421434 const data = await GetMods ( name ) ;
422435 setModsInfo ( data || [ ] ) ;
436+ void refreshEnabledStates ( name ) ;
423437 setResultSuccess ( succFiles ) ;
424438 setResultFailed ( errPairs ) ;
425439 if ( succFiles . length > 0 || errPairs . length > 0 ) {
426440 errOnOpen ( ) ;
427441 }
442+ await refreshEnabledStates ( currentVersionName ) ;
428443 } catch ( e : any ) {
429444 setErrorMsg ( String ( e ?. message || e || "IMPORT_ERROR" ) ) ;
430445 } finally {
@@ -555,8 +570,7 @@ export const ModsPage: React.FC = () => {
555570 succFiles . push ( f . name ) ;
556571 }
557572 }
558- const data = await GetMods ( currentVersionName ) ;
559- setModsInfo ( data || [ ] ) ;
573+ await refreshModsAndStates ( currentVersionName ) ;
560574 setResultSuccess ( succFiles ) ;
561575 setResultFailed ( errPairs ) ;
562576 if ( succFiles . length > 0 || errPairs . length > 0 ) {
@@ -619,6 +633,8 @@ export const ModsPage: React.FC = () => {
619633 }
620634 const data = await GetMods ( name ) ;
621635 setModsInfo ( data || [ ] ) ;
636+ await refreshEnabledStates ( name ) ;
637+ void refreshEnabledStates ( name ) ;
622638 requestAnimationFrame ( ( ) => {
623639 try {
624640 if ( scrollRef . current ) scrollRef . current . scrollTop = pos ;
@@ -767,8 +783,7 @@ export const ModsPage: React.FC = () => {
767783 succFiles . push ( f . name ) ;
768784 }
769785 }
770- const data = await GetMods ( currentVersionName ) ;
771- setModsInfo ( data || [ ] ) ;
786+ await refreshModsAndStates ( currentVersionName ) ;
772787 setResultSuccess ( succFiles ) ;
773788 setResultFailed ( errPairs ) ;
774789 if ( succFiles . length > 0 || errPairs . length > 0 ) {
0 commit comments