@gamelearn/arcade-components 0.20.9 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,7 +45,8 @@ var CardsSelectorPuzzleComponent = function CardsSelectorPuzzleComponent(_ref) {
45
45
  cards = _ref.cards,
46
46
  disableExit = _ref.disableExit,
47
47
  setResolveAction = _ref.setResolveAction,
48
- soundActions = _ref.soundActions;
48
+ soundActions = _ref.soundActions,
49
+ setShowPoints = _ref.setShowPoints;
49
50
 
50
51
  var _useState = (0, _react.useState)(false),
51
52
  _useState2 = _slicedToArray(_useState, 2),
@@ -92,6 +93,16 @@ var CardsSelectorPuzzleComponent = function CardsSelectorPuzzleComponent(_ref) {
92
93
  });
93
94
  };
94
95
 
96
+ var closeFeedbackAndShowPoints = (0, _react.useCallback)(function (rewardsData) {
97
+ setFeedbackResult(false);
98
+ setFeedbackIsShown(false);
99
+ emitEvent({
100
+ type: 'hidePuzzleButtons',
101
+ payload: false
102
+ });
103
+ setShowPoints(rewardsData);
104
+ }, [emitEvent, setShowPoints]);
105
+
95
106
  var _endPuzzle = function endPuzzle() {
96
107
  emitEvent({
97
108
  type: 'hidePuzzleButtons',
@@ -110,10 +121,7 @@ var CardsSelectorPuzzleComponent = function CardsSelectorPuzzleComponent(_ref) {
110
121
  var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(rewards));
111
122
  setTimeout(function () {
112
123
  playSound('score');
113
- emitEvent({
114
- type: 'addPoints',
115
- payload: _toConsumableArray(rewardsData)
116
- });
124
+ closeFeedbackAndShowPoints(rewardsData);
117
125
  }, 3000);
118
126
  }
119
127
  };
@@ -124,14 +132,7 @@ var CardsSelectorPuzzleComponent = function CardsSelectorPuzzleComponent(_ref) {
124
132
  var rewards = info.solution.right.rewards;
125
133
  var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(rewards));
126
134
  playSound('score');
127
- emitEvent({
128
- type: 'hidePuzzleButtons',
129
- payload: false
130
- });
131
- emitEvent({
132
- type: 'addPoints',
133
- payload: _toConsumableArray(rewardsData)
134
- });
135
+ closeFeedbackAndShowPoints(rewardsData);
135
136
  } else {
136
137
  setFeedbackResult(false);
137
138
  disableExit(false);
@@ -183,13 +184,10 @@ var CardsSelectorPuzzleComponent = function CardsSelectorPuzzleComponent(_ref) {
183
184
  setResolvePuzzle(true);
184
185
  var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(info.resolve.rewards));
185
186
  setTimeout(function () {
186
- emitEvent({
187
- type: 'addPoints',
188
- payload: _toConsumableArray(rewardsData)
189
- });
190
- }, 4000);
187
+ closeFeedbackAndShowPoints(rewardsData);
188
+ }, 2000);
191
189
  });
192
- }, [setResolveAction, disableExit, accRewards, info.resolve.rewards, emitEvent]);
190
+ }, [setResolveAction, disableExit, accRewards, info.resolve.rewards, emitEvent, setShowPoints, closeFeedbackAndShowPoints]);
193
191
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
194
192
  className: "cards-selector"
195
193
  }, /*#__PURE__*/_react.default.createElement(_Board.default, {
@@ -74,7 +74,8 @@ var CrackerPuzzleComponent = function CrackerPuzzleComponent(_ref) {
74
74
  password = _ref.password,
75
75
  disableExit = _ref.disableExit,
76
76
  difficulty = _ref.difficulty,
77
- setResolveAction = _ref.setResolveAction;
77
+ setResolveAction = _ref.setResolveAction,
78
+ setShowPoints = _ref.setShowPoints;
78
79
 
79
80
  var _soundActions = _slicedToArray(soundActions, 1),
80
81
  playSound = _soundActions[0];
@@ -138,22 +139,23 @@ var CrackerPuzzleComponent = function CrackerPuzzleComponent(_ref) {
138
139
  }
139
140
  }, [finished, disableExit]);
140
141
  (0, _react.useEffect)(function () {
141
- setResolveAction(function (resolve) {
142
+ setResolveAction(function () {
142
143
  playSound('score');
143
144
  setFinished(true);
144
145
  setTimeout(function () {
145
- resolve();
146
- }, 4000);
146
+ emitEvent({
147
+ type: 'hidePuzzleButtons',
148
+ payload: false
149
+ });
150
+ setShowPoints(info.resolve.rewards);
151
+ }, 0);
147
152
  });
148
153
  }, [setResolveAction, playSound]);
149
154
 
150
155
  var handleFinish = function handleFinish() {
151
156
  playSound('click-ui');
152
157
  var rewards = solution.right.rewards;
153
- emitEvent({
154
- type: 'addPoints',
155
- payload: rewards
156
- });
158
+ setShowPoints(rewards);
157
159
  };
158
160
 
159
161
  var generatePasswordPositions = function generatePasswordPositions() {
@@ -52,7 +52,8 @@ var DragItemPuzzleComponent = function DragItemPuzzleComponent(_ref) {
52
52
  consume = _ref.consume,
53
53
  disableExit = _ref.disableExit,
54
54
  emitEvent = _ref.emitEvent,
55
- soundActions = _ref.soundActions;
55
+ soundActions = _ref.soundActions,
56
+ setShowPoints = _ref.setShowPoints;
56
57
  var solution = info.solution;
57
58
  var areaRef = (0, _react.useRef)();
58
59
  var areaTextRef = (0, _react.useRef)();
@@ -149,10 +150,12 @@ var DragItemPuzzleComponent = function DragItemPuzzleComponent(_ref) {
149
150
  }, [resolveObject.uid]);
150
151
  var handleFinish = (0, _react.useCallback)(function () {
151
152
  var rewards = solution.right.rewards;
153
+ setResolveClass('');
152
154
  emitEvent({
153
- type: 'addPoints',
154
- payload: rewards
155
+ type: 'hidePuzzleButtons',
156
+ payload: false
155
157
  });
158
+ setShowPoints(rewards);
156
159
 
157
160
  if (consume) {
158
161
  emitEvent({
@@ -169,7 +172,7 @@ var DragItemPuzzleComponent = function DragItemPuzzleComponent(_ref) {
169
172
  type: 'closeUI',
170
173
  ui: 'inventory'
171
174
  });
172
- }, [consume, emitEvent, resolveObject.name, resolveObject.uid, solution.right]);
175
+ }, [consume, emitEvent, resolveObject.name, resolveObject.uid, setShowPoints, solution.right]);
173
176
  var handleClose = (0, _react.useCallback)(function () {
174
177
  playSound('score');
175
178
  setResolveClass('success');
@@ -9,8 +9,6 @@ exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
 
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
13
-
14
12
  var _reactTypist = _interopRequireDefault(require("react-typist"));
15
13
 
16
14
  var _languages = _interopRequireDefault(require("./languages"));
@@ -79,7 +77,8 @@ var HackerPuzzleComponent = function HackerPuzzleComponent(_ref) {
79
77
  type = _ref.type,
80
78
  writingSpeed = _ref.writingSpeed,
81
79
  disableExit = _ref.disableExit,
82
- setResolveAction = _ref.setResolveAction;
80
+ setResolveAction = _ref.setResolveAction,
81
+ setShowPoints = _ref.setShowPoints;
83
82
 
84
83
  var translate = function translate(id) {
85
84
  return emitEvent({
@@ -174,10 +173,7 @@ var HackerPuzzleComponent = function HackerPuzzleComponent(_ref) {
174
173
  var handleFinish = function handleFinish() {
175
174
  playSound('click-ui');
176
175
  var rewards = solution.right.rewards;
177
- emitEvent({
178
- type: 'addPoints',
179
- payload: rewards
180
- });
176
+ setShowPoints(rewards);
181
177
  };
182
178
 
183
179
  (0, _react.useEffect)(function () {
@@ -186,12 +182,16 @@ var HackerPuzzleComponent = function HackerPuzzleComponent(_ref) {
186
182
  }
187
183
  }, [finished]);
188
184
  (0, _react.useEffect)(function () {
189
- setResolveAction(function (resolve) {
185
+ setResolveAction(function () {
190
186
  playSound('score');
191
187
  setFinished(true);
192
188
  setTimeout(function () {
193
- resolve();
194
- }, 4000);
189
+ emitEvent({
190
+ type: 'hidePuzzleButtons',
191
+ payload: false
192
+ });
193
+ setShowPoints(info.resolve.rewards);
194
+ }, 0);
195
195
  });
196
196
  }, [setResolveAction]);
197
197
 
@@ -272,7 +272,7 @@ var HackerPuzzleComponent = function HackerPuzzleComponent(_ref) {
272
272
  }, /*#__PURE__*/_react.default.createElement("button", {
273
273
  type: "button",
274
274
  className: "gat--btn gat--btn__primary gat--btn__cracker",
275
- onClick: handleFinish()
275
+ onClick: handleFinish
276
276
  }, translate('screens.continue'))));
277
277
  };
278
278
 
@@ -283,11 +283,5 @@ HackerPuzzleComponent.defaultProps = {
283
283
  info: {},
284
284
  themeNumber: 1
285
285
  };
286
- HackerPuzzleComponent.propTypes = {
287
- type: _propTypes.default.string,
288
- writingSpeed: _propTypes.default.number,
289
- themeNumber: _propTypes.default.number,
290
- info: _propTypes.default.shape({})
291
- };
292
286
  var _default = HackerPuzzleComponent;
293
287
  exports.default = _default;
@@ -8,7 +8,7 @@ exports.mockProps3 = exports.mockProps2 = exports.mockProps = void 0;
8
8
  var emitEvent = function emitEvent(_ref) {
9
9
  var type = _ref.type,
10
10
  payload = _ref.payload;
11
- console.log('Emit event called');
11
+ console.log('Emit event called', type);
12
12
 
13
13
  if (type === 'translate') {
14
14
  return payload;
@@ -94,7 +94,9 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
94
94
  image = _ref4.image,
95
95
  info = _ref4.info,
96
96
  answer = _ref4.answer,
97
- hintUsed = _ref4.hintUsed;
97
+ hintUsed = _ref4.hintUsed,
98
+ setShowPoints = _ref4.setShowPoints,
99
+ setResolveAction = _ref4.setResolveAction;
98
100
 
99
101
  var _soundActions = _slicedToArray(soundActions, 1),
100
102
  playSound = _soundActions[0];
@@ -306,27 +308,25 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
306
308
 
307
309
  var handleClose = function handleClose() {
308
310
  disableExit(true);
309
- var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(info.resolve.rewards));
311
+ setResolveClass('');
312
+ var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(info.solution.right.rewards));
310
313
  playSound('score');
311
- emitEvent({
312
- type: 'addPoints',
313
- payload: _toConsumableArray(rewardsData)
314
- });
315
314
  emitEvent({
316
315
  type: 'hidePuzzleButtons',
317
316
  payload: false
318
317
  });
318
+ setShowPoints(rewardsData);
319
319
  };
320
320
 
321
321
  var handleFail = function handleFail() {
322
322
  playSound('fail');
323
- setRewards([].concat(_toConsumableArray(accRewards), _toConsumableArray(info.solution.wrong.rewards)));
324
- setResolveClass('');
325
- setDisable(false);
326
323
  emitEvent({
327
324
  type: 'hidePuzzleButtons',
328
325
  payload: false
329
326
  });
327
+ setRewards([].concat(_toConsumableArray(accRewards), _toConsumableArray(info.solution.wrong.rewards)));
328
+ setResolveClass('');
329
+ setDisable(false);
330
330
  };
331
331
 
332
332
  var resolvePuzzle = function resolvePuzzle(newAnswer, newPool) {
@@ -348,6 +348,10 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
348
348
  var correctLetters = evaluatedAnswer.filter(function (letter) {
349
349
  return letter.fixed;
350
350
  }).length;
351
+ emitEvent({
352
+ type: 'hidePuzzleButtons',
353
+ payload: true
354
+ });
351
355
 
352
356
  if (correctLetters === translatedAnswer.length) {
353
357
  setResolveClass('success');
@@ -367,11 +371,6 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
367
371
  }, 2000);
368
372
  }
369
373
  }
370
-
371
- emitEvent({
372
- type: 'hidePuzzleButtons',
373
- payload: true
374
- });
375
374
  };
376
375
 
377
376
  var handleFeedbackFuncionOnClose = function handleFeedbackFuncionOnClose() {
@@ -387,7 +386,16 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
387
386
  setMounted(true);
388
387
  setHiddenAnswer();
389
388
  }
390
- }, [setHiddenAnswer, mounted]);
389
+
390
+ setResolveAction(function () {
391
+ var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(info.resolve.rewards));
392
+ emitEvent({
393
+ type: 'hidePuzzleButtons',
394
+ payload: false
395
+ });
396
+ setShowPoints(rewardsData);
397
+ });
398
+ }, [setHiddenAnswer, mounted, answer, setResolveAction, emitEvent, accRewards, info.resolve.rewards, setShowPoints]);
391
399
  return /*#__PURE__*/_react.default.createElement("div", {
392
400
  className: "puzzle--hanged",
393
401
  style: {
@@ -13,6 +13,14 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
13
13
 
14
14
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
15
 
16
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
17
+
18
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+
20
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
21
+
22
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
23
+
16
24
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
25
 
18
26
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -36,7 +44,9 @@ var LoginPuzzleComponent = function LoginPuzzleComponent(_ref) {
36
44
  user = _ref.user,
37
45
  login = _ref.login,
38
46
  password = _ref.password,
39
- image = _ref.image;
47
+ image = _ref.image,
48
+ setShowPoints = _ref.setShowPoints,
49
+ setResolveAction = _ref.setResolveAction;
40
50
 
41
51
  var translate = function translate(id) {
42
52
  return emitEvent({
@@ -70,23 +80,20 @@ var LoginPuzzleComponent = function LoginPuzzleComponent(_ref) {
70
80
  errorMessage = _useState10[0],
71
81
  setErrorMessage = _useState10[1];
72
82
 
73
- var _useState11 = (0, _react.useState)(false),
74
- _useState12 = _slicedToArray(_useState11, 2),
75
- failed = _useState12[0],
76
- setFailed = _useState12[1];
77
-
78
83
  var _soundActions = _slicedToArray(soundActions, 1),
79
84
  playSound = _soundActions[0];
80
85
 
86
+ var _useState11 = (0, _react.useState)([]),
87
+ _useState12 = _slicedToArray(_useState11, 2),
88
+ accRewards = _useState12[0],
89
+ setRewards = _useState12[1];
90
+
81
91
  var imgURL = ((_image$img = image.img) === null || _image$img === void 0 ? void 0 : _image$img.url) || imagenPorDefecto;
82
92
 
83
93
  var handleFinish = function handleFinish() {
84
94
  var rewards = info.solution.right.rewards;
85
- var wrongRewards = info.solution.wrong.rewards;
86
- emitEvent({
87
- type: 'addPoints',
88
- payload: failed ? wrongRewards : rewards
89
- });
95
+ var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(rewards));
96
+ setShowPoints(rewardsData);
90
97
  };
91
98
 
92
99
  var checkInput = function checkInput() {
@@ -112,13 +119,23 @@ var LoginPuzzleComponent = function LoginPuzzleComponent(_ref) {
112
119
  handleFinish();
113
120
  }, 2000);
114
121
  } else {
122
+ setRewards([].concat(_toConsumableArray(accRewards), _toConsumableArray(info.solution.wrong.rewards)));
115
123
  playSound('fail');
116
- setFailed(true);
117
124
  setSuccessClass('failed');
118
125
  setErrorMessage(true);
119
126
  }
120
127
  };
121
128
 
129
+ (0, _react.useEffect)(function () {
130
+ setResolveAction(function () {
131
+ var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(info.resolve.rewards));
132
+ emitEvent({
133
+ type: 'hidePuzzleButtons',
134
+ payload: false
135
+ });
136
+ setShowPoints(rewardsData);
137
+ });
138
+ }, [accRewards, info.resolve.rewards, emitEvent, setShowPoints, setResolveAction]);
122
139
  return /*#__PURE__*/_react.default.createElement("div", {
123
140
  className: "puzzle--layer",
124
141
  style: {
@@ -66,7 +66,9 @@ var TerminalPuzzleComponent = function TerminalPuzzleComponent(_ref) {
66
66
  solution = _ref.solution,
67
67
  info = _ref.info,
68
68
  disableExit = _ref.disableExit,
69
- soundActions = _ref.soundActions;
69
+ soundActions = _ref.soundActions,
70
+ setShowPoints = _ref.setShowPoints,
71
+ setResolveAction = _ref.setResolveAction;
70
72
 
71
73
  // todo: PREPROCESS BACKGROUND IMAGE IN ARCADE
72
74
  var _useState = (0, _react.useState)({}),
@@ -117,6 +119,31 @@ var TerminalPuzzleComponent = function TerminalPuzzleComponent(_ref) {
117
119
  selectFile(initFile);
118
120
  setBreadcrumb([initFile]);
119
121
  }, [initFile]);
122
+ (0, _react.useEffect)(function () {
123
+ setResolveAction(function () {
124
+ var rewards = info.resolve.rewards.map(function (reward) {
125
+ var name = reward.name,
126
+ points = reward.points,
127
+ type = reward.type;
128
+ var parsedReward = {
129
+ name: name,
130
+ points: points,
131
+ type: type
132
+ };
133
+
134
+ if (reward.document.resourceId) {
135
+ parsedReward.id = reward.document.resourceId;
136
+ }
137
+
138
+ return parsedReward;
139
+ });
140
+ emitEvent({
141
+ type: 'hidePuzzleButtons',
142
+ payload: false
143
+ });
144
+ setShowPoints(rewards);
145
+ });
146
+ }, [setResolveAction, info.resolve.rewards, emitEvent, setShowPoints]);
120
147
 
121
148
  var backFile = function backFile() {
122
149
  var breadcrumbLength = breadcrumb.length - 1;
@@ -140,11 +167,28 @@ var TerminalPuzzleComponent = function TerminalPuzzleComponent(_ref) {
140
167
  };
141
168
 
142
169
  var resolvePuzzle = function resolvePuzzle() {
143
- playSound('score');
170
+ var rewards = info.solution.right.rewards.map(function (reward) {
171
+ var name = reward.name,
172
+ points = reward.points,
173
+ type = reward.type;
174
+ var parsedReward = {
175
+ name: name,
176
+ points: points,
177
+ type: type
178
+ };
179
+
180
+ if (reward.document.resourceId) {
181
+ parsedReward.id = reward.document.resourceId;
182
+ }
183
+
184
+ return parsedReward;
185
+ });
144
186
  emitEvent({
145
- type: 'addPoints',
146
- payload: info.solution.right.rewards
187
+ type: 'hidePuzzleButtons',
188
+ payload: false
147
189
  });
190
+ playSound('score');
191
+ setShowPoints(rewards);
148
192
  };
149
193
 
150
194
  var backgroundURL = (backgroundImage === null || backgroundImage === void 0 ? void 0 : backgroundImage.url) || DEFAULT_IMG;
@@ -107,7 +107,7 @@ var Visor = function Visor(_ref) {
107
107
  shortText: true,
108
108
  success: fileId === solutionId,
109
109
  text: fileId === solutionId ? info.solution.right.desc : info.solution.wrong.desc,
110
- functionOnClose: backFile,
110
+ functionOnClose: fileId === solutionId ? resolvePuzzle : backFile,
111
111
  additionalStyle: ICONS[file.type],
112
112
  secondText: title,
113
113
  translate: translate,
@@ -55,7 +55,9 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
55
55
  soundActions = _ref.soundActions,
56
56
  description = _ref.description,
57
57
  info = _ref.info,
58
- setInfo = _ref.setInfo;
58
+ setInfo = _ref.setInfo,
59
+ setShowPoints = _ref.setShowPoints,
60
+ setResolveAction = _ref.setResolveAction;
59
61
 
60
62
  var _useState = (0, _react.useState)({
61
63
  result: null,
@@ -128,10 +130,7 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
128
130
 
129
131
  return acc;
130
132
  }, []);
131
- emitEvent({
132
- type: 'addPoints',
133
- payload: totalRewards
134
- });
133
+ setShowPoints(totalRewards);
135
134
  } else {
136
135
  parsedText.current = null;
137
136
  setCurrentSlide(currentSlide + 1);
@@ -141,7 +140,7 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
141
140
  }, 1200);
142
141
  }
143
142
  }
144
- }, [correctTextFragmentsAccumulated, currentSlide, list, numberAllCorrectFragments, emitEvent]);
143
+ }, [list, currentSlide, correctTextFragmentsAccumulated, numberAllCorrectFragments, setShowPoints]);
145
144
  var handleFeedbackFuncionOnClose = (0, _react.useCallback)(function () {
146
145
  emitEvent({
147
146
  type: 'hidePuzzleButtons',
@@ -165,12 +164,6 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
165
164
  allDataTextIds.forEach(function (el) {
166
165
  return el.classList.add('text-click__success');
167
166
  });
168
- setFeedbackData(function (prevState) {
169
- return _objectSpread(_objectSpread({}, prevState), {}, {
170
- result: 'success',
171
- timeout: true
172
- });
173
- });
174
167
  setCorrectTextFragmentsAccumulated(correctTextFragmentsAccumulated + 1);
175
168
  correctTextFragmentsPartial.current += 1;
176
169
  emitEvent({
@@ -180,13 +173,18 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
180
173
  playSound('score'); // si tiene feedback general definido
181
174
 
182
175
  if ((_list$currentSlide$in = list[currentSlide].info.solution.right) !== null && _list$currentSlide$in !== void 0 && _list$currentSlide$in.desc) {
183
- accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(list[currentSlide].info.solution.right.rewards));
184
- setFeedbackData(function (prevState) {
185
- return _objectSpread(_objectSpread({}, prevState), {}, {
186
- text: list[currentSlide].info.solution.right.desc,
187
- timeout: false
176
+ //solo muestra la caja verde y suma puntos cuando resuelves todos los fragmentos correctos
177
+ if (correctTextFragmentsPartial.current === list[currentSlide].correctTexts.length) {
178
+ accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(list[currentSlide].info.solution.right.rewards));
179
+ setFeedbackData(function (prevState) {
180
+ return _objectSpread(_objectSpread({}, prevState), {}, {
181
+ show: true,
182
+ result: 'success',
183
+ text: list[currentSlide].info.solution.right.desc,
184
+ timeout: false
185
+ });
188
186
  });
189
- });
187
+ }
190
188
  } // si no tiene feedback general y tiene specificFeedbacks definido
191
189
  else if (list[currentSlide].info.solution.right.desc === '' && specificFeedback !== null && specificFeedback !== void 0 && specificFeedback.desc) {
192
190
  var _specificFeedback$rew;
@@ -194,13 +192,41 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
194
192
  accRewards.current = !!(specificFeedback !== null && specificFeedback !== void 0 && (_specificFeedback$rew = specificFeedback.rewards) !== null && _specificFeedback$rew !== void 0 && _specificFeedback$rew.length) ? [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(specificFeedback === null || specificFeedback === void 0 ? void 0 : specificFeedback.rewards)) : _toConsumableArray(accRewards.current);
195
193
  setFeedbackData(function (prevState) {
196
194
  return _objectSpread(_objectSpread({}, prevState), {}, {
195
+ show: true,
197
196
  text: specificFeedback.desc,
198
197
  timeout: false
199
198
  });
200
199
  });
201
- } else {
202
- accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(list[currentSlide].info.solution.right.rewards));
203
- }
200
+ } // si no tiene feedback general ni specificFeedbacks,
201
+ // solo muestra la caja verde y suma puntos cuando resuelves todos los fragmentos correctos
202
+ else {
203
+ // si tiene puntos definidos por feedbacks correctos
204
+ if (list[currentSlide].specificFeedbacks.specificCorrectFeedbacks) {
205
+ accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(specificFeedback === null || specificFeedback === void 0 ? void 0 : specificFeedback.rewards));
206
+
207
+ if (correctTextFragmentsPartial.current === list[currentSlide].correctTexts.length) {
208
+ setFeedbackData(function (prevState) {
209
+ return _objectSpread(_objectSpread({}, prevState), {}, {
210
+ show: true,
211
+ result: 'success',
212
+ timeout: true
213
+ });
214
+ });
215
+ }
216
+ } // si tiene puntos generales
217
+ else {
218
+ if (correctTextFragmentsPartial.current === list[currentSlide].correctTexts.length) {
219
+ accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(list[currentSlide].info.solution.right.rewards));
220
+ setFeedbackData(function (prevState) {
221
+ return _objectSpread(_objectSpread({}, prevState), {}, {
222
+ show: true,
223
+ result: 'success',
224
+ timeout: true
225
+ });
226
+ });
227
+ }
228
+ }
229
+ }
204
230
  }, [correctTextFragmentsAccumulated, emitEvent, playSound, list, currentSlide]);
205
231
  var handleIncorrectClick = (0, _react.useCallback)(function (allDataTextIds, specificFeedback) {
206
232
  allDataTextIds.forEach(function (el) {
@@ -210,44 +236,55 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
210
236
  type: 'hidePuzzleButtons',
211
237
  payload: true
212
238
  });
213
- playSound('fail');
214
- setFeedbackData(function (prevState) {
215
- return _objectSpread(_objectSpread({}, prevState), {}, {
216
- result: null,
217
- timeout: true
218
- });
219
- }); // si tiene feedback general definido
239
+ playSound('fail'); // si tiene feedback general definido
220
240
 
221
241
  if (list[currentSlide].info.solution.wrong.desc !== '') {
222
242
  accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(list[currentSlide].info.solution.wrong.rewards));
223
243
  setFeedbackData(function (prevState) {
224
244
  return _objectSpread(_objectSpread({}, prevState), {}, {
245
+ show: true,
225
246
  text: list[currentSlide].info.solution.wrong.desc,
226
247
  timeout: false
227
248
  });
228
249
  });
229
- } // si no tiene feedback general y tiene specificFeedbacks definido
230
- else if (list[currentSlide].info.solution.wrong.desc === '' && specificFeedback.desc !== '') {
231
- accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(specificFeedback === null || specificFeedback === void 0 ? void 0 : specificFeedback.rewards)); // accRewards.current = [...accRewards.current, ...feedbackIncorrect.rewards];
250
+ } // si no tiene feedback general pero tiene specificFeedbacks definido
251
+ else if (list[currentSlide].info.solution.wrong.desc === '' && specificFeedback !== null && specificFeedback !== void 0 && specificFeedback.desc) {
252
+ var _specificFeedback$rew2;
232
253
 
254
+ accRewards.current = !!(specificFeedback !== null && specificFeedback !== void 0 && (_specificFeedback$rew2 = specificFeedback.rewards) !== null && _specificFeedback$rew2 !== void 0 && _specificFeedback$rew2.length) ? [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(specificFeedback === null || specificFeedback === void 0 ? void 0 : specificFeedback.rewards)) : _toConsumableArray(accRewards.current);
233
255
  setFeedbackData(function (prevState) {
234
256
  return _objectSpread(_objectSpread({}, prevState), {}, {
257
+ show: true,
235
258
  text: specificFeedback.desc,
236
259
  timeout: false
237
260
  });
238
261
  });
239
- } else {
240
- accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(list[currentSlide].info.solution.wrong.rewards));
241
- }
262
+ } // si no tiene feedback general ni specificFeedbacks definido
263
+ else {
264
+ // si tiene puntos definidos por feedbacks negativos
265
+ if (list[currentSlide].specificFeedbacks.specificWrongFeedbacks) {
266
+ accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(specificFeedback === null || specificFeedback === void 0 ? void 0 : specificFeedback.rewards));
267
+ setFeedbackData(function (prevState) {
268
+ return _objectSpread(_objectSpread({}, prevState), {}, {
269
+ show: true,
270
+ timeout: true
271
+ });
272
+ });
273
+ } // si tiene puntos generales definidos por feedbacks negativo
274
+ else {
275
+ accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(list[currentSlide].info.solution.wrong.rewards));
276
+ setFeedbackData(function (prevState) {
277
+ return _objectSpread(_objectSpread({}, prevState), {}, {
278
+ show: true,
279
+ timeout: true
280
+ });
281
+ });
282
+ }
283
+ }
242
284
  }, [emitEvent, playSound, list, currentSlide]);
243
285
  var onClickMark = (0, _react.useCallback)(function (e, id) {
244
286
  var _list$currentSlide, _list$currentSlide$sp, _list$currentSlide2, _list$currentSlide2$s;
245
287
 
246
- setFeedbackData(function (prevState) {
247
- return _objectSpread(_objectSpread({}, prevState), {}, {
248
- show: true
249
- });
250
- });
251
288
  e.stopPropagation();
252
289
  var allDataTextIds = document.querySelectorAll("[data-text-id=\"".concat(id, "\"]"));
253
290
  var feedbackCorrect = list[currentSlide].correctTexts.find(function (element) {
@@ -343,6 +380,22 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
343
380
  parsedText.current = '';
344
381
  }
345
382
  }, [currentSlide, description, getnumberAllCorrectFragments, list, recursiveStuff, setInfo]);
383
+ (0, _react.useEffect)(function () {
384
+ setResolveAction(function () {
385
+ emitEvent({
386
+ type: 'hidePuzzleButtons',
387
+ payload: true
388
+ });
389
+ var resolveRewards = list[currentSlide].info.resolve.rewards;
390
+ setTimeout(function () {
391
+ emitEvent({
392
+ type: 'hidePuzzleButtons',
393
+ payload: false
394
+ });
395
+ setShowPoints(resolveRewards);
396
+ }, 2000);
397
+ });
398
+ }, [setResolveAction, emitEvent, setShowPoints, list, currentSlide]);
346
399
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
347
400
  className: "text-click text-click--".concat(styles),
348
401
  style: feedbackData.show ? {
@@ -7,8 +7,6 @@ exports.default = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
10
  var _resourcePath = _interopRequireDefault(require("../../Templates/resourcePath"));
13
11
 
14
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -41,10 +39,5 @@ FacebookHeader.defaultProps = {
41
39
  usingTemplate: {},
42
40
  header: {}
43
41
  };
44
- FacebookHeader.propTypes = {
45
- showingReference: _propTypes.default.bool,
46
- usingTemplate: _propTypes.default.shape({}),
47
- header: _propTypes.default.shape({})
48
- };
49
42
  var _default = FacebookHeader;
50
43
  exports.default = _default;
@@ -77,7 +77,8 @@ var WebBuilderPuzzleComponent = function WebBuilderPuzzleComponent(_ref) {
77
77
  emitEvent = _ref.emitEvent,
78
78
  setResolveAction = _ref.setResolveAction,
79
79
  soundActions = _ref.soundActions,
80
- disableExit = _ref.disableExit;
80
+ disableExit = _ref.disableExit,
81
+ setShowPoints = _ref.setShowPoints;
81
82
 
82
83
  var _useState = (0, _react.useState)(false),
83
84
  _useState2 = _slicedToArray(_useState, 2),
@@ -161,7 +162,8 @@ var WebBuilderPuzzleComponent = function WebBuilderPuzzleComponent(_ref) {
161
162
  if (Component) {
162
163
  return /*#__PURE__*/_react.default.createElement(Component, _extends({}, popup.props, {
163
164
  closingAction: closePopup,
164
- translate: translate
165
+ translate: translate,
166
+ soundActions: soundActions
165
167
  }));
166
168
  }
167
169
 
@@ -173,10 +175,7 @@ var WebBuilderPuzzleComponent = function WebBuilderPuzzleComponent(_ref) {
173
175
  var rewards = info.solution.right.rewards;
174
176
  var wrongRewards = info.solution.wrong.rewards;
175
177
  playSound(failed ? 'fail' : 'score');
176
- emitEvent({
177
- type: 'addPoints',
178
- payload: failed ? rewards : wrongRewards
179
- });
178
+ setShowPoints(failed ? wrongRewards : rewards);
180
179
  }
181
180
  };
182
181
 
@@ -305,11 +304,21 @@ var WebBuilderPuzzleComponent = function WebBuilderPuzzleComponent(_ref) {
305
304
 
306
305
  (0, _react.useEffect)(function () {
307
306
  setResolveAction(function (resolve) {
307
+ console.info(resolve);
308
+ emitEvent({
309
+ type: 'hidePuzzleButtons',
310
+ payload: true
311
+ });
308
312
  setResolved(true);
309
313
  showCurrentFeed('success');
310
314
  showReference(false);
311
315
  setTimeout(function () {
312
- resolve();
316
+ showCurrentFeed('');
317
+ emitEvent({
318
+ type: 'hidePuzzleButtons',
319
+ payload: false
320
+ });
321
+ setShowPoints(info.resolve.rewards);
313
322
  }, 4000);
314
323
  });
315
324
  disableExit(true);
@@ -18,9 +18,7 @@ var LightSet = function LightSet() {
18
18
  distance: 0,
19
19
  decay: 1,
20
20
  castShadow: true,
21
- shadow: {
22
- bias: -0.002
23
- }
21
+ "shadow-bias": -0.002
24
22
  }), /*#__PURE__*/_react.default.createElement("pointLight", {
25
23
  position: [2.25, 16.57, -1.9],
26
24
  color: 4234239,
@@ -28,9 +26,7 @@ var LightSet = function LightSet() {
28
26
  power: 250,
29
27
  distance: 0,
30
28
  decay: 1,
31
- shadow: {
32
- bias: -0.002
33
- }
29
+ "shadow-bias": -0.002
34
30
  }), /*#__PURE__*/_react.default.createElement("hemisphereLight", {
35
31
  color: 7918828,
36
32
  groundColor: 7429837,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gamelearn/arcade-components",
3
3
  "license": "Gamelearn",
4
- "version": "0.20.9",
4
+ "version": "0.21.0",
5
5
  "main": "dist/index.js",
6
6
  "files": [
7
7
  "dist",
@@ -26,7 +26,7 @@
26
26
  "react-pdf": "5.2.0",
27
27
  "react-promise-suspense": "0.3.3",
28
28
  "react-typist": "^2.0.5",
29
- "three": "^0.130.1",
29
+ "three": "^0.131.0",
30
30
  "web-vitals": "0.2.4"
31
31
  },
32
32
  "scripts": {
@@ -55,7 +55,7 @@
55
55
  "@babel/cli": "7.12.10",
56
56
  "@babel/preset-env": "7.12.11",
57
57
  "@babel/preset-react": "7.12.10",
58
- "@gamelearn/ui-components-core": "5.40.0",
58
+ "@gamelearn/ui-components-core": "5.42.0",
59
59
  "@react-three/test-renderer": "6.0.6",
60
60
  "@storybook/addon-actions": "6.1.11",
61
61
  "@storybook/addon-essentials": "6.1.11",
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _react = _interopRequireWildcard(require("react"));
11
-
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
13
-
14
- var _utilsCore = require("@gamelearn/utils-core");
15
-
16
- var _uiComponentsCore = require("@gamelearn/ui-components-core");
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
21
-
22
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
-
24
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
-
26
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
27
-
28
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
29
-
30
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
31
-
32
- function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
33
-
34
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
-
36
- var Feedback = function Feedback(_ref) {
37
- var text = _ref.text,
38
- success = _ref.success;
39
-
40
- var _useHowler = (0, _uiComponentsCore.useHowler)(success ? 'correct_01' : 'incorrect_01'),
41
- _useHowler2 = _slicedToArray(_useHowler, 1),
42
- howler = _useHowler2[0];
43
-
44
- (0, _react.useEffect)(function () {
45
- if (text) {
46
- howler.play();
47
- }
48
- }, [howler, text]);
49
-
50
- if (!text) {
51
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
52
- }
53
-
54
- return /*#__PURE__*/_react.default.createElement("div", {
55
- className: "puzzle--image__result ".concat(success ? 'success' : 'failed')
56
- }, /*#__PURE__*/_react.default.createElement("span", {
57
- className: "title"
58
- }, /*#__PURE__*/_react.default.createElement(_utilsCore.FormatData, {
59
- id: text
60
- })));
61
- };
62
-
63
- Feedback.defaultProps = {
64
- text: '',
65
- success: false
66
- };
67
- Feedback.propTypes = {
68
- text: _propTypes.default.string,
69
- success: _propTypes.default.bool
70
- };
71
- var _default = Feedback;
72
- exports.default = _default;