@@ -39,7 +39,7 @@ import * as AnalyticsController from "../controllers/analytics-controller";
3939import { getAuthenticatedUser , isAuthenticated } from "../firebase" ;
4040import * as ConnectionState from "../states/connection" ;
4141import * as KeymapEvent from "../observables/keymap-event" ;
42- import * as ArabicLazyMode from "../states/arabic -lazy-mode" ;
42+ import * as LazyModeState from "../states/remember -lazy-mode" ;
4343import Format from "../utils/format" ;
4444import { QuoteLength , QuoteLengthConfig } from "@monkeytype/schemas/configs" ;
4545import { Mode } from "@monkeytype/schemas/shared" ;
@@ -342,7 +342,6 @@ export function restart(options = {} as RestartOptions): void {
342342}
343343
344344let lastInitError : Error | null = null ;
345- let rememberLazyMode : boolean ;
346345let showedLazyModeNotification : boolean = false ;
347346let testReinitCount = 0 ;
348347
@@ -421,39 +420,43 @@ async function init(): Promise<boolean> {
421420 . some ( ( lang ) => ! lang . noLazyMode ) ;
422421
423422 if ( Config . lazyMode && ! anySupportsLazyMode ) {
424- rememberLazyMode = true ;
425- Notifications . add (
426- "None of the selected polyglot languages support lazy mode." ,
427- 0 ,
428- {
429- important : true ,
430- } ,
431- ) ;
423+ LazyModeState . setRemember ( true ) ;
424+ if ( ! showedLazyModeNotification ) {
425+ Notifications . add (
426+ "None of the selected polyglot languages support lazy mode." ,
427+ 0 ,
428+ {
429+ important : true ,
430+ } ,
431+ ) ;
432+ showedLazyModeNotification = true ;
433+ }
432434 setConfig ( "lazyMode" , false ) ;
433- } else if ( rememberLazyMode && anySupportsLazyMode ) {
434- setConfig ( "lazyMode" , true , {
435- nosave : true ,
436- } ) ;
435+ } else if ( LazyModeState . getRemember ( ) && anySupportsLazyMode ) {
436+ setConfig ( "lazyMode" , true ) ;
437+ LazyModeState . setRemember ( false ) ;
438+ showedLazyModeNotification = false ;
437439 }
438440 } else {
439441 // normal mode
440442 if ( Config . lazyMode && ! allowLazyMode ) {
441- rememberLazyMode = true ;
442- showedLazyModeNotification = true ;
443- Notifications . add ( "This language does not support lazy mode." , 0 , {
444- important : true ,
445- } ) ;
446-
443+ LazyModeState . setRemember ( true ) ;
444+ if ( ! showedLazyModeNotification ) {
445+ Notifications . add ( "This language does not support lazy mode." , 0 , {
446+ important : true ,
447+ } ) ;
448+ showedLazyModeNotification = true ;
449+ }
447450 setConfig ( "lazyMode" , false ) ;
448- } else if ( rememberLazyMode && ! language . noLazyMode ) {
449- setConfig ( "lazyMode" , true , {
450- nosave : true ,
451- } ) ;
451+ } else if ( LazyModeState . getRemember ( ) && allowLazyMode ) {
452+ setConfig ( "lazyMode" , true ) ;
453+ LazyModeState . setRemember ( false ) ;
454+ showedLazyModeNotification = false ;
452455 }
453456 }
454457
455458 if ( ! Config . lazyMode && ! language . noLazyMode ) {
456- rememberLazyMode = false ;
459+ LazyModeState . setRemember ( false ) ;
457460 }
458461
459462 if ( Config . mode === "custom" ) {
@@ -1549,7 +1552,10 @@ ConfigEvent.subscribe(({ key, newValue, nosave }) => {
15491552 if ( ActivePage . get ( ) === "test" ) {
15501553 if ( key === "language" ) {
15511554 //automatically enable lazy mode for arabic
1552- if ( ( newValue as string ) ?. startsWith ( "arabic" ) && ArabicLazyMode . get ( ) ) {
1555+ if (
1556+ ( newValue as string ) ?. startsWith ( "arabic" ) &&
1557+ LazyModeState . getArabicPref ( )
1558+ ) {
15531559 setConfig ( "lazyMode" , true , {
15541560 nosave : true ,
15551561 } ) ;
@@ -1582,13 +1588,7 @@ ConfigEvent.subscribe(({ key, newValue, nosave }) => {
15821588 }
15831589 if ( key === "lazyMode" && ! nosave ) {
15841590 if ( Config . language . startsWith ( "arabic" ) ) {
1585- ArabicLazyMode . set ( newValue ) ;
1586- }
1587- if ( newValue ) {
1588- if ( ! showedLazyModeNotification ) {
1589- rememberLazyMode = false ;
1590- }
1591- showedLazyModeNotification = false ;
1591+ LazyModeState . setArabicPref ( newValue ) ;
15921592 }
15931593 }
15941594} ) ;
0 commit comments