kodda

MultipleAddresses

Campo dinâmico para cadastro de múltiplos endereços com auto-lookup de CEP.

Carregando...

Instalação

npx @koddaai/ui add multiple-addresses

Dependências shadcn/ui: form, input, button

Dependências kodda: address-form-fields

Dependências npm: react-hook-form

Importação

import { MultipleAddresses } from "@/components/kodda/multiple-addresses"

Props

PropTipoDefaultDescrição
formUseFormReturnInstância do react-hook-form
namestring"addresses"Nome do field array no formulário
disabledbooleanfalseDesabilita todos os campos
classNamestringClasses adicionais no container
addLabelstring"Adicionar endereço"Texto do botão de adicionar
labelPlaceholderstring"Label (ex: Comercial, Entrega)"Placeholder do campo de label
emptyMessagestring"Nenhum endereço adicional."Mensagem quando não há endereços
addressFormFieldsPropsOmit<AddressFormFieldsProps, 'form' | 'baseName' | 'disabled'>Props adicionais para o AddressFormFields

Estrutura dos dados

Cada item do array possui:

CampoTipoDescrição
labelstringIdentificação do endereço (ex: "Comercial", "Entrega")
zipCodestringCEP
streetstringRua/Avenida
numberstringNúmero
complementstringComplemento
neighborhoodstringBairro
citystringCidade
cityIbgeCodestringCódigo IBGE da cidade
statestringEstado (UF)
countrystringPaís (default: "BR")

Uso

const form = useForm({
  defaultValues: {
    addresses: [],
  },
})

<MultipleAddresses form={form} />

Com API de CEP customizada

<MultipleAddresses
  form={form}
  addressFormFieldsProps={{
    cepApiUrl: "/api/cep",
    citiesApiUrl: "/api/cities",
  }}
/>

Cada endereço utiliza o componente AddressFormFields internamente, com auto-lookup de CEP via ViaCEP e seleção de estado/cidade com combobox.

On this page