Bộ chọn thời gian
API ghép TimePicker cho phép bạn xây dựng giao diện người dùng chọn thời gian tùy chỉnh với một trình kích hoạt, bảng điều khiển thời gian và các hành động ở chân trang.
import { useState } from "react";import { TimePicker } from "react-date-range-picker-tailwind3";
function CompoundTimePicker() { const [value, setValue] = useState<Date | null>(null);
return ( <TimePicker.Root value={value} onChange={setValue}> <TimePicker.Trigger> {({ displayValue, isOpen, onToggle, triggerRef }) => ( <button ref={triggerRef as React.Ref<HTMLButtonElement>} onClick={onToggle} style={{ display: "inline-flex", alignItems: "center", gap: 8, padding: "8px 12px", border: "1px solid #d1d5db", borderRadius: 6, background: isOpen ? "#eff6ff" : "#fff", cursor: "pointer", fontSize: 14, }} > <span style={{ fontSize: 18 }}>{"\uD83D\uDD52"}</span> <span>{displayValue || "Select time"}</span> </button> )} </TimePicker.Trigger> <TimePicker.Content> <TimePicker.TimePanel target="single" /> <TimePicker.Footer> <TimePicker.ClearButton /> <TimePicker.CancelButton /> <TimePicker.ConfirmButton /> </TimePicker.Footer> </TimePicker.Content> </TimePicker.Root> );}Định dạng 12 giờ
Cấu hình định dạng 12 giờ với time:
import { useState } from "react";import { TimePicker } from "react-date-range-picker-tailwind3";
function CompoundTimePickerTwelveHour() { const [value, setValue] = useState<Date | null>(null);
return ( <TimePicker.Root value={value} onChange={setValue} time={{ hourFormat: "12", precision: "minute" }} > <TimePicker.Trigger> {({ displayValue, isOpen, onToggle, triggerRef }) => ( <button ref={triggerRef as React.Ref<HTMLButtonElement>} onClick={onToggle} style={{ display: "inline-flex", alignItems: "center", gap: 8, padding: "8px 12px", border: `1px solid ${isOpen ? "#3b82f6" : "#d1d5db"}`, borderRadius: 6, background: isOpen ? "#eff6ff" : "#fff", cursor: "pointer", fontSize: 14, }} > <span style={{ fontSize: 18 }}>{"\uD83D\uDD52"}</span> <span>{displayValue || "Pick a time (12h)"}</span> </button> )} </TimePicker.Trigger> <TimePicker.Content> <TimePicker.TimePanel target="single" /> <TimePicker.Footer> <TimePicker.ClearButton /> <TimePicker.CancelButton /> <TimePicker.ConfirmButton /> </TimePicker.Footer> </TimePicker.Content> </TimePicker.Root> );}