Kobana UI
GitHub

FormPage

Template de página de formulário com barra sticky e guard de navegação.

Carregando...

Instalação

npx @kobana/ui add form-page

Dependências Kobana: page-header, confirm-dialog

Importação

import { FormPage } from "@/components/kobana/templates/form-page"

Props

PropTipoDefaultDescrição
titlestringTítulo da página
descriptionstringDescrição
breadcrumbsBreadcrumbItem[]Trail
backHrefstringURL do botão voltar
onSubmit() => void | Promise<void>Submit async
onCancel() => voidCallback cancelar
submitLabelstring"Salvar"Label do botão submit
cancelLabelstring"Cancelar"Label do botão cancelar
isSubmittingbooleanfalseEstado de submissão
isDirtybooleanfalseFormulário modificado
childrenReactNodeCampos do formulário
classNamestringClasses adicionais

Dirty Guard

Quando isDirty=true e o usuário tenta sair, um ConfirmDialog é exibido pedindo confirmação.

Uso

<FormPage
  title="Nova Cobrança"
  breadcrumbs={[
    { label: "Cobranças", href: "/charges" },
    { label: "Nova" },
  ]}
  onSubmit={handleSubmit(onSubmit)}
  onCancel={() => router.back()}
  isSubmitting={isSubmitting}
  isDirty={formState.isDirty}
>
  <FormSection title="Dados" columns={2}>
    <FormField name="customer" label="Cliente" />
    <FormField name="amount" label="Valor" />
  </FormSection>
</FormPage>

On this page