kodda

MultiplePhones

Campo dinâmico para cadastro de múltiplos telefones com tipo, DDD e número.

Carregando...

Instalação

npx @koddaai/ui add multiple-phones

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

Dependências npm: react-hook-form

Importação

import { MultiplePhones } from "@/components/kodda/multiple-phones"

Props

PropTipoDefaultDescrição
formUseFormReturnInstância do react-hook-form
namestring"phones"Nome do field array no formulário
disabledbooleanfalseDesabilita todos os campos
classNamestringClasses adicionais no container
addLabelstring"Adicionar telefone"Texto do botão de adicionar
typeLabelstring"Tipo"Label do select de tipo
areaCodeLabelstring"DDD"Label do campo de DDD
numberLabelstring"Número"Label do campo de número
phoneTypesPhoneTypeOption[][mobile, landline]Opções do select de tipo
defaultTypestring"mobile"Tipo padrão ao adicionar novo telefone
defaultCountryCodestring"55"Código do país padrão

Sub-tipos

PhoneTypeOption

CampoTipoDescrição
valuestringValor interno da opção
labelstringTexto exibido no select

Estrutura dos dados

Cada item do array possui:

CampoTipoDescrição
typestringTipo do telefone (ex: "mobile", "landline")
areaCodestringDDD (2 dígitos)
numberstringNúmero do telefone
countryCodestringCódigo do país
labelstringIdentificação opcional

Uso

const form = useForm({
  defaultValues: {
    phones: [{ label: "Principal", type: "landline", countryCode: "55" }],
  },
})

<MultiplePhones form={form} />

Com tipos customizados

<MultiplePhones
  form={form}
  phoneTypes={[
    { value: "mobile", label: "Celular" },
    { value: "landline", label: "Fixo" },
    { value: "fax", label: "Fax" },
  ]}
  defaultType="mobile"
/>

O primeiro item não pode ser removido.

On this page