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>;
}