UNPKG

@randy.tarampi/jsx

Version:

Some common JSX components for www.randytarampi.ca

36 lines (33 loc) 1.42 kB
import { defaultBearComponents } from "@randy.tarampi/js"; import { createAction } from "redux-actions"; import selectors from "../../data/selectors"; import onComponentClick from "./onComponentClick"; import updateEmoji from "./updateEmoji"; export var HANDLE_BEAR_COMPONENT_CLICK = "HANDLE_BEAR_COMPONENT_CLICK"; export var onBearComponentClickCreator = (emojiId, componentId, event) => (dispatch, getState) => { dispatch(onComponentClick(emojiId, componentId, event)); var state = getState(); var emoji = selectors.getEmoji(state, emojiId); var leftEye = ["components", "leftEye", "character"]; var rightEye = ["components", "rightEye", "character"]; var noseClickCount = ["components", "nose", "meta", "clicks"]; var noseClicks = emoji.getIn(noseClickCount) || 0; dispatch(onBearComponentClick({ emojiId, componentId, noseClicks })); switch (noseClicks % 3) { case 1: dispatch(updateEmoji(emoji.setIn(leftEye, "ಠಿ").setIn(rightEye, "ಠ"))); break; case 2: dispatch(updateEmoji(emoji.setIn(leftEye, "ಠ").setIn(rightEye, "ಠ"))); break; case 0: dispatch(updateEmoji(emoji.setIn(leftEye, defaultBearComponents.leftEye.character).setIn(rightEye, defaultBearComponents.rightEye.character))); break; } }; export var onBearComponentClick = createAction(HANDLE_BEAR_COMPONENT_CLICK); export default onBearComponentClickCreator;