Niestandardowa komórka dnia

Użyj render prop komponentu Day, aby dostosować wygląd każdej komórki dnia. Jest to przydatne do dodawania wskaźników wydarzeń, podpowiedzi lub całkowicie niestandardowych stylów do poszczególnych dni.

import { useState } from "react";
import { DatePicker } from "react-date-range-picker-styled";
import "react-date-range-picker-styled/rdrp-styles.css";
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

PropTypeDescription
dateDateObiekt daty
daynumberDzień miesiąca (1-31)
isTodaybooleanCzy to jest dzisiaj
isSelectedbooleanCzy ten dzień jest wybrany
isDisabledbooleanCzy ten dzień jest wyłączony
isInRangebooleanCzy ten dzień znajduje się w wybranym zakresie
isRangeStartbooleanCzy to jest początek zakresu
isRangeEndbooleanCzy to jest koniec zakresu
isInHoverRangebooleanCzy ten dzień znajduje się w zakresie podglądu najechania myszą
isHoverTargetbooleanCzy to jest punkt końcowy najechania myszą
isOutsideDaybooleanCzy ten dzień należy do sąsiedniego miesiąca
isHighlightedbooleanCzy ten dzień ma kropkę podświetlenia
isFocusedbooleanCzy ten dzień ma fokus klawiatury
onClick() => voidHandler kliknięcia
onMouseEnter() => voidHandler wejścia myszy
onMouseLeave() => voidHandler opuszczenia myszy