Pular para o conteúdo

DateOfBirth

Seletor de data de nascimento com ordem flexível, estilo de mês e validação de idade.

import { DateOfBirth } from 'asterui'

Básico

Seletor padrão de mês/dia/ano.

Default (MDY, 120 years)
import { DateOfBirth, Card, Space, Typography } from 'asterui'

function App() {
  return (
      <Card>
        <Space direction="vertical" size="sm">
          <Text type="secondary">Default (MDY, 120 years)</Text>
          <DateOfBirth />
        </Space>
      </Card>
    )
}

export default App

Ordem

Troque para a ordem dia/mês/ano.

DD/MM/YYYY order
import { DateOfBirth, Card, Space, Typography } from 'asterui'

function App() {
  return (
      <Card className="w-full max-w-xl">
        <Space direction="vertical" size="sm">
          <Text type="secondary">DD/MM/YYYY order</Text>
          <DateOfBirth order="dmy" />
        </Space>
      </Card>
    )
}

export default App

Grade de Meses

Grade compacta para seleção de mês.

Month grid + compact day/year
import { DateOfBirth, Card, Space, Typography } from 'asterui'

function App() {
  return (
      <Card className="w-full max-w-xl">
        <Space direction="vertical" size="sm">
          <Text type="secondary">Month grid + compact day/year</Text>
          <DateOfBirth monthStyle="grid" yearStyle="select" />
        </Space>
      </Card>
    )
}

export default App

Entrada de Ano

Use entrada numérica do ano e regras de idade.

Year input + custom age rules
import { DateOfBirth, Card, Space, Typography } from 'asterui'

function App() {
  return (
      <Card className="w-full max-w-xl">
        <Space direction="vertical" size="sm">
          <Text type="secondary">Year input + custom age rules</Text>
          <DateOfBirth yearStyle="input" minAge={18} yearSpan={90} />
        </Space>
      </Card>
    )
}

export default App

Controlado

Controle o valor via estado local.

Controlled value
{"month":"1","day":"15","year":"1995"}
import { DateOfBirth, Card, Space, Typography } from 'asterui'

function App() {
  const [value, setValue] = useState({ month: '1', day: '15', year: '1995' })
  
  return (
      <Card className="w-full max-w-xl">
        <Space direction="vertical" size="sm">
          <Text type="secondary">Controlled value</Text>
          <DateOfBirth value={value} onChange={setValue} />
          <Text type="secondary" className="text-xs">
            {JSON.stringify(value)}
          </Text>
        </Space>
      </Card>
    )
}

export default App

Formulário

Integração com Form e envio do valor.

Form integration

 

import { DateOfBirth, Card, Space, Typography, Form, Button, Modal } from 'asterui'

function App() {
  return (
      <Card className="w-full max-w-xl">
        <Space direction="vertical" size="sm">
          <Text type="secondary">Form integration</Text>
          <Form
            form={form}
            onFinish={handleFinish}
          >
            <Form.Item
              name="dob"
              {...DateOfBirth.required()}
            >
              <DateOfBirth />
            </Form.Item>
            <Button htmlType="submit">Submit</Button>
          </Form>
        </Space>
      </Card>
    )
}

export default App
PropriedadeDescriçãoTipoPadrão
valueValor controlado{ month?: string; day?: string; year?: string }-
defaultValueValor padrão{ month?: string; day?: string; year?: string }-
onChangeManipulador de mudança(value) => void-
orderOrdem dos campos'mdy' | 'dmy' | 'ymd''mdy'
monthStyleEstilo do mês'select' | 'grid''select'
yearStyleEstilo do ano'select' | 'input''select'
yearSpanQuantidade de anosnumber120
minAgeIdade mínima permitidanumber13
maxAgeIdade máxima permitidanumber-
monthPlaceholderPlaceholder do mêsstring'Month'
dayPlaceholderPlaceholder do diastring'Day'
yearPlaceholderPlaceholder do anostring'Year'
disabledDesativar o campobooleanfalse
sizeTamanho do componente'xs' | 'sm' | 'md' | 'lg' | 'xl'-
classNameClasses CSS adicionaisstring-
data-testidPrefixo de ID de testestring-