diff --git a/packages/react-composable-calendar/src/components/day-renderer.tsx b/packages/react-composable-calendar/src/components/day-renderer.tsx new file mode 100644 index 0000000..815206c --- /dev/null +++ b/packages/react-composable-calendar/src/components/day-renderer.tsx @@ -0,0 +1,16 @@ +import type { ComponentProps, ReactNode } from "react"; +import { useDayContext } from "../contexts/day.js"; + +import type { PlainDate } from "../temporal.js"; + +export type DayRendererProps = ComponentProps<"div"> & { + render: (props: { day: PlainDate }) => ReactNode; +}; + +export function DayRenderer(props: DayRendererProps) { + const { render, ...rest } = props; + + const dayContext = useDayContext(); + const day = dayContext.day; + return
{render({ day })}
; +} diff --git a/packages/react-composable-calendar/src/components/index.tsx b/packages/react-composable-calendar/src/components/index.tsx index 904cb8d..a6f75d2 100644 --- a/packages/react-composable-calendar/src/components/index.tsx +++ b/packages/react-composable-calendar/src/components/index.tsx @@ -14,4 +14,5 @@ export * from "./month-title.js"; export * from "./days.js"; export * from "./day.js"; export * from "./day-label.js"; +export * from "./day-renderer.js"; export * from "./form-input.js";