diff --git a/src/context.tsx b/src/context.tsx new file mode 100644 index 0000000..0d7fd14 --- /dev/null +++ b/src/context.tsx @@ -0,0 +1,38 @@ +import React, { createContext, Dispatch, SetStateAction, useState } from 'react' + +type CalendarContextStateT = { + month: number + year: number + firstDayOfMonth: number + lastDayOfMonth: number + numberOfDays: number +} + +type CalendarContextT = { + state: CalendarContextStateT + setState?: Dispatch<SetStateAction<CalendarContextStateT>> +} + +const initialCalendarContextState: CalendarContextStateT = { + month: 1, + year: 1, + firstDayOfMonth: 0, + lastDayOfMonth: 0, + numberOfDays: 0, +} + +export const CalendarContext = createContext<CalendarContextT>({ + state: initialCalendarContextState, +}) + +export const CalendarProvider: React.FC = ({ children }) => { + const [state, setState] = useState<CalendarContextStateT>( + initialCalendarContextState + ) + + return ( + <CalendarContext.Provider value={{ state, setState }}> + {children} + </CalendarContext.Provider> + ) +} diff --git a/src/index.tsx b/src/index.tsx index 8cd9fb8..ec3932e 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,7 +1,12 @@ -import * as React from "react"; +import React from 'react' +import { CalendarProvider as CalendarContextProvider } from './context' const Calendar: React.FC = () => { - return <div>Calendar</div>; -}; + return ( + <CalendarContextProvider> + <div></div> + </CalendarContextProvider> + ) +} -export default Calendar; +export default Calendar