From 526afe0bb45efc52f1aa61d38d83d4d94516450e Mon Sep 17 00:00:00 2001 From: regexowl Date: Tue, 14 Jan 2025 13:17:29 +0100 Subject: [PATCH] Wizard: Validate on plus button and reset error text Only `keyDown` was validated, this makes sure that the plus button value is validated as well. Also the error text gets removed on change or clear. --- .../Kernel/components/KernelArguments.tsx | 47 +++++++++++-------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/src/Components/CreateImageWizard/steps/Kernel/components/KernelArguments.tsx b/src/Components/CreateImageWizard/steps/Kernel/components/KernelArguments.tsx index 34b97f089..07be94ace 100644 --- a/src/Components/CreateImageWizard/steps/Kernel/components/KernelArguments.tsx +++ b/src/Components/CreateImageWizard/steps/Kernel/components/KernelArguments.tsx @@ -57,35 +57,44 @@ const KernelArguments = () => { value: string ) => { setInputValue(value); + setErrorText(''); + }; + + const addArgument = (value: string) => { + if ( + isKernelArgumentValid(value) && + !kernelAppend.some((arg) => arg.name === value) + ) { + dispatch(addKernelArg({ name: value })); + setInputValue(''); + setErrorText(''); + } + + if (kernelAppend.some((arg) => arg.name === value)) { + setErrorText(`Kernel argument already exists.`); + } + + if (!isKernelArgumentValid(value)) { + setErrorText('Invalid format.'); + } }; const handleKeyDown = (e: React.KeyboardEvent, value: string) => { if (e.key === 'Enter') { e.preventDefault(); - - if ( - isKernelArgumentValid(value) && - !kernelAppend.some((arg) => arg.name === value) - ) { - dispatch(addKernelArg({ name: value })); - setInputValue(''); - setErrorText(''); - } - - if (kernelAppend.some((arg) => arg.name === value)) { - setErrorText(`Kernel argument already exists.`); - } - - if (!isKernelArgumentValid(value)) { - setErrorText('Invalid format.'); - } + addArgument(value); } }; const handleAddItem = (e: React.MouseEvent, value: string) => { - dispatch(addKernelArg({ name: value })); + addArgument(value); + }; + + const handleClear = () => { setInputValue(''); + setErrorText(''); }; + return ( @@ -106,7 +115,7 @@ const KernelArguments = () => {