Skip to content

Commit

Permalink
Wizard: Validate on plus button and reset error text
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
regexowl committed Jan 17, 2025
1 parent 31abdc5 commit 526afe0
Showing 1 changed file with 28 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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 (
<FormGroup isRequired={false} label="Append">
<TextInputGroup>
Expand All @@ -106,7 +115,7 @@ const KernelArguments = () => {
</Button>
<Button
variant="plain"
onClick={() => setInputValue('')}
onClick={handleClear}
isDisabled={!inputValue}
aria-label="Clear input"
>
Expand Down

0 comments on commit 526afe0

Please sign in to comment.