Niestandardowa komórka dnia
Użyj render prop komponentu Day, aby dostosować każdą komórkę dnia. Jest to przydatne do dodawania wskaźników zdarzeń, niestandardowego stylowania opartego na właściwościach daty lub całkowitego zastąpienia renderowania dnia.
import { useState } from "react";import { DatePicker } from "react-date-range-picker-tailwind3";
const eventDates = new Set([5, 12, 18, 25]);
function CompoundCustomDay() { const [value, setValue] = useState<Date | null>(null);
return ( <DatePicker.Root value={value} onChange={setValue} inline> <DatePicker.Content> <DatePicker.Header> <DatePicker.PrevButton /> <DatePicker.Title /> <DatePicker.NextButton /> </DatePicker.Header> <DatePicker.Grid> {({ date }) => ( <DatePicker.Day date={date}> {({ day, isDisabled, isSelected, isToday, onClick, onMouseEnter, onMouseLeave }) => ( <button type="button" onClick={onClick} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave} disabled={isDisabled} style={{ display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", width: 36, height: 36, border: "none", borderRadius: 6, cursor: isDisabled ? "default" : "pointer", background: isSelected ? "#3b82f6" : "transparent", color: isSelected ? "#fff" : isToday ? "#2563eb" : undefined, fontWeight: isToday || isSelected ? 600 : 400, fontSize: 13, position: "relative", }} > {day} {eventDates.has(date.getDate()) && ( <span style={{ position: "absolute", bottom: 2, width: 4, height: 4, borderRadius: "50%", background: isSelected ? "#fff" : "#f59e0b", }} /> )} </button> )} </DatePicker.Day> )} </DatePicker.Grid> </DatePicker.Content> </DatePicker.Root> );}March 2026
Su
Mo
Tu
We
Th
Fr
Sa
Render Props dla Dnia
| Prop | Type | Opis |
|---|---|---|
date | Date | Obiekt daty |
day | number | Dzień miesiąca (1-31) |
isToday | boolean | Czy to jest dzisiaj |
isSelected | boolean | Czy ten dzień jest wybrany |
isDisabled | boolean | Czy ten dzień jest wyłączony |
isInRange | boolean | Czy ten dzień znajduje się w wybranym zakresie |
isRangeStart | boolean | Czy to jest początek zakresu |
isRangeEnd | boolean | Czy to jest koniec zakresu |
isInHoverRange | boolean | Czy ten dzień znajduje się w zakresie podglądu najechania myszą |
isHoverTarget | boolean | Czy to jest punkt końcowy najechania myszą |
isOutsideDay | boolean | Czy ten dzień należy do sąsiedniego miesiąca |
isHighlighted | boolean | Czy ten dzień ma kropkę wyróżnienia |
isFocused | boolean | Czy ten dzień ma fokus klawiatury |
onClick | () => void | Obsługa kliknięcia |
onMouseEnter | () => void | Obsługa wejścia myszy |
onMouseLeave | () => void | Obsługa opuszczenia myszy |