packages-rc/console-base-rc-pagination/src/model/provider/index.tsx (32 lines of code) (raw):

import React, { ReactNode, useReducer } from 'react'; import { IModelProps, IModelReducer } from '../types'; import { DEFAULT_CONTEXT_STATE } from '../const'; import reducer from '../reducer'; import Context from '../context'; import Lifecycle from '../lifecycle'; interface IProps { props: IModelProps; children: ReactNode; } export default function Provider({ props, children }: IProps): JSX.Element { const [state, dispatch] = useReducer<IModelReducer>(reducer, DEFAULT_CONTEXT_STATE); return <Context.Provider value={{ props, state, dispatch }}> {children} <Lifecycle /> </Context.Provider>; }