Skip to content

Commit

Permalink
feat: submit form on <enter>
Browse files Browse the repository at this point in the history
  • Loading branch information
KatoakDR committed Sep 15, 2024
1 parent e213989 commit 57e9ef7
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,14 @@ export const ModalAddAccount: React.FC<ModalAddAccountProps> = (
}, [form, initialData]);

const onModalClose = useCallback(
(_event?: React.UIEvent) => {
(_event?: React.BaseSyntheticEvent) => {
onClose();
},
[onClose]
);

const onModalConfirm = useCallback(
(event: React.UIEvent) => {
(event: React.BaseSyntheticEvent) => {
runInBackground(async () => {
const handler = form.handleSubmit(
(data: ModalAddAccountConfirmData) => {
Expand All @@ -67,7 +67,12 @@ export const ModalAddAccount: React.FC<ModalAddAccountProps> = (
confirmButtonText="Save"
buttonColor="primary"
>
<EuiForm component="form">
<EuiForm component="form" onSubmit={onModalConfirm}>
{/* Hidden submit button to ensure form submission on Enter key press. */}
{/* Since we are in a confirm modal, we don't have a visible form button. */}
{/* Otherwise you'd see two buttons, one for form and one for modal. */}
<button type="submit" hidden={true} />

<EuiFormRow
label="Name"
isInvalid={!!form.formState.errors.accountName}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,14 @@ export const ModalEditAccount: React.FC<ModalEditAccountProps> = (
}, [form, initialData]);

const onModalClose = useCallback(
(_event?: React.UIEvent) => {
(_event?: React.BaseSyntheticEvent) => {
onClose();
},
[onClose]
);

const onModalConfirm = useCallback(
(event: React.UIEvent) => {
(event: React.BaseSyntheticEvent) => {
runInBackground(async () => {
const handler = form.handleSubmit(
(data: ModalEditAccountConfirmData) => {
Expand All @@ -67,7 +67,12 @@ export const ModalEditAccount: React.FC<ModalEditAccountProps> = (
confirmButtonText="Save"
buttonColor="primary"
>
<EuiForm component="form">
<EuiForm component="form" onSubmit={onModalConfirm}>
{/* Hidden submit button to ensure form submission on Enter key press. */}
{/* Since we are in a confirm modal, we don't have a visible form button. */}
{/* Otherwise you'd see two buttons, one for form and one for modal. */}
<button type="submit" hidden={true} />

<EuiFormRow
label="Name"
isInvalid={!!form.formState.errors.accountName}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,14 @@ export const ModalAddCharacter: React.FC<ModalAddCharacterProps> = (
}, [form, initialData]);

const onModalClose = useCallback(
(_event?: React.UIEvent) => {
(_event?: React.BaseSyntheticEvent) => {
onClose();
},
[onClose]
);

const onModalConfirm = useCallback(
(event: React.UIEvent) => {
(event: React.BaseSyntheticEvent) => {
runInBackground(async () => {
const handler = form.handleSubmit(
(data: ModalAddCharacterConfirmData) => {
Expand All @@ -106,7 +106,12 @@ export const ModalAddCharacter: React.FC<ModalAddCharacterProps> = (
confirmButtonText="Save"
buttonColor="primary"
>
<EuiForm component="form">
<EuiForm component="form" onSubmit={onModalConfirm}>
{/* Hidden submit button to ensure form submission on Enter key press. */}
{/* Since we are in a confirm modal, we don't have a visible form button. */}
{/* Otherwise you'd see two buttons, one for form and one for modal. */}
<button type="submit" hidden={true} />

<EuiFormRow
label="Name"
isInvalid={!!form.formState.errors.characterName}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,14 @@ export const ModalEditCharacter: React.FC<ModalEditCharacterProps> = (
}, [form, initialData]);

const onModalClose = useCallback(
(_event?: React.UIEvent) => {
(_event?: React.BaseSyntheticEvent) => {
onClose();
},
[onClose]
);

const onModalConfirm = useCallback(
(event: React.UIEvent) => {
(event: React.BaseSyntheticEvent) => {
runInBackground(async () => {
const handler = form.handleSubmit(
(data: ModalEditCharacterConfirmData) => {
Expand All @@ -108,7 +108,12 @@ export const ModalEditCharacter: React.FC<ModalEditCharacterProps> = (
confirmButtonText="Save"
buttonColor="primary"
>
<EuiForm component="form">
<EuiForm component="form" onSubmit={onModalConfirm}>
{/* Hidden submit button to ensure form submission on Enter key press. */}
{/* Since we are in a confirm modal, we don't have a visible form button. */}
{/* Otherwise you'd see two buttons, one for form and one for modal. */}
<button type="submit" hidden={true} />

<EuiFormRow
label="Name"
isInvalid={!!form.formState.errors.characterName}
Expand Down

0 comments on commit 57e9ef7

Please sign in to comment.