Skip to content

Commit 272f864

Browse files
authored
Merge pull request #8541 from QwikDev/fix-Form-onSubmit-types
fix(router): Form comp onSubmit$ types
2 parents 9963f0a + 953ec4b commit 272f864

File tree

4 files changed

+6
-24
lines changed

4 files changed

+6
-24
lines changed

packages/docs/src/routes/api/qwik-router/api.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@
334334
}
335335
],
336336
"kind": "Interface",
337-
"content": "```typescript\nexport interface FormProps<O, I> extends Omit<QwikJSX.IntrinsicElements['form'], 'action' | 'method'> \n```\n**Extends:** Omit&lt;QwikJSX.IntrinsicElements\\['form'\\], 'action' \\| 'method'&gt;\n\n\n<table><thead><tr><th>\n\nProperty\n\n\n</th><th>\n\nModifiers\n\n\n</th><th>\n\nType\n\n\n</th><th>\n\nDescription\n\n\n</th></tr></thead>\n<tbody><tr><td>\n\naction?\n\n\n</td><td>\n\n\n</td><td>\n\n[ActionStore](#actionstore)<!-- -->&lt;O, I, true \\| false&gt;\n\n\n</td><td>\n\n_(Optional)_ Reference to the action returned by `action()`<!-- -->.\n\n\n</td></tr>\n<tr><td>\n\nkey?\n\n\n</td><td>\n\n\n</td><td>\n\nstring \\| number \\| null\n\n\n</td><td>\n\n_(Optional)_\n\n\n</td></tr>\n<tr><td>\n\nonSubmit$?\n\n\n</td><td>\n\n\n</td><td>\n\nQRLEventHandlerMulti&lt;SubmitEvent, HTMLFormElement&gt; \\| undefined\n\n\n</td><td>\n\n_(Optional)_ Event handler executed right when the form is submitted.\n\n\n</td></tr>\n<tr><td>\n\nonSubmitCompleted$?\n\n\n</td><td>\n\n\n</td><td>\n\nQRLEventHandlerMulti&lt;CustomEvent&lt;[FormSubmitCompletedDetail](#formsubmitsuccessdetail)<!-- -->&lt;O&gt;&gt;, HTMLFormElement&gt; \\| undefined\n\n\n</td><td>\n\n_(Optional)_ Event handler executed right after the action is executed successfully and returns some data.\n\n\n</td></tr>\n<tr><td>\n\nreloadDocument?\n\n\n</td><td>\n\n\n</td><td>\n\nboolean\n\n\n</td><td>\n\n_(Optional)_ When `true` the form submission will cause a full page reload, even if SPA mode is enabled and JS is available.\n\n\n</td></tr>\n<tr><td>\n\nspaReset?\n\n\n</td><td>\n\n\n</td><td>\n\nboolean\n\n\n</td><td>\n\n_(Optional)_ When `true` all the form inputs will be reset in SPA mode, just like happens in a full page form submission.\n\nDefaults to `false`\n\n\n</td></tr>\n</tbody></table>",
337+
"content": "```typescript\nexport interface FormProps<O, I> extends Omit<QwikJSX.IntrinsicElements['form'], 'action' | 'method'> \n```\n**Extends:** Omit&lt;QwikJSX.IntrinsicElements\\['form'\\], 'action' \\| 'method'&gt;\n\n\n<table><thead><tr><th>\n\nProperty\n\n\n</th><th>\n\nModifiers\n\n\n</th><th>\n\nType\n\n\n</th><th>\n\nDescription\n\n\n</th></tr></thead>\n<tbody><tr><td>\n\naction?\n\n\n</td><td>\n\n\n</td><td>\n\n[ActionStore](#actionstore)<!-- -->&lt;O, I, true \\| false&gt;\n\n\n</td><td>\n\n_(Optional)_ Reference to the action returned by `action()`<!-- -->.\n\n\n</td></tr>\n<tr><td>\n\nkey?\n\n\n</td><td>\n\n\n</td><td>\n\nstring \\| number \\| null\n\n\n</td><td>\n\n_(Optional)_\n\n\n</td></tr>\n<tr><td>\n\nonSubmitCompleted$?\n\n\n</td><td>\n\n\n</td><td>\n\nQRLEventHandlerMulti&lt;CustomEvent&lt;[FormSubmitCompletedDetail](#formsubmitsuccessdetail)<!-- -->&lt;O&gt;&gt;, HTMLFormElement&gt; \\| undefined\n\n\n</td><td>\n\n_(Optional)_ Event handler executed right after the action is executed successfully and returns some data.\n\n\n</td></tr>\n<tr><td>\n\nreloadDocument?\n\n\n</td><td>\n\n\n</td><td>\n\nboolean\n\n\n</td><td>\n\n_(Optional)_ When `true` the form submission will cause a full page reload, even if SPA mode is enabled and JS is available.\n\n\n</td></tr>\n<tr><td>\n\nspaReset?\n\n\n</td><td>\n\n\n</td><td>\n\nboolean\n\n\n</td><td>\n\n_(Optional)_ When `true` all the form inputs will be reset in SPA mode, just like happens in a full page form submission.\n\nDefaults to `false`\n\n\n</td></tr>\n</tbody></table>",
338338
"editUrl": "https://github.com/QwikDev/qwik/tree/main/packages/qwik-router/src/runtime/src/form-component.tsx",
339339
"mdFile": "router.formprops.md"
340340
},

packages/docs/src/routes/api/qwik-router/index.mdx

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -910,21 +910,6 @@ _(Optional)_
910910
</td></tr>
911911
<tr><td>
912912
913-
onSubmit$?
914-
915-
</td><td>
916-
917-
</td><td>
918-
919-
QRLEventHandlerMulti&lt;SubmitEvent, HTMLFormElement&gt; \| undefined
920-
921-
</td><td>
922-
923-
_(Optional)_ Event handler executed right when the form is submitted.
924-
925-
</td></tr>
926-
<tr><td>
927-
928913
onSubmitCompleted$?
929914
930915
</td><td>

packages/qwik-router/src/runtime/src/form-component.tsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { jsx, component$, Slot, $, type QwikJSX, type QRLEventHandlerMulti } from '@qwik.dev/core';
1+
import { jsx, component$, Slot, $, type QRLEventHandlerMulti, type QwikJSX } from '@qwik.dev/core';
22
import type { ActionStore } from './types';
33
import { useNavigate } from './use-functions';
44

@@ -30,9 +30,6 @@ export interface FormProps<O, I> extends Omit<
3030
*/
3131
spaReset?: boolean;
3232

33-
/** Event handler executed right when the form is submitted. */
34-
onSubmit$?: QRLEventHandlerMulti<SubmitEvent, HTMLFormElement> | undefined;
35-
3633
/** Event handler executed right after the action is executed successfully and returns some data. */
3734
onSubmitCompleted$?:
3835
| QRLEventHandlerMulti<CustomEvent<FormSubmitCompletedDetail<O>>, HTMLFormElement>
@@ -113,7 +110,10 @@ export const GetForm = component$<FormProps<undefined, undefined>>(
113110
data-spa-reset={spaReset ? 'true' : undefined}
114111
{...rest}
115112
onSubmit$={[
116-
...(Array.isArray(onSubmit$) ? onSubmit$ : [onSubmit$]),
113+
...((Array.isArray(onSubmit$) ? onSubmit$ : [onSubmit$]) as QRLEventHandlerMulti<
114+
SubmitEvent,
115+
HTMLFormElement
116+
>[]), // type casting to keep consumers linters happy
117117
$(async (_evt, form) => {
118118
const formData = new FormData(form);
119119
const params = new URLSearchParams();
@@ -138,9 +138,7 @@ export const GetForm = component$<FormProps<undefined, undefined>>(
138138
},
139139
})
140140
);
141-
//
142141
}),
143-
// end of array
144142
]}
145143
>
146144
<Slot />

packages/qwik-router/src/runtime/src/qwik-router.runtime.api.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,6 @@ export interface FormProps<O, I> extends Omit<QwikJSX.IntrinsicElements['form'],
207207
action?: ActionStore<O, I, true | false>;
208208
// (undocumented)
209209
key?: string | number | null;
210-
onSubmit$?: QRLEventHandlerMulti<SubmitEvent, HTMLFormElement> | undefined;
211210
onSubmitCompleted$?: QRLEventHandlerMulti<CustomEvent<FormSubmitSuccessDetail<O>>, HTMLFormElement> | undefined;
212211
reloadDocument?: boolean;
213212
spaReset?: boolean;

0 commit comments

Comments
 (0)