mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
- hide icon in dock when main-window closed (mac-os only)
- added preferences checkbox to open app at system start-up Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
parent
52b447948d
commit
5c9db14f4b
@ -28,6 +28,7 @@ export interface UserPreferences {
|
||||
downloadBinariesPath?: string;
|
||||
kubectlBinariesPath?: string;
|
||||
trayEnabled?: boolean;
|
||||
openAtLogin?: boolean;
|
||||
}
|
||||
|
||||
export class UserStore extends BaseStore<UserStoreModel> {
|
||||
@ -39,14 +40,7 @@ export class UserStore extends BaseStore<UserStoreModel> {
|
||||
migrations: migrations,
|
||||
});
|
||||
|
||||
// track telemetry availability
|
||||
reaction(() => this.preferences.allowTelemetry, allowed => {
|
||||
tracker.event("telemetry", allowed ? "enabled" : "disabled");
|
||||
});
|
||||
|
||||
// refresh new contexts
|
||||
this.whenLoaded.then(this.refreshNewContexts);
|
||||
reaction(() => this.kubeConfigPath, this.refreshNewContexts);
|
||||
this.handleOnLoad();
|
||||
}
|
||||
|
||||
@observable lastSeenAppVersion = "0.0.0"
|
||||
@ -61,8 +55,31 @@ export class UserStore extends BaseStore<UserStoreModel> {
|
||||
downloadMirror: "default",
|
||||
downloadKubectlBinaries: true, // Download kubectl binaries matching cluster version
|
||||
trayEnabled: true,
|
||||
openAtLogin: true,
|
||||
};
|
||||
|
||||
protected async handleOnLoad() {
|
||||
await this.whenLoaded;
|
||||
|
||||
// refresh new contexts
|
||||
this.refreshNewContexts();
|
||||
reaction(() => this.kubeConfigPath, this.refreshNewContexts);
|
||||
|
||||
if (app) {
|
||||
// track telemetry availability
|
||||
reaction(() => this.preferences.allowTelemetry, allowed => {
|
||||
tracker.event("telemetry", allowed ? "enabled" : "disabled");
|
||||
});
|
||||
|
||||
// open at system start-up
|
||||
reaction(() => this.preferences.openAtLogin, open => {
|
||||
app.setLoginItemSettings({ openAtLogin: open });
|
||||
}, {
|
||||
fireImmediately: true,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
get isNewVersion() {
|
||||
return semver.gt(getAppVersion(), this.lastSeenAppVersion);
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@ import type { ClusterId } from "../common/cluster-store";
|
||||
import { clusterStore } from "../common/cluster-store";
|
||||
import { userStore } from "../common/user-store";
|
||||
import { observable, reaction } from "mobx";
|
||||
import { BrowserWindow, dialog, ipcMain, shell, webContents } from "electron"
|
||||
import { app, BrowserWindow, dialog, ipcMain, shell, webContents } from "electron"
|
||||
import windowStateKeeper from "electron-window-state"
|
||||
import { initMenu } from "./menu";
|
||||
import { initTray } from "./tray";
|
||||
@ -35,6 +35,8 @@ export class WindowManager {
|
||||
});
|
||||
}
|
||||
if (!this.mainWindow) {
|
||||
app.dock?.show(); // show icon in dock (mac-os only)
|
||||
|
||||
const { width, height, x, y } = this.windowState;
|
||||
this.mainWindow = new BrowserWindow({
|
||||
x, y, width, height,
|
||||
@ -62,6 +64,7 @@ export class WindowManager {
|
||||
this.windowState.unmanage();
|
||||
this.mainWindow = null;
|
||||
this.splashWindow = null;
|
||||
app.dock?.hide(); // hide icon in dock (mac-os)
|
||||
})
|
||||
}
|
||||
try {
|
||||
|
||||
@ -57,4 +57,8 @@
|
||||
box-shadow: 0 0 0 1px $borderFaintColor;
|
||||
}
|
||||
}
|
||||
|
||||
.Checkbox {
|
||||
align-self: start; // limit clickable area to checkbox + text
|
||||
}
|
||||
}
|
||||
@ -173,6 +173,26 @@ export class Preferences extends React.Component {
|
||||
})}
|
||||
</div>
|
||||
|
||||
<h2><Trans>Auto start-up</Trans></h2>
|
||||
<Checkbox
|
||||
label={<Trans>Open on start-up</Trans>}
|
||||
value={preferences.openAtLogin}
|
||||
onChange={v => preferences.openAtLogin = v}
|
||||
/>
|
||||
<small className="hint">
|
||||
<Trans>Opens Lens app on operation system login</Trans>
|
||||
</small>
|
||||
|
||||
<h2><Trans>Tray icon</Trans></h2>
|
||||
<Checkbox
|
||||
label={<Trans>Enable tray icon</Trans>}
|
||||
value={preferences.trayEnabled}
|
||||
onChange={v => preferences.trayEnabled = v}
|
||||
/>
|
||||
<small className="hint">
|
||||
<Trans>Adds OS-level tray icon and menu to get quick access to Lens</Trans>
|
||||
</small>
|
||||
|
||||
<h2><Trans>Certificate Trust</Trans></h2>
|
||||
<Checkbox
|
||||
label={<Trans>Allow untrusted Certificate Authorities</Trans>}
|
||||
@ -194,16 +214,6 @@ export class Preferences extends React.Component {
|
||||
<small className="hint">
|
||||
<Trans>Telemetry & usage data is collected to continuously improve the Lens experience.</Trans>
|
||||
</small>
|
||||
|
||||
<h2><Trans>Tray icon</Trans></h2>
|
||||
<Checkbox
|
||||
label={<Trans>Enable tray icon</Trans>}
|
||||
value={preferences.trayEnabled}
|
||||
onChange={v => preferences.trayEnabled = v}
|
||||
/>
|
||||
<small className="hint">
|
||||
<Trans>Adds OS-level tray icon and menu to get quick access to Lens</Trans>
|
||||
</small>
|
||||
</WizardLayout>
|
||||
</div>
|
||||
);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user