Skip to content

Commit 39fd204

Browse files
committed
chore: attempt to finalize Svelte composition support
1 parent 09d11d3 commit 39fd204

File tree

3 files changed

+9
-68
lines changed

3 files changed

+9
-68
lines changed

packages/svelte-form/src/AppField.svelte

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55
66
interface Props {
77
form: any
8+
fieldComponents: any
89
children: Snippet
910
}
10-
const { children, form }: Props = $props()
11+
const { children, form, fieldComponents }: Props = $props()
1112
</script>
1213

1314
<form.Field name="fullName">
1415
{#snippet children(field: any)}
15-
<InnerAppField field={field} children={children}/>
16+
<InnerAppField field={field} children={children} fieldComponents={fieldComponents}/>
1617
{/snippet}
1718
</form.Field>

packages/svelte-form/src/InnerAppField.svelte

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
66
interface Props {
77
field: any
8-
children: Snippet
8+
fieldComponents: any
9+
children: Snippet<[any]>
910
}
1011
11-
const { children, field }: Props = $props()
12+
const { children, field, fieldComponents }: Props = $props()
1213
1314
setContext(fieldContextKey, field)
1415
</script>
1516

16-
{@render children?.()}
17+
{@render children?.(Object.assign(field, fieldComponents))}

packages/svelte-form/src/createFormRune.svelte.ts

Lines changed: 2 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -116,17 +116,15 @@ export function createFormRuneContexts() {
116116
>
117117
}
118118

119-
return { fieldContext: fieldContextKey, useFieldContext, useFormContext, formContext: formContextKey }
119+
return { useFieldContext, useFormContext }
120120
}
121121

122122
interface CreateFormRuneProps<
123123
TFieldComponents extends Record<string, Component<any, any>>,
124124
TFormComponents extends Record<string, Component<any, any>>,
125125
> {
126126
fieldComponents: TFieldComponents
127-
fieldContext: Context<AnyFieldApi>
128127
formComponents: TFormComponents
129-
formContext: Context<AnyFormApi>
130128
}
131129

132130
/**
@@ -241,8 +239,6 @@ export function createFormRune<
241239
const TFormComponents extends Record<string, Component<any, any>>,
242240
>({
243241
fieldComponents,
244-
fieldContext,
245-
formContext,
246242
formComponents,
247243
}: CreateFormRuneProps<TComponents, TFormComponents>) {
248244
function useAppForm<
@@ -295,7 +291,7 @@ export function createFormRune<
295291
return AppFormSvelte(internal, { ...props, form })
296292
}) as Component<{ children: Snippet }>
297293

298-
const AppField = ((internal, props) => AppFieldSvelte(internal, { ...props, form } as never)) as FieldComponent<
294+
const AppField = ((internal, props) => AppFieldSvelte(internal, { ...props, form, fieldComponents } as never)) as FieldComponent<
299295
TFormData,
300296
TOnMount,
301297
TOnChange,
@@ -320,64 +316,7 @@ export function createFormRune<
320316
return extendedForm
321317
}
322318

323-
function withForm<
324-
TFormData,
325-
TOnMount extends undefined | FormValidateOrFn<TFormData>,
326-
TOnChange extends undefined | FormValidateOrFn<TFormData>,
327-
TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>,
328-
TOnBlur extends undefined | FormValidateOrFn<TFormData>,
329-
TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>,
330-
TOnSubmit extends undefined | FormValidateOrFn<TFormData>,
331-
TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>,
332-
TOnDynamic extends undefined | FormValidateOrFn<TFormData>,
333-
TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>,
334-
TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,
335-
TSubmitMeta,
336-
TRenderProps extends object = {},
337-
>({
338-
render,
339-
props,
340-
}: WithFormProps<
341-
TFormData,
342-
TOnMount,
343-
TOnChange,
344-
TOnChangeAsync,
345-
TOnBlur,
346-
TOnBlurAsync,
347-
TOnSubmit,
348-
TOnSubmitAsync,
349-
TOnDynamic,
350-
TOnDynamicAsync,
351-
TOnServer,
352-
TSubmitMeta,
353-
TComponents,
354-
TFormComponents,
355-
TRenderProps
356-
>): WithFormProps<
357-
UnwrapOrAny<TFormData>,
358-
UnwrapDefaultOrAny<undefined | FormValidateOrFn<TFormData>, TOnMount>,
359-
UnwrapDefaultOrAny<undefined | FormValidateOrFn<TFormData>, TOnChange>,
360-
UnwrapDefaultOrAny<undefined | FormValidateOrFn<TFormData>, TOnChangeAsync>,
361-
UnwrapDefaultOrAny<undefined | FormValidateOrFn<TFormData>, TOnBlur>,
362-
UnwrapDefaultOrAny<undefined | FormValidateOrFn<TFormData>, TOnBlurAsync>,
363-
UnwrapDefaultOrAny<undefined | FormValidateOrFn<TFormData>, TOnSubmit>,
364-
UnwrapDefaultOrAny<undefined | FormValidateOrFn<TFormData>, TOnSubmitAsync>,
365-
UnwrapDefaultOrAny<undefined | FormValidateOrFn<TFormData>, TOnDynamic>,
366-
UnwrapDefaultOrAny<
367-
undefined | FormValidateOrFn<TFormData>,
368-
TOnDynamicAsync
369-
>,
370-
UnwrapDefaultOrAny<undefined | FormValidateOrFn<TFormData>, TOnServer>,
371-
UnwrapOrAny<TSubmitMeta>,
372-
UnwrapOrAny<TComponents>,
373-
UnwrapOrAny<TFormComponents>,
374-
UnwrapOrAny<TRenderProps>
375-
>['render'] {
376-
return (innerProps) => render({ ...props, ...innerProps })
377-
}
378-
379319
return {
380320
useAppForm,
381-
withForm,
382321
}
383322
}

0 commit comments

Comments
 (0)