diff --git a/src/renderer/components/+preferences/preferences.tsx b/src/renderer/components/+preferences/preferences.tsx index f2e874750b..cb9dcbc853 100644 --- a/src/renderer/components/+preferences/preferences.tsx +++ b/src/renderer/components/+preferences/preferences.tsx @@ -28,6 +28,8 @@ export class Preferences extends React.Component { { value: "china", label: "China (Azure)" }, ] + @observable httpProxy = userStore.preferences.httpsProxy || ""; + @computed get themeOptions(): SelectOption[] { return themeStore.themes.map(theme => ({ label: theme.name, @@ -43,9 +45,21 @@ export class Preferences extends React.Component { } async componentDidMount() { + window.addEventListener('keydown', this.onEscapeKey); await this.loadHelmRepos(); } + componentWillUnmount() { + window.removeEventListener('keydown', this.onEscapeKey); + } + + onEscapeKey = (evt: KeyboardEvent) => { + if (evt.code === "Escape") { + evt.stopPropagation(); + history.goBack(); + } + } + @action async loadHelmRepos() { this.helmLoading = true; @@ -162,8 +176,9 @@ export class Preferences extends React.Component { preferences.httpsProxy = v} + value={this.httpProxy} + onChange={v => this.httpProxy = v} + onBlur={() => preferences.httpsProxy = this.httpProxy} /> Proxy is used only for non-cluster communication.