import React, {Fragment, type ReactNode} from 'react'; import {View} from 'react-native'; import DatePickerDate from './DatePickerDate'; import DatePickerMonth from './DatePickerMonth'; import DatePickerYear from './DatePickerYear'; import {useDatePickerLocale} from './DatePickerLocaleProvider'; export type DateNodeType = 'date' | 'month' | 'year'; type DatePickerContainerProps = { renderDate?: () => ReactNode; renderMonth?: () => ReactNode; renderYear?: () => ReactNode; children: (props: { dateNodes: { node: ReactNode; type: DateNodeType; }[]; }) => ReactNode; }; const DatePickerContainer = ({ renderDate = () => , renderMonth = () => , renderYear = () => , children, }: DatePickerContainerProps) => { const localeData = useDatePickerLocale(); const typeToRenderMap: Record ReactNode> = { date: renderDate, month: renderMonth, year: renderYear, }; return ( {children({ dateNodes: localeData.sortedDateUnitTypes.map((type) => ({ type, node: {typeToRenderMap[type]()}, })), })} ); }; export default DatePickerContainer;