TimePicker
時間を選択するドロップダウンコンポーネント。
インポート
個別サブパス:
注意:
TimePickerはiconNamepropで実行時にアイコンを選べる設計のため、内部で全アイコンを参照する動的解決を経由します。このサブパスを使ってもlucide-reactの全アイコンがバンドルに含まれるため、バンドルサイズ削減効果はありません(他コンポーネントのサブパスとは異なります)。他の依存を絞る目的では有効です。
基本的な使い方
Loading...
サイズ
3つのサイズが用意されています(DatePickerと同じ高さ体系)。
Loading...
時間間隔
interval で時間の間隔(分)を指定できます。デフォルトは30分です。
Loading...
時間範囲の制限
minTime と maxTime で選択可能な時間範囲を制限できます。
Loading...
プレースホルダー
Loading...
無効状態
Loading...
アイコン非表示
showIcon={false} でアイコンを非表示にできます。
Loading...
カスタムアイコン
iconName でアイコンを変更できます。デフォルトは Clock です。
Loading...
実際の使用例
営業時間の設定
Loading...
Props
| Prop | Type | Default | Description |
|---|---|---|---|
value | string | - | 選択された時間 (HH:mm 形式) |
onChange | (time: string) => void | - | 時間が変更された時のコールバック |
interval | number | 30 | 時間の間隔(分) |
minTime | string | '00:00' | 選択可能な最小時間 (HH:mm 形式) |
maxTime | string | '23:59' | 選択可能な最大時間 (HH:mm 形式) |
placeholder | string | '時間を選択' | プレースホルダーテキスト |
disabled | boolean | false | 無効状態 |
showIcon | boolean | true | アイコンを表示するか |
iconName | IconName | 'Clock' | 表示するアイコン |
size | 'sm' | 'default' | 'lg' | 'default' | トリガー入力欄のサイズ(DatePickerと同じ高さ体系) |
className | string | - | 追加のクラス名 |
id / name / required / aria-invalid / aria-describedby など、上記に無い標準のinput属性は
トリガー入力欄へそのまま透過されます(value / onChange / defaultValue / placeholder / disabled / type は除外されます)。
注意事項
- 時間の形式は
HH:mmです(例: "09:30", "14:00") intervalは分単位で指定します- ドロップダウンを開いた時、選択中の時間に自動スクロールします
- ドロップダウン内は矢印キー(↑/↓)でフォーカス移動できます(ローミングタブインデックス)
refを渡すとトリガー入力欄(HTMLInputElement)が取得できます