@leofavre/memory-game-component
Version:
A memory game web component.
63 lines (46 loc) • 1.52 kB
JavaScript
;
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;