@applicaster/zapp-react-native-ui-components
Version:
Applicaster Zapp React Native ui components for the Quick Brick App
36 lines (30 loc) • 919 B
JavaScript
import * as R from "ramda";
import { createContext } from "@applicaster/zapp-react-native-utils/reactUtils/createContext";
import { noop } from "@applicaster/zapp-react-native-utils/functionUtils";
const DISPLAY_STATE_PROPERTY = "displayState";
const RESET_HUD_TIMER_PROPERTY = "resetHudTimer";
export const DISPLAY_STATES = {
DEFAULT: "DEFAULT",
HUD: "HUD",
PLAYER: "PLAYER",
};
const initialContext = {
[DISPLAY_STATE_PROPERTY]: DISPLAY_STATES.DEFAULT,
[RESET_HUD_TIMER_PROPERTY]: noop,
};
const stateValidator = R.cond([
[
R.propEq("property", DISPLAY_STATE_PROPERTY),
R.compose(
(R.includes || R.contains)(R.__, R.values(DISPLAY_STATES)),
R.prop("value")
),
],
// TODO: properly validate this
// [R.propEq("property", RESET_HUD_TIMER_PROPERTY), R.is(Function)],
[R.T, R.T],
]);
export const DisplayStateContext = createContext(
initialContext,
stateValidator
);