Comportement

Fermer lors de la sélection

Lorsque shouldCloseOnSelect est activé, le sélecteur confirme et se ferme automatiquement lorsqu’un préréglage est cliqué.

ℹ️ Info

Pour les sélecteurs avec heure, shouldCloseOnSelect ne s’applique qu’aux clics sur les préréglages — pas aux clics sur les dates, car l’utilisateur doit encore régler l’heure.

import { useState } from "react";
import { DateRangeTimePicker } from "react-date-range-picker-tailwind4";
function ShouldCloseOnSelect() {
const [value, setValue] = useState<{ start: Date | null; end: Date | null }>({
start: null,
end: null,
});
return (
<DateRangeTimePicker
value={value}
onChange={setValue}
shouldCloseOnSelect
time={{ minuteStep: 5 }}
/>
);
}

Mois multiples

Affichez plus que les deux mois par défaut côte à côte.

import { useState } from "react";
import { DateRangeTimePicker } from "react-date-range-picker-tailwind4";
function MultiMonth() {
const [value, setValue] = useState<{ start: Date | null; end: Date | null }>({
start: null,
end: null,
});
return (
<DateRangeTimePicker
value={value}
onChange={setValue}
numberOfMonths={3}
time={{ minuteStep: 5 }}
/>
);
}

Intégration de formulaire

Utilisez la prop name pour inclure des champs de saisie masqués pour la soumission de formulaire native.

💡 Tip

Le style du bouton de soumission dans cet exemple est personnalisé — la bibliothèque ne fournit que le sélecteur de date.

import { type SubmitEvent, useState } from "react";
import { DateRangeTimePicker } from "react-date-range-picker-tailwind4";
function FormIntegration() {
const [value, setValue] = useState<{ start: Date | null; end: Date | null }>({
start: null,
end: null,
});
const handleSubmit = (e: SubmitEvent<HTMLFormElement>) => {
e.preventDefault();
const formData = new FormData(e.currentTarget);
const start = formData.get("booking");
const end = formData.get("booking-end");
alert(
`Submitted range: ${typeof start === "string" ? start : ""} ~ ${typeof end === "string" ? end : ""}`,
);
};
return (
<form onSubmit={handleSubmit} style={{ display: "flex", alignItems: "center", gap: 8 }}>
<DateRangeTimePicker
value={value}
onChange={setValue}
name="booking"
time={{ minuteStep: 5 }}
/>
<button
type="submit"
style={{
padding: "6px 14px",
border: "1px solid #d1d5db",
borderRadius: 6,
background: "#3b82f6",
color: "#fff",
cursor: "pointer",
fontSize: 13,
}}
>
Submit
</button>
</form>
);
}