From 3559fa9b61a7d2b6c855c410d42152e96aae940c Mon Sep 17 00:00:00 2001 From: ndrscodes Date: Tue, 18 Jan 2022 23:14:28 +0100 Subject: [PATCH] use enter key for submitting WizardStep forms Signed-off-by: ndrscodes --- src/renderer/components/wizard/wizard.tsx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/wizard/wizard.tsx b/src/renderer/components/wizard/wizard.tsx index fc6b1f2a71..349b7fb9f7 100755 --- a/src/renderer/components/wizard/wizard.tsx +++ b/src/renderer/components/wizard/wizard.tsx @@ -26,6 +26,7 @@ import { Button } from "../button"; import { Stepper } from "../stepper"; import { SubTitle } from "../layout/sub-title"; import { Spinner } from "../spinner"; +import { debounce } from "lodash"; interface WizardCommonProps { data?: Partial; @@ -195,14 +196,16 @@ export class WizardStep extends React.Component { + //because submit MIGHT be called through pressing enter, it might be fired twice. + //we'll debounce it to ensure it isn't + submit = debounce(() => { if (!this.form.noValidate) { const valid = this.form.checkValidity(); if (!valid) return; } this.next(); - }; + }, 100); renderLoading() { return ( @@ -212,6 +215,17 @@ export class WizardStep extends React.Component) { + if (evt.shiftKey || evt.metaKey || evt.altKey || evt.ctrlKey || evt.repeat) { + return; + } + + if(evt.key === "Enter"){ + this.submit(); + } + } + render() { const { step, isFirst, isLast, children, @@ -232,6 +246,7 @@ export class WizardStep extends React.Component this.keyDown(evt)} ref={e => this.form = e}> {beforeContent}