corda-checkers/webapp/src/context/data/index.jsx

30 lines
778 B
JavaScript

import React from "react"
import { reducer, initialState } from "./reducer"
import Poll from "./Poll"
export const AppData = React.createContext({
state: initialState,
dispatch: () => null
})
export const AppDataProvider = ({ children }) => {
const [data, dispatchData] = React.useReducer(reducer, initialState)
const [games, gamesFetching ] = Poll('api/gamestate' , 30, data.offlineMode)
const [leaderboard, leaderboardFetching ] = Poll('api/leaderboard', 60, data.offlineMode)
data.games = games
data.gamesFetching = gamesFetching
data.leaderboard = leaderboard
data.leaderboardFetching = leaderboardFetching
return (
<AppData.Provider value={[data, dispatchData]}>
{children}
</AppData.Provider>
)
}