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