import PropTypes from 'prop-types'; import { createContext, useMemo, useState } from 'react'; export const CalendarWidgetContext = createContext({}); export const CalendarWidgetProvider = (props) => { const { children, maxDate = new Date(2030, 0, 1), minDate = new Date(1990, 0, 1), locale = 'ru', ...restProps } = props; const [targetDate, setTargetDate] = useState(new Date()); const contextValue = useMemo(() => ({ targetYear: targetDate.getFullYear(), targetMonthIndex: targetDate.getMonth(), targetDate, setTargetDate, minDate, maxDate, locale, ...restProps, }), [maxDate, minDate, targetDate, locale, restProps]); return ( {children} ); }; CalendarWidgetProvider.propTypes = { children: PropTypes.node.isRequired, maxDate: PropTypes.instanceOf(Date), minDate: PropTypes.instanceOf(Date), locale: PropTypes.oneOf(['ru', 'en']), };