@gamelearn/arcade-components 0.22.0 → 0.22.2

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.
@@ -86,22 +86,20 @@ var CurrentImageClickPuzzle = function CurrentImageClickPuzzle(_ref) {
86
86
  payload: [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(rewards))
87
87
  });
88
88
  }, [emitEvent, playSound]);
89
+ var currentImageProps = list[index];
90
+ var info = currentImageProps.info;
91
+ info.description = description;
89
92
  var handleResolve = (0, _react.useCallback)(function () {
90
93
  emitEvent({
91
94
  type: 'puzzleAction',
92
95
  action: 'resolve',
93
96
  payload: {
94
97
  element: puzzleId,
95
- rewards: accRewards.current
98
+ rewards: info.resolve.rewards
96
99
  }
97
100
  });
98
- }, [emitEvent, puzzleId]);
99
- var currentImageProps = list[index];
100
- var info = currentImageProps.info;
101
- info.description = description;
101
+ }, [emitEvent, puzzleId, info.resolve.rewards]);
102
102
  var onComplete = (0, _react.useCallback)(function (rw) {
103
- var _emit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
104
-
105
103
  if (index + 1 >= list.length) {
106
104
  handleFinish(rw);
107
105
  } else {
@@ -110,17 +108,12 @@ var CurrentImageClickPuzzle = function CurrentImageClickPuzzle(_ref) {
110
108
  }
111
109
 
112
110
  setSelected(selected + currentImageProps.areas.length);
113
-
114
- if (_emit) {
115
- handleResolve();
116
- }
117
- }, [index, list.length, selected, currentImageProps.areas.length, handleFinish, handleResolve, setSelected]);
111
+ }, [index, list.length, selected, currentImageProps.areas.length, handleFinish, setSelected]);
118
112
 
119
113
  var onResolve = function onResolve(resolve) {
120
114
  playSound('score');
121
- resolve(puzzleId);
122
115
  setTimeout(function () {
123
- onComplete(info.resolve.rewards || [], false);
116
+ handleResolve();
124
117
  }, 2000);
125
118
  };
126
119
 
@@ -25,6 +25,14 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
25
25
 
26
26
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
27
27
 
28
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
29
+
30
+ 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."); }
31
+
32
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
33
+
34
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
35
+
28
36
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
29
37
 
30
38
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -80,6 +88,8 @@ var DragItemPuzzleComponent = function DragItemPuzzleComponent(_ref) {
80
88
  _useState8 = _slicedToArray(_useState7, 1),
81
89
  currentImage = _useState8[0];
82
90
 
91
+ var accRewards = (0, _react.useRef)([]);
92
+
83
93
  var _soundActions = _slicedToArray(soundActions, 1),
84
94
  playSound = _soundActions[0];
85
95
 
@@ -149,13 +159,12 @@ var DragItemPuzzleComponent = function DragItemPuzzleComponent(_ref) {
149
159
  return object && resolveObject.uid === JSON.parse(object).uid;
150
160
  }, [resolveObject.uid]);
151
161
  var handleFinish = (0, _react.useCallback)(function () {
152
- var rewards = solution.right.rewards;
153
162
  setResolveClass('');
154
163
  emitEvent({
155
164
  type: 'hidePuzzleButtons',
156
165
  payload: false
157
166
  });
158
- setShowPoints(rewards);
167
+ setShowPoints(accRewards.current);
159
168
 
160
169
  if (consume) {
161
170
  emitEvent({
@@ -172,7 +181,7 @@ var DragItemPuzzleComponent = function DragItemPuzzleComponent(_ref) {
172
181
  type: 'closeUI',
173
182
  ui: 'inventory'
174
183
  });
175
- }, [consume, emitEvent, resolveObject.name, resolveObject.uid, setShowPoints, solution.right]);
184
+ }, [consume, emitEvent, resolveObject.name, resolveObject.uid, setShowPoints]);
176
185
  var handleClose = (0, _react.useCallback)(function () {
177
186
  playSound('score');
178
187
  setResolveClass('success');
@@ -180,10 +189,11 @@ var DragItemPuzzleComponent = function DragItemPuzzleComponent(_ref) {
180
189
  type: 'hidePuzzleButtons',
181
190
  payload: true
182
191
  });
192
+ accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(solution.right.rewards));
183
193
  setTimeout(function () {
184
194
  handleFinish();
185
195
  }, 2000);
186
- }, [emitEvent, handleFinish, playSound]);
196
+ }, [emitEvent, handleFinish, playSound, solution.right.rewards]);
187
197
  var handleFail = (0, _react.useCallback)(function () {
188
198
  emitEvent({
189
199
  type: 'closeUI',
@@ -195,7 +205,8 @@ var DragItemPuzzleComponent = function DragItemPuzzleComponent(_ref) {
195
205
  type: 'hidePuzzleButtons',
196
206
  payload: false
197
207
  });
198
- }, [emitEvent, playSound]);
208
+ accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(solution.wrong.rewards));
209
+ }, [emitEvent, playSound, solution.wrong.rewards]);
199
210
  var handleDrop = (0, _react.useCallback)(function (e) {
200
211
  e.dragEvent.stopPropagation();
201
212
  e.dragEvent.preventDefault();
@@ -19,23 +19,23 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
19
19
 
20
20
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
21
 
22
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
22
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
23
23
 
24
- 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."); }
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
25
25
 
26
- 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); }
26
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
27
 
28
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
28
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
29
29
 
30
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
30
+ 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."); }
31
31
 
32
- 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; }
32
+ 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); }
33
33
 
34
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
34
+ 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; }
35
35
 
36
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
36
+ 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; }
37
37
 
38
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
38
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
39
39
 
40
40
  var CurrentFramePuzzle = function CurrentFramePuzzle(_ref) {
41
41
  var list = _ref.list,
@@ -47,20 +47,23 @@ var CurrentFramePuzzle = function CurrentFramePuzzle(_ref) {
47
47
  accRewards = _ref.accRewards,
48
48
  setIndex = _ref.setIndex,
49
49
  setFramesCompleted = _ref.setFramesCompleted,
50
- handleResolve = _ref.handleResolve,
51
50
  loadPuzzleStatus = _ref.loadPuzzleStatus,
52
51
  soundActions = _ref.soundActions,
53
52
  setResolveAction = _ref.setResolveAction,
54
53
  disableExit = _ref.disableExit,
55
54
  description = _ref.description,
56
55
  translateFromParent = _ref.translateFromParent,
57
- onHidePuzzleButtons = _ref.onHidePuzzleButtons,
58
56
  setInfo = _ref.setInfo,
57
+ emitEvent = _ref.emitEvent,
59
58
  nodeId = _ref.nodeId;
59
+
60
+ var _soundActions = _slicedToArray(soundActions, 1),
61
+ playSound = _soundActions[0];
62
+
60
63
  var props = list[index];
61
64
  var info = props.info;
62
65
  info.description = description;
63
- var puzzleId = "frame-click-puzzle_".concat(index, "_").concat(nodeId);
66
+ var puzzleId = "frame-image-click-puzzle_".concat(index, "_").concat(nodeId);
64
67
  (0, _react.useEffect)(function () {
65
68
  puzzlesCompiledRef.current += 1;
66
69
  }, [puzzlesCompiledRef]);
@@ -70,39 +73,36 @@ var CurrentFramePuzzle = function CurrentFramePuzzle(_ref) {
70
73
  }));
71
74
  }, [setInfo, info, puzzleId]);
72
75
  var onComplete = (0, _react.useCallback)(function (rw) {
73
- var emit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
74
-
75
76
  var updatedCompleted = _objectSpread(_objectSpread({}, framesCompleted), {}, _defineProperty({}, index, true));
76
77
 
77
78
  if (Object.keys(updatedCompleted).length === list.length) {
78
79
  handleFinish(rw);
79
80
  } else {
80
- setRewards([].concat(_toConsumableArray(accRewards), _toConsumableArray(rw)));
81
+ setRewards(rw);
81
82
  setIndex(index + 1 > list.length - 1 ? 0 : index + 1);
82
83
  }
83
84
 
84
85
  setFramesCompleted(updatedCompleted);
85
-
86
- if (emit) {
87
- handleResolve();
88
- }
89
- }, [accRewards, framesCompleted, handleFinish, handleResolve, index, list.length, setFramesCompleted, setIndex, setRewards]);
90
-
91
- var onResolve = function onResolve(resolve) {
92
- resolve(puzzleId);
93
- setTimeout(function () {
94
- onComplete([], false);
95
- }, 2000);
96
- };
97
-
98
- var onError = function onError(rw) {
99
- return setRewards([].concat(_toConsumableArray(accRewards), _toConsumableArray(rw)));
100
- };
101
-
86
+ }, [framesCompleted, handleFinish, index, list.length, setFramesCompleted, setIndex, setRewards]);
87
+ var handleResolve = (0, _react.useCallback)(function () {
88
+ playSound('score');
89
+ emitEvent({
90
+ type: 'hidePuzzleButtons',
91
+ payload: false
92
+ });
93
+ emitEvent({
94
+ type: 'puzzleAction',
95
+ action: 'resolve',
96
+ payload: {
97
+ element: puzzleId,
98
+ rewards: info.resolve.rewards
99
+ }
100
+ });
101
+ }, [emitEvent, puzzleId, playSound, info.resolve.rewards]);
102
102
  (0, _react.useEffect)(function () {
103
103
  if (loadPuzzleStatus) {
104
104
  setTimeout(function () {
105
- onComplete([], false);
105
+ onComplete([]);
106
106
  }, 2000);
107
107
  }
108
108
  }, [loadPuzzleStatus, onComplete]);
@@ -115,8 +115,7 @@ var CurrentFramePuzzle = function CurrentFramePuzzle(_ref) {
115
115
  component: 'frame-click-puzzle'
116
116
  },
117
117
  emitFinish: onComplete,
118
- emitError: onError,
119
- emitResolve: onResolve,
118
+ emitResolve: handleResolve,
120
119
  hideContinue: true,
121
120
  disableInfo: puzzlesCompiledRef.current > 1,
122
121
  defaultCompleted: framesCompleted[index] || !!loadPuzzleStatus,
@@ -124,7 +123,7 @@ var CurrentFramePuzzle = function CurrentFramePuzzle(_ref) {
124
123
  setResolveAction: setResolveAction,
125
124
  disableExit: disableExit,
126
125
  translateFromParent: translateFromParent,
127
- emitEvent: onHidePuzzleButtons
126
+ emitEvent: emitEvent
128
127
  }));
129
128
  };
130
129
 
@@ -51,21 +51,17 @@ var FrameImageClickComponent = function FrameImageClickComponent(_ref) {
51
51
  disableExit = _ref.disableExit,
52
52
  setResolveAction = _ref.setResolveAction,
53
53
  setInfo = _ref.setInfo;
54
+ var accRewards = (0, _react.useRef)([]);
54
55
 
55
- var _useState = (0, _react.useState)([]),
56
+ var _useState = (0, _react.useState)(0),
56
57
  _useState2 = _slicedToArray(_useState, 2),
57
- accRewards = _useState2[0],
58
- setRewards = _useState2[1];
58
+ index = _useState2[0],
59
+ setIndex = _useState2[1];
59
60
 
60
- var _useState3 = (0, _react.useState)(0),
61
+ var _useState3 = (0, _react.useState)({}),
61
62
  _useState4 = _slicedToArray(_useState3, 2),
62
- index = _useState4[0],
63
- setIndex = _useState4[1];
64
-
65
- var _useState5 = (0, _react.useState)({}),
66
- _useState6 = _slicedToArray(_useState5, 2),
67
- framesCompleted = _useState6[0],
68
- setFramesCompleted = _useState6[1];
63
+ framesCompleted = _useState4[0],
64
+ setFramesCompleted = _useState4[1];
69
65
 
70
66
  var puzzlesCompiledRef = (0, _react.useRef)(0);
71
67
  var hideTooltipRef = (0, _react.useRef)(false);
@@ -76,6 +72,11 @@ var FrameImageClickComponent = function FrameImageClickComponent(_ref) {
76
72
  var totalCorrects = list.reduce(function (acc, current) {
77
73
  return acc + current.areas.length;
78
74
  }, 0);
75
+
76
+ var setRewards = function setRewards(rw) {
77
+ accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(rw));
78
+ };
79
+
79
80
  var puzzleId = "frame-image-click-puzzle_".concat(index, "_").concat(nodeId);
80
81
  var loadPuzzleStatus = (0, _react.useMemo)(function () {
81
82
  return emitEvent({
@@ -86,9 +87,9 @@ var FrameImageClickComponent = function FrameImageClickComponent(_ref) {
86
87
  var handleFinish = (0, _react.useCallback)(function (rewards) {
87
88
  emitEvent({
88
89
  type: 'addPoints',
89
- payload: [].concat(_toConsumableArray(accRewards), _toConsumableArray(rewards))
90
+ payload: [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(rewards))
90
91
  });
91
- }, [accRewards, emitEvent]);
92
+ }, [emitEvent]);
92
93
 
93
94
  var handlePlaying = function handlePlaying() {
94
95
  setIndex(index + 1);
@@ -108,22 +109,6 @@ var FrameImageClickComponent = function FrameImageClickComponent(_ref) {
108
109
  }
109
110
  };
110
111
 
111
- var handleResolve = (0, _react.useCallback)(function () {
112
- playSound('score');
113
- emitEvent({
114
- type: 'hidePuzzleButtons',
115
- payload: false
116
- });
117
- emitEvent({
118
- type: 'puzzleAction',
119
- action: 'resolve',
120
- payload: {
121
- element: puzzleId,
122
- rewards: accRewards.current
123
- }
124
- });
125
- }, [accRewards, emitEvent, puzzleId, playSound]);
126
-
127
112
  var translateFromParent = function translateFromParent(id) {
128
113
  return emitEvent({
129
114
  type: 'translate',
@@ -131,13 +116,6 @@ var FrameImageClickComponent = function FrameImageClickComponent(_ref) {
131
116
  });
132
117
  };
133
118
 
134
- var onHidePuzzleButtons = function onHidePuzzleButtons(e) {
135
- return emitEvent({
136
- type: 'hidePuzzleButtons',
137
- payload: e.payload
138
- });
139
- };
140
-
141
119
  var currentPuzzleProps = {
142
120
  list: list,
143
121
  description: description,
@@ -149,14 +127,13 @@ var FrameImageClickComponent = function FrameImageClickComponent(_ref) {
149
127
  accRewards: accRewards,
150
128
  setIndex: setIndex,
151
129
  setFramesCompleted: setFramesCompleted,
152
- handleResolve: handleResolve,
153
130
  loadPuzzleStatus: loadPuzzleStatus,
154
131
  soundActions: soundActions,
155
132
  setResolveAction: setResolveAction,
156
133
  disableExit: disableExit,
157
134
  translateFromParent: translateFromParent,
158
- onHidePuzzleButtons: onHidePuzzleButtons,
159
135
  setInfo: setInfo,
136
+ emitEvent: emitEvent,
160
137
  nodeId: nodeId
161
138
  };
162
139
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -80,12 +80,7 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
80
80
  var _useState9 = (0, _react.useState)(false),
81
81
  _useState10 = _slicedToArray(_useState9, 2),
82
82
  disableClick = _useState10[0],
83
- setDisableClick = _useState10[1];
84
-
85
- var _useState11 = (0, _react.useState)(false),
86
- _useState12 = _slicedToArray(_useState11, 2),
87
- mounted = _useState12[0],
88
- setMounted = _useState12[1]; // Common config
83
+ setDisableClick = _useState10[1]; // Common config
89
84
 
90
85
 
91
86
  var soundActions = props.soundActions,
@@ -100,7 +95,6 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
100
95
  hasHighlights = props.hasHighlights,
101
96
  hasImageReview = props.hasImageReview,
102
97
  defaultCompleted = props.defaultCompleted,
103
- hideContinue = props.hideContinue,
104
98
  className = props.className,
105
99
  emitFinish = props.emitFinish,
106
100
  emitResolve = props.emitResolve,
@@ -115,19 +109,14 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
115
109
  });
116
110
  };
117
111
 
118
- var _useState13 = (0, _react.useState)(''),
119
- _useState14 = _slicedToArray(_useState13, 2),
120
- resolvedClass = _useState14[0],
121
- setResolveClass = _useState14[1];
112
+ var _useState11 = (0, _react.useState)(''),
113
+ _useState12 = _slicedToArray(_useState11, 2),
114
+ resolvedClass = _useState12[0],
115
+ setResolveClass = _useState12[1];
122
116
 
123
117
  var _soundActions = _slicedToArray(soundActions, 1),
124
118
  playSound = _soundActions[0];
125
119
 
126
- var _useState15 = (0, _react.useState)([]),
127
- _useState16 = _slicedToArray(_useState15, 2),
128
- accRewards = _useState16[0],
129
- setAccRewards = _useState16[1];
130
-
131
120
  var solution = info.solution;
132
121
  var imageUrl = image.img.url || defaultImg;
133
122
  var areasList = areas.map(function (area, index) {
@@ -144,18 +133,17 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
144
133
  });
145
134
  var handleFinish = (0, _react.useCallback)(function () {
146
135
  var rewards = solution.right.rewards;
147
- var fullRewards = [].concat(_toConsumableArray(accRewards), _toConsumableArray(rewards));
148
136
  playSound('score');
149
137
 
150
138
  if (emitFinish) {
151
- emitFinish(fullRewards);
139
+ emitFinish(rewards);
152
140
  } else {
153
141
  emitEvent({
154
142
  type: 'addPoints',
155
- payload: fullRewards
143
+ payload: rewards
156
144
  });
157
145
  }
158
- }, [accRewards, emitEvent, emitFinish, solution.right, playSound]);
146
+ }, [emitEvent, emitFinish, solution.right, playSound]);
159
147
  (0, _react.useEffect)(function () {
160
148
  if (completed) {
161
149
  disableExit(true);
@@ -165,35 +153,13 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
165
153
  setCompleted(defaultCompleted);
166
154
  }, [defaultCompleted]);
167
155
  (0, _react.useEffect)(function () {
168
- var timeout;
169
-
170
- if (areas.length === clickedZones.length) {
156
+ if (areas.length === clickedZones.length && !completed) {
157
+ playSound('score');
171
158
  setCompleted(true);
172
159
  setDisableClick(true);
173
160
  setResolveClass('success');
174
-
175
- if (!mounted) {
176
- setMounted(true);
177
- emitEvent({
178
- type: 'hidePuzzleButtons',
179
- payload: true
180
- });
181
- }
182
-
183
- if (info.solution.right.desc === '') {
184
- timeout = setTimeout(function () {
185
- setResolveClass('');
186
- handleFinish();
187
- }, 2000);
188
- }
189
161
  }
190
-
191
- return function () {
192
- if (timeout) {
193
- clearTimeout(timeout);
194
- }
195
- };
196
- }, [clickedZones, areas.length, handleFinish, hideContinue, info.solution.right.desc, mounted, emitEvent]);
162
+ }, [clickedZones, areas.length, handleFinish, completed, info.solution.right.desc, playSound, emitEvent]);
197
163
  (0, _react.useEffect)(function () {
198
164
  //autoResolve
199
165
  setResolveAction(function (resolve) {
@@ -214,9 +180,7 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
214
180
 
215
181
  var handleClickOutSide = function handleClickOutSide() {
216
182
  if (!disableClick && !defaultCompleted) {
217
- var _solution$wrong = solution.wrong,
218
- wrongRewards = _solution$wrong.rewards,
219
- feedback = _solution$wrong.desc;
183
+ var wrongRewards = solution.wrong.rewards;
220
184
  emitEvent({
221
185
  type: 'hidePuzzleButtons',
222
186
  payload: true
@@ -229,35 +193,21 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
229
193
  setShowWrongFeedback(true);
230
194
  setResolveClass('wrong');
231
195
  playSound('fail');
232
-
233
- if (!feedback) {
234
- setTimeout(function () {
235
- setShowWrongFeedback(false);
236
- setResolveClass('');
237
- emitEvent({
238
- type: 'hidePuzzleButtons',
239
- payload: false
240
- });
241
- !emitFinish ? emitEvent({
242
- type: 'addPoints',
243
- payload: wrongRewards,
244
- finish: false
245
- }) : setAccRewards([].concat(_toConsumableArray(accRewards), _toConsumableArray(wrongRewards)));
246
- }, 2000);
247
- }
196
+ setTimeout(function () {
197
+ setShowWrongFeedback(false);
198
+ setResolveClass('');
199
+ emitEvent({
200
+ type: 'addPoints',
201
+ payload: wrongRewards,
202
+ finish: false
203
+ });
204
+ }, 2000);
248
205
  }
249
206
  };
250
207
 
251
208
  var handleOnClose = function handleOnClose() {
252
- if (completed && !finished && resolvedClass === 'success') {
253
- handleFinish();
254
- }
255
-
209
+ handleFinish();
256
210
  playSound('click-ui');
257
- emitEvent({
258
- type: 'hidePuzzleButtons',
259
- payload: false
260
- });
261
211
  setResolveClass('');
262
212
  setShowWrongFeedback(false);
263
213
  };
@@ -272,9 +222,9 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
272
222
  if (hasClickOrder && area.index === clickedZones.length || !hasClickOrder) {
273
223
  setClickedZones(updatedClickedZones);
274
224
  } else {
275
- var _solution$wrong2 = solution.wrong,
276
- wrongRewards = _solution$wrong2.rewards,
277
- feedback = _solution$wrong2.desc;
225
+ var _solution$wrong = solution.wrong,
226
+ wrongRewards = _solution$wrong.rewards,
227
+ feedback = _solution$wrong.desc;
278
228
  setClickedZones([]);
279
229
  updatedClickedZones = [];
280
230
 
@@ -294,11 +244,13 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
294
244
 
295
245
  return /*#__PURE__*/_react.default.createElement("div", {
296
246
  className: className
297
- }, resolvedClass !== "" ? /*#__PURE__*/_react.default.createElement(_FeedbackComponent.default, {
247
+ }, resolvedClass ? /*#__PURE__*/_react.default.createElement(_FeedbackComponent.default, {
298
248
  playSound: playSound,
299
249
  text: info.solution[resolvedClass === 'success' ? 'right' : 'wrong'].desc,
300
250
  success: resolvedClass === 'success',
301
251
  translate: translate,
252
+ hasTimeout: !info.solution.right.desc,
253
+ delay: 2000,
302
254
  functionOnClose: handleOnClose
303
255
  }) : null, /*#__PURE__*/_react.default.createElement(_KonvaMapper.default, {
304
256
  completed: completed,
@@ -110,17 +110,13 @@ var KeyboardPuzzleComponent = function KeyboardPuzzleComponent(_ref) {
110
110
  }, [emitEvent, setShowPoints]);
111
111
 
112
112
  var handleFeedbackFuncionOnClose = function handleFeedbackFuncionOnClose() {
113
- console.info('asdfsfd', feedbackResult);
114
-
115
113
  if (feedbackResult) {
116
- console.info('poraqui2');
117
114
  setFinished(true);
118
115
  var rewards = info.solution.right.rewards;
119
116
  var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(rewards));
120
117
  playSound('score');
121
118
  closeFeedbackAndShowPoints(rewardsData);
122
119
  } else {
123
- console.info('poraqui3');
124
120
  emitEvent({
125
121
  type: 'hidePuzzleButtons',
126
122
  payload: false
@@ -129,6 +125,8 @@ var KeyboardPuzzleComponent = function KeyboardPuzzleComponent(_ref) {
129
125
  disableExit(false);
130
126
  setFeedbackIsShown(false);
131
127
  }
128
+
129
+ setFeedBackText('');
132
130
  };
133
131
 
134
132
  var checkPass = function checkPass(current) {
@@ -139,7 +137,7 @@ var KeyboardPuzzleComponent = function KeyboardPuzzleComponent(_ref) {
139
137
  setFeedbackResult(true);
140
138
  setFeedbackIsShown(true);
141
139
 
142
- if (info.solution.right.desc === '') {
140
+ if (!info.solution.right.desc) {
143
141
  setTimeout(function () {
144
142
  var rewards = info.solution.right.rewards;
145
143
  var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(rewards));
@@ -162,7 +160,7 @@ var KeyboardPuzzleComponent = function KeyboardPuzzleComponent(_ref) {
162
160
  setInputPassword('');
163
161
  setFeedbackIsShown(true);
164
162
 
165
- if (info.solution.wrong.desc !== '') {
163
+ if (info.solution.wrong.desc) {
166
164
  setFeedBackText(info.solution.wrong.desc);
167
165
  } else {
168
166
  setTimeout(function () {
@@ -85,6 +85,8 @@ var TerminalPuzzleComponent = function TerminalPuzzleComponent(_ref) {
85
85
  breadcrumb = _useState6[0],
86
86
  setBreadcrumb = _useState6[1];
87
87
 
88
+ var accRewards = (0, _react.useRef)([]);
89
+
88
90
  var _soundActions = _slicedToArray(soundActions, 1),
89
91
  playSound = _soundActions[0];
90
92
 
@@ -121,7 +123,8 @@ var TerminalPuzzleComponent = function TerminalPuzzleComponent(_ref) {
121
123
  }, [initFile]);
122
124
  (0, _react.useEffect)(function () {
123
125
  setResolveAction(function () {
124
- var rewards = info.resolve.rewards.map(function (reward) {
126
+ accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(info.resolve.rewards));
127
+ var rewards = accRewards.current.map(function (reward) {
125
128
  var name = reward.name,
126
129
  points = reward.points,
127
130
  type = reward.type;
@@ -146,6 +149,7 @@ var TerminalPuzzleComponent = function TerminalPuzzleComponent(_ref) {
146
149
  }, [setResolveAction, info.resolve.rewards, emitEvent, setShowPoints]);
147
150
 
148
151
  var backFile = function backFile() {
152
+ accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(info.solution.wrong.rewards));
149
153
  var breadcrumbLength = breadcrumb.length - 1;
150
154
  var newBreadcrumb = breadcrumb.filter(function (_, i) {
151
155
  return breadcrumbLength > i;
@@ -167,7 +171,8 @@ var TerminalPuzzleComponent = function TerminalPuzzleComponent(_ref) {
167
171
  };
168
172
 
169
173
  var resolvePuzzle = function resolvePuzzle() {
170
- var rewards = info.solution.right.rewards.map(function (reward) {
174
+ accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(info.solution.right.rewards));
175
+ var rewards = accRewards.current.map(function (reward) {
171
176
  var name = reward.name,
172
177
  points = reward.points,
173
178
  type = reward.type;
@@ -60,6 +60,7 @@ var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
60
60
  skip = _ref.skip,
61
61
  type = _ref.type,
62
62
  documentTitle = _ref.documentTitle,
63
+ documentTitle_labelId = _ref.documentTitle_labelId,
63
64
  texts = _ref.texts,
64
65
  soundActions = _ref.soundActions;
65
66
 
@@ -163,20 +164,20 @@ var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
163
164
  var currentDecision = decisionsList.filter(function (obj) {
164
165
  return obj.currenTextParagraph === indexOfText;
165
166
  });
166
- return currentDecision[0].fullText;
167
+ return currentDecision[0].fullText_labelId;
167
168
  };
168
169
 
169
170
  var createLecture = function createLecture() {
170
171
  return texts.map(function (element, indexOfText) {
171
172
  if (element.type === 'fixed') {
172
- if (element.fullText) {
173
- return element.fullText;
174
- }
173
+ var _element$fullText_lab;
174
+
175
+ return (_element$fullText_lab = element.fullText_labelId) !== null && _element$fullText_lab !== void 0 ? _element$fullText_lab : element.fullText;
175
176
  } else if (element.type === 'election') {
176
- var correctElection = getCorrectElection(element);
177
+ var correctElection = getCorrectElection(element); // 0,1,2 or undefined
177
178
 
178
- if (correctElection) {
179
- return element.electionTexts[correctElection].fullText;
179
+ if (correctElection >= 0) {
180
+ return element.electionTexts[correctElection].fullText_labelId;
180
181
  } // If there is no correct Election then it should pick the election of student
181
182
 
182
183
 
@@ -237,11 +238,12 @@ var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
237
238
  var handleLectures = function handleLectures() {
238
239
  var text = createLecture();
239
240
  emitEvent({
240
- type: 'finishLecture',
241
+ type: 'finishMedia',
241
242
  payload: {
242
- name: documentTitle,
243
+ name: documentTitle_labelId,
243
244
  text: text,
244
- documentType: type
245
+ documentType: type,
246
+ type: 'text'
245
247
  }
246
248
  });
247
249
  };
@@ -291,18 +293,16 @@ var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
291
293
  };
292
294
 
293
295
  var handleFinish = function handleFinish() {
294
- if (checkAllDecisionsRightWrong()) {
295
- // if all Decisions are right or wrong we just skip to end
296
- setReviewDone(true);
297
- setFeedbackScreenDone(true);
298
- endGame();
299
- }
300
-
301
296
  if (!checkIfFeedbackNeeded()) {
302
297
  // THis case is for when we do not have any Decision
303
298
  setReviewDone(true);
304
299
  setFeedbackScreen(true);
305
300
  endGame();
301
+ } else if (checkAllDecisionsRightWrong()) {
302
+ // if all Decisions are right or wrong we just skip to end
303
+ setReviewDone(true);
304
+ setFeedbackScreenDone(true);
305
+ endGame();
306
306
  }
307
307
 
308
308
  if (!reviewDone) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gamelearn/arcade-components",
3
3
  "license": "Gamelearn",
4
- "version": "0.22.0",
4
+ "version": "0.22.2",
5
5
  "main": "dist/index.js",
6
6
  "files": [
7
7
  "dist",