From 614a20b68444387aca82605562bc29e2ae7bdbab Mon Sep 17 00:00:00 2001 From: Dreamacro <8615343+Dreamacro@users.noreply.github.com> Date: Sun, 3 Oct 2021 20:51:10 +0800 Subject: [PATCH] Feature: submit external controller when press enter --- src/components/Input/index.tsx | 14 ++++++++++++-- src/containers/ExternalControllerDrawer/index.tsx | 3 +++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/components/Input/index.tsx b/src/components/Input/index.tsx index 4162279..f568b6e 100644 --- a/src/components/Input/index.tsx +++ b/src/components/Input/index.tsx @@ -1,4 +1,5 @@ import classnames from 'classnames' +import { KeyboardEvent, FocusEvent, ChangeEvent } from 'react' import { noop } from '@lib/helper' import { BaseComponentProps } from '@models/BaseProps' @@ -11,8 +12,9 @@ interface InputProps extends BaseComponentProps { autoFocus?: boolean type?: string disabled?: boolean - onChange?: (value: string, event?: React.ChangeEvent) => void - onBlur?: (event?: React.FocusEvent) => void + onChange?: (value: string, event?: ChangeEvent) => void + onEnter?: (event?: KeyboardEvent) => void + onBlur?: (event?: FocusEvent) => void } export function Input (props: InputProps) { @@ -27,9 +29,16 @@ export function Input (props: InputProps) { disabled = false, onChange = noop, onBlur = noop, + onEnter = noop, } = props const classname = classnames('input', `text-${align}`, { 'focus:shadow-none': inside }, className) + function handleKeyDown (e: KeyboardEvent) { + if (e.code === 'Enter') { + onEnter(e) + } + } + return ( onChange(event.target.value, event)} onBlur={onBlur} + onKeyDown={handleKeyDown} /> ) } diff --git a/src/containers/ExternalControllerDrawer/index.tsx b/src/containers/ExternalControllerDrawer/index.tsx index 48f4eb3..a3cf070 100644 --- a/src/containers/ExternalControllerDrawer/index.tsx +++ b/src/containers/ExternalControllerDrawer/index.tsx @@ -49,6 +49,7 @@ export default function ExternalController () { inside={true} value={value.hostname} onChange={hostname => set('hostname', hostname)} + onEnter={handleOk} />
@@ -59,6 +60,7 @@ export default function ExternalController () { inside={true} value={value.port} onChange={port => set('port', port)} + onEnter={handleOk} />
@@ -69,6 +71,7 @@ export default function ExternalController () { inside={true} value={value.secret} onChange={secret => set('secret', secret)} + onEnter={handleOk} />