UNPKG

@leofavre/memory-game-component

Version:

A memory game web component.

63 lines (46 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _elmnt = require("@leofavre/elmnt"); var _memoryGameReducer = _interopRequireDefault(require("../state/memoryGameReducer.js")); var _memoryGameActions = require("../state/memoryGameActions.js"); var _MemoryGameView = _interopRequireDefault(require("./MemoryGameView.js")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class _default extends (0, _elmnt.withReducer)(_memoryGameReducer.default)((0, _elmnt.withDomEvents)((0, _elmnt.withElmnt)(HTMLElement))) { constructor() { super(); this.handleClick = this.handleClick.bind(this); } static get parameters() { return [{ prop: 'state', onPropChanged(newValue, oldValue) { if (oldValue && oldValue.events !== newValue.events) { const { name, detail } = [...newValue.events].pop(); this.dispatchEventAndMethod(name, detail); } this.updateLayout(); } }, { prop: 'cards', onPropChanged(newValue) { this.dispatchAction((0, _memoryGameActions.distributeCards)(newValue)); this.dispatchEventAndMethod('start'); } }]; } handleClick(position) { return () => { this.dispatchAction((0, _memoryGameActions.requestPlayAsync)(position)); }; } render() { return (0, _MemoryGameView.default)(this); } } exports.default = _default;