1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Close Preferences on Esc key

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev 2020-09-04 10:34:53 +03:00
parent 26e031fc58
commit 21e89edf5c

View File

@ -28,6 +28,8 @@ export class Preferences extends React.Component {
{ value: "china", label: "China (Azure)" }, { value: "china", label: "China (Azure)" },
] ]
@observable httpProxy = userStore.preferences.httpsProxy || "";
@computed get themeOptions(): SelectOption<string>[] { @computed get themeOptions(): SelectOption<string>[] {
return themeStore.themes.map(theme => ({ return themeStore.themes.map(theme => ({
label: theme.name, label: theme.name,
@ -43,9 +45,21 @@ export class Preferences extends React.Component {
} }
async componentDidMount() { async componentDidMount() {
window.addEventListener('keydown', this.onEscapeKey);
await this.loadHelmRepos(); await this.loadHelmRepos();
} }
componentWillUnmount() {
window.removeEventListener('keydown', this.onEscapeKey);
}
onEscapeKey = (evt: KeyboardEvent) => {
if (evt.code === "Escape") {
evt.stopPropagation();
history.goBack();
}
}
@action @action
async loadHelmRepos() { async loadHelmRepos() {
this.helmLoading = true; this.helmLoading = true;
@ -162,8 +176,9 @@ export class Preferences extends React.Component {
<Input <Input
theme="round-black" theme="round-black"
placeholder={_i18n._(t`Type HTTP proxy url (example: http://proxy.acme.org:8080)`)} placeholder={_i18n._(t`Type HTTP proxy url (example: http://proxy.acme.org:8080)`)}
value={preferences.httpsProxy || ""} value={this.httpProxy}
onChange={v => preferences.httpsProxy = v} onChange={v => this.httpProxy = v}
onBlur={() => preferences.httpsProxy = this.httpProxy}
/> />
<small className="hint"> <small className="hint">
<Trans>Proxy is used only for non-cluster communication.</Trans> <Trans>Proxy is used only for non-cluster communication.</Trans>