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>
);
}