39 lines
883 B
TypeScript
39 lines
883 B
TypeScript
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>
|
|
)
|
|
}
|