@@ -571,46 +571,55 @@ const CHECK_FOR_UPDATES_MENU_ITEM_LABEL_DOWNLOADED = "Update downloaded";
571571const CHECK_FOR_UPDATES_MENU_ITEM_LABEL_AVAILABLE = "Update available" ;
572572const CHECK_FOR_UPDATES_MENU_ITEM_LABEL_UP_TO_DATE = "You're up to date!" ;
573573const CHECK_FOR_UPDATES_MENU_ITEM_LABEL_ERROR = "Update check failed" ;
574- const checkForUpdatesMenuItem : MenuItem = new MenuItem ( {
575- label : CHECK_FOR_UPDATES_MENU_ITEM_LABEL_DEFAULT ,
576- click : async ( ) => await handleCheckForUpdatesMenuClick ( ) ,
577- } ) ;
574+ function makeCheckForUpdatesMenuItem ( ) : MenuItem {
575+ return new MenuItem ( {
576+ label : CHECK_FOR_UPDATES_MENU_ITEM_LABEL_DEFAULT ,
577+ click : async ( ) => await handleCheckForUpdatesMenuClick ( ) ,
578+ } ) ;
579+ }
580+ const checkForUpdatesMenuItemInAppMenu = makeCheckForUpdatesMenuItem ( ) ;
581+ const checkForUpdatesMenuItemInHelpMenu = makeCheckForUpdatesMenuItem ( ) ;
578582
579- updateStateListeners . add ( ( state ) => {
583+ function updateCheckForUpdatesMenuItem ( menuItem : MenuItem , state : DesktopUpdateState ) : void {
580584 switch ( state . status ) {
581585 case "checking" :
582- checkForUpdatesMenuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_CHECKING ;
583- checkForUpdatesMenuItem . enabled = false ;
586+ menuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_CHECKING ;
587+ menuItem . enabled = false ;
584588 break ;
585589 case "available" :
586- checkForUpdatesMenuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_AVAILABLE ;
587- checkForUpdatesMenuItem . enabled = false ;
590+ menuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_AVAILABLE ;
591+ menuItem . enabled = false ;
588592 break ;
589593 case "downloading" :
590- checkForUpdatesMenuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_DOWNLOADING ;
591- checkForUpdatesMenuItem . enabled = false ;
594+ menuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_DOWNLOADING ;
595+ menuItem . enabled = false ;
592596 break ;
593597 case "downloaded" :
594- checkForUpdatesMenuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_DOWNLOADED ;
595- checkForUpdatesMenuItem . enabled = false ;
598+ menuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_DOWNLOADED ;
599+ menuItem . enabled = false ;
596600 break ;
597601 case "disabled" :
598- checkForUpdatesMenuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_DISABLED ;
599- checkForUpdatesMenuItem . enabled = false ;
602+ menuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_DISABLED ;
603+ menuItem . enabled = false ;
600604 break ;
601605 case "error" :
602- checkForUpdatesMenuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_ERROR ;
603- checkForUpdatesMenuItem . enabled = false ;
606+ menuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_ERROR ;
607+ menuItem . enabled = false ;
604608 break ;
605609 case "up-to-date" :
606- checkForUpdatesMenuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_UP_TO_DATE ;
607- checkForUpdatesMenuItem . enabled = false ;
610+ menuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_UP_TO_DATE ;
611+ menuItem . enabled = false ;
608612 break ;
609613 case "idle" :
610- checkForUpdatesMenuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_IDLE ;
611- checkForUpdatesMenuItem . enabled = true ;
614+ menuItem . label = CHECK_FOR_UPDATES_MENU_ITEM_LABEL_IDLE ;
615+ menuItem . enabled = true ;
612616 break ;
613617 }
618+ }
619+
620+ updateStateListeners . add ( ( state ) => {
621+ updateCheckForUpdatesMenuItem ( checkForUpdatesMenuItemInAppMenu , state ) ;
622+ updateCheckForUpdatesMenuItem ( checkForUpdatesMenuItemInHelpMenu , state ) ;
614623} ) ;
615624
616625let applicationMenu : Menu | null = null ;
@@ -623,7 +632,7 @@ function configureApplicationMenu(): void {
623632 label : app . name ,
624633 submenu : Menu . buildFromTemplate ( [
625634 { role : "about" } ,
626- checkForUpdatesMenuItem ,
635+ checkForUpdatesMenuItemInAppMenu ,
627636 { type : "separator" } ,
628637 {
629638 label : "Settings..." ,
@@ -678,8 +687,7 @@ function configureApplicationMenu(): void {
678687 { role : "windowMenu" } ,
679688 {
680689 role : "help" ,
681- // TODO: Is it safe to use the same menu item for both the root menu and the help menu?
682- submenu : Menu . buildFromTemplate ( [ checkForUpdatesMenuItem ] ) ,
690+ submenu : Menu . buildFromTemplate ( [ checkForUpdatesMenuItemInHelpMenu ] ) ,
683691 } ,
684692 ) ;
685693
0 commit comments