Selector de Hora
Usa los componentes compuestos TimePicker para construir una interfaz de usuario de selección de hora personalizada. Este ejemplo reemplaza el activador predeterminado con un botón estilizado mientras mantiene el panel de hora y el pie de página estándar.
import { useState } from "react";import { TimePicker } from "react-date-range-picker-tailwind4";
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> );}Formato de 12 Horas
Configura el formato de 12 horas con time:
import { useState } from "react";import { TimePicker } from "react-date-range-picker-tailwind4";
function CompoundTimePickerTwelveHour() { const [value, setValue] = useState<Date | null>(null);
return ( <TimePicker.Root value={value} onChange={setValue} time={{ hourFormat: "12" }}> <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: 16 }}>🕐</span> <span>{displayValue || "Select 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> );}