fix(desktop): prevent recipe parameter form from reloading the app on Enter (#10522)

Signed-off-by: Seydi Charyyev <seydi.charyev@gmail.com>
This commit is contained in:
Seydi Charyyev
2026-08-14 15:47:42 +00:00
committed by GitHub
parent 5f4b7cc100
commit b132a7e332
2 changed files with 26 additions and 1 deletions
@@ -94,7 +94,8 @@ const ParameterInputModal: React.FC<ParameterInputModalProps> = ({
setInputValues((prevValues: Record<string, string>) => ({ ...prevValues, [name]: value }));
};
const handleSubmit = (): void => {
const handleSubmit = (e: React.SyntheticEvent): void => {
e.preventDefault();
setValidationErrors({});
const requiredParams: Parameter[] = parameters.filter(needsUserValue);
@@ -80,6 +80,30 @@ describe('ParameterInputModal', () => {
});
});
it('prevents the default form submission when Enter is pressed in a parameter field', async () => {
const user = userEvent.setup();
renderWithIntl(<ParameterInputModal {...defaultProps} />);
let submitFired = false;
let defaultPrevented: boolean | undefined;
const captureSubmit = (event: Event) => {
submitFired = true;
// Read before suppressing, otherwise this listener would mask the result
defaultPrevented = event.defaultPrevented;
event.preventDefault();
};
document.addEventListener('submit', captureSubmit);
try {
await user.type(screen.getByLabelText(/test parameter 1/i), 'test value{Enter}');
} finally {
document.removeEventListener('submit', captureSubmit);
}
expect(submitFired).toBe(true);
expect(defaultPrevented).toBe(true);
});
it('shows validation errors for required parameters', async () => {
const user = userEvent.setup();
renderWithIntl(<ParameterInputModal {...defaultProps} />);