Bibliotecas / Date Components

Date Components

Vários componentes de data.

@gravity-ui/date-components · npm package CI storybook coverage tests-report

Instalação

npm install react react-dom @gravity-ui/uikit @gravity-ui/date-components @gravity-ui/date-utils

Uso

import {createRoot} from 'react-dom/client';
import {DatePicker} from '@gravity-ui/date-components';
import {ThemeProvider} from '@gravity-ui/uikit';

import '@gravity-ui/uikit/styles/styles.css';

function App() {
  return (
    <ThemeProvider>
      <h1>DatePicker</h1>
      <form>
        <label htmlFor="date-picker">Data: </label>
        <DatePicker id="date-picker" name="date" />
      </form>
    </ThemeProvider>
  );
}

const root = createRoot(document.getElementById('root'));
root.render(<App />);

Localização

import {settings} from '@gravity-ui/date-utils';

// Carrega os locais de data que serão usados na aplicação.
await settings.loadLocale('ru');

function App() {
  return (
    // Define o idioma a ser usado com os componentes.
    <ThemeProvider lang="ru">
      <h1>DatePicker</h1>
      <form>
        <label htmlFor="date-picker">Data: </label>
        <DatePicker id="date-picker" name="date" />
      </form>
    </ThemeProvider>
  );
}

Se o aplicativo suportar troca de idioma, pré-carregue todos os locais suportados quando o aplicativo for carregado pela primeira vez, ou carregue os locais antes de trocar o idioma:

// Pré-carrega os locais
await Promise.all([settings.loadLocale('ru'), settings.loadLocale('nl')]);

const root = createRoot(document.getElementById('root'));
root.render(<App />);

// ou carrega os locais sob demanda.

function App() {
  const [lang, setLang] = React.useState('en');

  const handleLangChange = (newLang) => {
    settings.loadLocale(newLang).then(() => {
      setLang(newLang);
    });
  };

  return <ThemeProvider lang={lang}>...</ThemeProvider>;
}

Os componentes possuem traduções para inglês e russo. Para adicionar traduções em outros idiomas, use addLanguageKeysets de @gravity-ui/uikit:

import {addLanguageKeysets} from '@gravity-ui/uikit/i18n';
import type {Keysets, PartialKeysets} from '@gravity-ui/date-components';

// Use o tipo Keyset para especificar traduções para todos os componentes disponíveis
addLanguageKeysets<Keysets>(lang, {...});

// ou use o tipo PartialKeysets para especificar apenas os que você precisa
addLanguageKeysets<PartialKeysets>(lang, {...});

// Para especificar traduções para alguns componentes
addLanguageKeysets<Pick<Keysets, 'g-date-calendar' | 'g-date-date-field' | 'g-date-date-picker'>>(lang, {...});

Desenvolvimento

Para iniciar o servidor de desenvolvimento com o storybook, execute o seguinte:

npm start
Sobre a biblioteca
Estrelas
14
Versão
3.4.1
Última atualização
24.11.2025
Repositório
github.com/gravity-ui/date-components
Licença
MIT License
Mantenedores
Contribuidores