UNPKG

panjareh

Version:

Panjareh using aparat and phoenix-video-player to play videos on desktops and tvs.

42 lines (36 loc) 928 B
import React, { useReducer } from "react"; import PropTypes from "prop-types"; import UserContext from "./user-context"; const DEFAULT_VALUE = { token: null, isLoading: true, isAuthenticated: false, }; function reducer(state, action) { switch (action.type) { case "set-user": return { ...state, ...action.payload, isAuthenticated: action.payload.token && action.payload.token.length > 0, }; case "reset": return { ...DEFAULT_VALUE }; default: throw new Error(); } } const UserProvider = ({ children }) => { const [state, dispatch] = useReducer(reducer, DEFAULT_VALUE); return ( <UserContext.Provider value={{ state, dispatch }}> {children} </UserContext.Provider> ); }; UserProvider.propTypes = { children: PropTypes.node.isRequired, }; UserProvider.displayName = "UserProvider"; export default React.memo(UserProvider);