Date Components
様々な日付コンポーネント。
@gravity-ui/date-components ·

インストール
npm install react react-dom @gravity-ui/uikit @gravity-ui/date-components @gravity-ui/date-utils
使用方法
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">Date: </label>
<DatePicker id="date-picker" name="date" />
</form>
</ThemeProvider>
);
}
const root = createRoot(document.getElementById('root'));
root.render(<App />);
ローカライゼーション
import {settings} from '@gravity-ui/date-utils';
// アプリケーションで使用する日付ロケールをロードします。
await settings.loadLocale('ru');
function App() {
return (
// コンポーネントで使用する言語を設定します。
<ThemeProvider lang="ru">
<h1>DatePicker</h1>
<form>
<label htmlFor="date-picker">Дата: </label>
<DatePicker id="date-picker" name="date" />
</form>
</ThemeProvider>
);
}
アプリが言語切り替えをサポートしている場合、アプリが最初に読み込まれるときにサポートされているすべてのロケールをプリロードするか、言語を切り替える前にロケールをロードしてください。
// ロケールをプリロード
await Promise.all([settings.loadLocale('ru'), settings.loadLocale('nl')]);
const root = createRoot(document.getElementById('root'));
root.render(<App />);
// またはオンデマンドでロードします。
function App() {
const [lang, setLang] = React.useState('en');
const handleLangChange = (newLang) => {
settings.loadLocale(newLang).then(() => {
setLang(newLang);
});
};
return <ThemeProvider lang={lang}>...</ThemeProvider>;
}
コンポーネントには、英語とロシア語の翻訳が含まれています。他の言語への翻訳を追加するには、@gravity-ui/uikit の addLanguageKeysets を使用してください。
import {addLanguageKeysets} from '@gravity-ui/uikit/i18n';
import type {Keysets, PartialKeysets} from '@gravity-ui/date-components';
// Keyset 型を使用して、利用可能なすべてのコンポーネントの翻訳を指定します
addLanguageKeysets<Keysets>(lang, {...});
// または PartialKeysets 型を使用して、必要なものだけを指定します
addLanguageKeysets<PartialKeysets>(lang, {...});
// 一部のコンポーネントの翻訳を指定するには
addLanguageKeysets<Pick<Keysets, 'g-date-calendar' | 'g-date-date-field' | 'g-date-date-picker'>>(lang, {...});
開発
ストーリーブックで開発サーバーを起動するには、以下を実行します。
npm start
ライセンス
MIT License に基づいて配布されています。詳細については LICENSE を参照してください。
AI エージェント向け
React の日付と時刻のコントロール。Gravity UI アプリケーション向けに、@gravity-ui/date-utils をベースにした日付/時刻ピッカー、カレンダー、絶対/相対範囲セレクターを提供します。
使用する場面
- 単一の日付または日時入力:
DatePicker,DateField。 - 月/日の選択用カレンダー:
Calendar,CalendarView。 - 日付範囲:
RangeDatePicker,RangeCalendar,RangeDateField。 - 相対および混合絶対/相対範囲(例:「過去7日間」):
RelativeDatePicker,RelativeRangeDatePicker,RelativeDateField。
使用しない場面
- プレーンテキストまたは数値入力、ボタン、その他の汎用コントロール —
@gravity-ui/uikitを使用してください。 - UI なしの低レベルな日付計算、解析、フォーマット、タイムゾーン処理 — 直接
@gravity-ui/date-utilsを使用してください。
よくある落とし穴
- 値は JS
DateではなくDateTimeオブジェクトです。 コンポーネントは@gravity-ui/date-utilsのdateTime()で動作します。ネイティブのDateや ISO 文字列ではなく、DateTimeを渡して読み込んでください。 - uikit のセットアップが必要です。
ThemeProvider内でレンダリングし、@gravity-ui/uikit/styles/styles.cssをインポートしてください。@gravity-ui/uikitおよび@gravity-ui/date-utilsは必須の peer 依存関係です。 - ロケールはロードされ、単に設定されるだけではありません。
ThemeProviderのlangで言語を設定しますが、@gravity-ui/date-utilsからsettings.loadLocale('ru')を使用してロケールデータを先にロードしないと、日付はデフォルトのロケールでレンダリングされます。 - コンポーネント固有の翻訳には
addLanguageKeysetsを使用します。en/ru以外の言語については、ここでエクスポートされるKeysets/PartialKeysets型を使用して、@gravity-ui/uikit/i18nからaddLanguageKeysetsを介してキーセットを登録してください。
AI エージェント向けドキュメント
インストールされているバージョンのエージェント読み取り可能なドキュメントは、node_modules/@gravity-ui/date-components/dist/docs/INDEX.md にあります。
ライブラリについて