Ana içeriğe geç

Kullanım

Ana export edilen component: NvsDynamicForm.

Minimal örnek

import React from 'react';
import { NvsDynamicForm } from '@nvs-dynamic-form/react-core';

export function Example() {
return (
<NvsDynamicForm
fields={[]}
formElements={{}}
buttonComponent={(props) => <button {...props} />}
submitButtonDefaultOptions={{
label: 'Gönder',
isFullWidth: false,
position: 'right',
}}
onSubmit={async (values) => {
console.log(values);
}}
/>
);
}

Props

NvsDynamicForm props’ları (INvsDynamicForm):

PropTipNotlar
onSubmit(values: unknown) => void | Promise<void>Submit callback (sync veya async).
fieldsArray<FieldBase | GroupField | ArrayField>Formun yapısını tanımlar.
formClassstringAlttaki <form> için opsiyonel className.
formElementsRecord<string, { component: React.FC<any>; class: typeof FieldBase }>fieldType → renderer + field model class registry’si.
containerReact.FC<any>Formu/grupları sarmalamak için opsiyonel container component’i.
containerOptionsRecord<string, any>Container’a forward edilen props/opsiyonlar.
containerVisiblebooleantrue ise tüm form container ile sarılır (bazı modlarda hariç).
useContainersOutsideGroupbooleanNested group/array layout’larında container kullanım davranışını kontrol eder.
useGroupContainerbooleanGroup container davranışını açar.
buttonComponentReact.FC<any>Submit/add/remove butonları bu component ile render edilir.
submitButtonDefaultOptionsISubmitButtonDefaultOptionsVarsayılan submit button konfigürasyonu (label, position, full width).
submitButtonOptionsRecord<string, any>Submit button component’ine forward edilen ekstra props.
submitButtonVisiblebooleanSubmit butonu göster/gizle.
submitButtonLabelstringSubmit butonu label override.
submitButtonPosition'left' | 'center' | 'right'Submit butonu hizası.
submitButtonIsFullWidthbooleanTam genişlik submit butonu.
submitButtonContainerClassstringSubmit button container wrapper class adı.
addButtonDefaultOptionsArrayFieldAddButtonArrayField “add” butonu için varsayılan opsiyonlar.
removeButtonDefaultOptionsArrayFieldRemoveButtonArrayField “remove” butonu için varsayılan opsiyonlar.
labelDefaultOptionsLabelOptionsInternal label/field component’lerinin varsayılan label opsiyonları.
doubleSubmitProtectionbooleanSubmit sürerken ikinci submit’i engeller.
not

Field tipleri ve default option type’ları paket içinde types export’u altındadır.

Examples

Paket repo’sunda birçok Storybook örneği var.

Bu dokümanda her örnek Examples altında ayrı sayfada:

  • Basic
  • Group fields
  • Array fields
  • Container