UNPKG

react-quizz-spanish

Version:

Quizz en react, traducido al español, autor original: hugobarragon

63 lines 2.62 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.reducer = exports.initialState = void 0; var lodash_clonedeep_1 = __importDefault(require("lodash.clonedeep")); function mapClone(map) { return lodash_clonedeep_1.default(map); } exports.initialState = function (initialValue) { return new Map([["data", initialValue || []]]); }; function reducer(state, action) { switch (action.type) { case "ADD_ELEMENT": { var new_state = mapClone(state), new_data = new_state.get("data"); var item = action.item; new_data.push(item); return new_state.set("data", new_data); } case "DELETE_ELEMENT": { var new_state = mapClone(state), new_data = new_state.get("data"), id = action.id; for (var index = 0; index < new_data.length; index++) { var element = new_data[index]; if (element["id"] === id) { // if it finds equal id on list deletes it new_data.splice(index, 1); } } return new_state.set("data", new_data); } case "PATCH_ELEMENT": { var new_state = mapClone(state), new_data = new_state.get("data"), id = action.id, newitem = action.newitem; for (var index = 0; index < new_data.length; index++) { var element = new_data[index]; if (element["id"] === id) { // if it finds equal id on list updates it new_data[index] = Object.assign(element, newitem); break; } } return new_state.set("data", new_data); } case "MOVE_ELEMENT": { var new_state = mapClone(state); var new_data = new_state.get("data"); var newIndex = action.newIndex, oldIndex = action.oldIndex; if (newIndex >= new_data.length) { var k = newIndex - new_data.length + 1; while (k--) { new_data.push(undefined); } } new_data.splice(newIndex, 0, new_data.splice(oldIndex, 1)[0]); return new_state.set("data", new_data); } default: throw new Error("unkown reducer action type"); } } exports.reducer = reducer; //# sourceMappingURL=reducer.js.map