feat(Form): add attach prop to opt-out of nested form attachement (#3939)

This commit is contained in:
Romain Hamel
2025-04-20 17:29:36 +02:00
committed by GitHub
parent c31bffad1b
commit 1a0d7a3103
3 changed files with 18 additions and 3 deletions

View File

@@ -36,6 +36,13 @@ export interface FormProps<T extends object> {
* @defaultValue `true`
*/
transform?: boolean
/**
* If true, this form will attach to its parent Form (if any) and validate at the same time.
* @defaultValue `true`
*/
attach?: boolean
/**
* When `true`, all form elements will be disabled on `@submit` event.
* This will cause any focused input elements to lose their focus state.
@@ -70,6 +77,7 @@ const props = withDefaults(defineProps<FormProps<T>>(), {
return ['input', 'blur', 'change'] as FormInputEvents[]
},
validateOnInputDelay: 300,
attach: true,
transform: true,
loadingAuto: true
})
@@ -84,7 +92,7 @@ const ui = computed(() => tv({ extend: tv(theme), ...(appConfig.ui?.form || {})
const formId = props.id ?? useId() as string
const bus = useEventBus<FormEvent<T>>(`form-${formId}`)
const parentBus = inject(
const parentBus = props.attach && inject(
formBusInjectionKey,
undefined
)