MCPcopy Create free account
hub / github.com/chieapp/chie / createVersionMenuItem

Method createVersionMenuItem

src/view/base-menu-bar.ts:77–112  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

75 }
76
77 protected createVersionMenuItem() {
78 this.#versionMenuItem = gui.MenuItem.create('label');
79 this.#versionMenuItem.onClick = () => {
80 if (autoUpdater.latestVersion)
81 open(`https://github.com/chieapp/chie/releases/tag/v${autoUpdater.latestVersion}`);
82 else
83 autoUpdater.checkLatestVersion({reportResult: true});
84 };
85
86 // Set menu item label based on autoUpdater status.
87 const update = ({reportResult}: {reportResult: boolean}) => {
88 if (autoUpdater.latestVersion) {
89 this.#versionMenuItem.setLabel(`New version v${autoUpdater.latestVersion} available...`);
90 this.#versionMenuItem.setEnabled(true);
91 return;
92 }
93 if (reportResult && autoUpdater.latestVersion === null) {
94 this.#versionMenuItem.setLabel('No new version (check again)');
95 this.#versionMenuItem.setEnabled(true);
96 return;
97 }
98 if (reportResult && autoUpdater.isCheckingLatestVersion) {
99 this.#versionMenuItem.setLabel('Checking latest version...');
100 this.#versionMenuItem.setEnabled(false);
101 return;
102 }
103 this.#versionMenuItem.setLabel('Check latest version');
104 };
105 update({reportResult: false});
106 // Bind auto updater events.
107 this.connections.add(autoUpdater.onCheckVersion.connect(update));
108
109 // Insert.
110 const fileMenu = this.menu.itemAt(0).getSubmenu();
111 fileMenu.insert(this.#versionMenuItem, fileMenu.itemCount() - BaseMenuBar.fileMenuItems.length);
112 }
113
114 protected createViewMenu(items: object[]) {
115 this.#viewMenu = gui.Menu.create(items);

Callers 2

constructorMethod · 0.80
constructorMethod · 0.80

Calls 2

updateFunction · 0.85
checkLatestVersionMethod · 0.80

Tested by

no test coverage detected