@gamelearn/arcade-components 2.5.2 → 2.5.5
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.
- package/dist/components/chained-image-click-puzzle-component/components/ChainedImageClickPuzzleComponent.js +23 -1
- package/dist/components/chained-image-click-puzzle-component/components/CurrentImagePuzzle.js +32 -29
- package/dist/components/comic-component/components/ComicComponent.js +2 -2
- package/dist/components/image-click-wrapper-component/components/ImageClickWrapperComponent.js +40 -27
- package/package.json +1 -1
|
@@ -45,6 +45,23 @@ var ChainedImageClickPuzzleComponent = function ChainedImageClickPuzzleComponent
|
|
|
45
45
|
selected = _useState2[0],
|
|
46
46
|
setSelected = _useState2[1];
|
|
47
47
|
|
|
48
|
+
var _useState3 = (0, _react.useState)(0),
|
|
49
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
50
|
+
index = _useState4[0],
|
|
51
|
+
setIndex = _useState4[1];
|
|
52
|
+
|
|
53
|
+
var _useState5 = (0, _react.useState)({}),
|
|
54
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
55
|
+
slidesCompleted = _useState6[0],
|
|
56
|
+
setSlidesCompleted = _useState6[1];
|
|
57
|
+
|
|
58
|
+
var puzzleId = "chained-image-click-puzzle_".concat(index, "_").concat(nodeId);
|
|
59
|
+
var loadPuzzleStatus = (0, _react.useMemo)(function () {
|
|
60
|
+
return emitEvent({
|
|
61
|
+
type: 'loadObjectStatus',
|
|
62
|
+
payload: puzzleId
|
|
63
|
+
});
|
|
64
|
+
}, [emitEvent, puzzleId]);
|
|
48
65
|
var currentPuzzleProps = {
|
|
49
66
|
list: list,
|
|
50
67
|
description: description,
|
|
@@ -55,7 +72,12 @@ var ChainedImageClickPuzzleComponent = function ChainedImageClickPuzzleComponent
|
|
|
55
72
|
soundActions: soundActions,
|
|
56
73
|
setInfo: setInfo,
|
|
57
74
|
setSelected: setSelected,
|
|
58
|
-
selected: selected
|
|
75
|
+
selected: selected,
|
|
76
|
+
index: index,
|
|
77
|
+
setIndex: setIndex,
|
|
78
|
+
slidesCompleted: slidesCompleted,
|
|
79
|
+
setSlidesCompleted: setSlidesCompleted,
|
|
80
|
+
loadPuzzleStatus: loadPuzzleStatus
|
|
59
81
|
};
|
|
60
82
|
var totalCorrects = list.reduce(function (acc, current) {
|
|
61
83
|
return acc + current.areas.length;
|
package/dist/components/chained-image-click-puzzle-component/components/CurrentImagePuzzle.js
CHANGED
|
@@ -46,8 +46,6 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
46
46
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
47
47
|
|
|
48
48
|
var CurrentImageClickPuzzle = function CurrentImageClickPuzzle(_ref) {
|
|
49
|
-
var _specificFeedbacks$co2;
|
|
50
|
-
|
|
51
49
|
var list = _ref.list,
|
|
52
50
|
description = _ref.description,
|
|
53
51
|
nodeId = _ref.nodeId,
|
|
@@ -58,29 +56,20 @@ var CurrentImageClickPuzzle = function CurrentImageClickPuzzle(_ref) {
|
|
|
58
56
|
soundActions = _ref.soundActions,
|
|
59
57
|
setSelected = _ref.setSelected,
|
|
60
58
|
selected = _ref.selected,
|
|
61
|
-
pause = _ref.pause
|
|
59
|
+
pause = _ref.pause,
|
|
60
|
+
loadPuzzleStatus = _ref.loadPuzzleStatus,
|
|
61
|
+
index = _ref.index,
|
|
62
|
+
setIndex = _ref.setIndex,
|
|
63
|
+
slidesCompleted = _ref.slidesCompleted,
|
|
64
|
+
setSlidesCompleted = _ref.setSlidesCompleted;
|
|
62
65
|
var accRewards = (0, _react.useRef)([]);
|
|
63
66
|
var correctClicked = (0, _react.useRef)(0);
|
|
64
67
|
var currentSelected = (0, _react.useRef)(0);
|
|
65
|
-
|
|
66
|
-
var _useState = (0, _react.useState)(0),
|
|
67
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
68
|
-
index = _useState2[0],
|
|
69
|
-
setIndex = _useState2[1];
|
|
70
|
-
|
|
71
|
-
var resolvedItems = (0, _react.useRef)({});
|
|
72
68
|
var puzzleId = "chained-image-click-puzzle_".concat(index, "_").concat(nodeId);
|
|
73
69
|
|
|
74
70
|
var _soundActions = _slicedToArray(soundActions, 1),
|
|
75
71
|
playSound = _soundActions[0];
|
|
76
72
|
|
|
77
|
-
var currentPuzzleStatus = (0, _react.useMemo)(function () {
|
|
78
|
-
return emitEvent({
|
|
79
|
-
type: 'loadObjectStatus',
|
|
80
|
-
payload: puzzleId
|
|
81
|
-
});
|
|
82
|
-
}, [emitEvent, puzzleId]);
|
|
83
|
-
|
|
84
73
|
var setRewards = function setRewards(rewards) {
|
|
85
74
|
accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(rewards));
|
|
86
75
|
};
|
|
@@ -113,6 +102,8 @@ var CurrentImageClickPuzzle = function CurrentImageClickPuzzle(_ref) {
|
|
|
113
102
|
var correct = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
114
103
|
var finish = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
115
104
|
|
|
105
|
+
var updatedCompleted = _objectSpread({}, slidesCompleted);
|
|
106
|
+
|
|
116
107
|
if (correct) {
|
|
117
108
|
var _specificFeedbacks$co;
|
|
118
109
|
|
|
@@ -135,6 +126,9 @@ var CurrentImageClickPuzzle = function CurrentImageClickPuzzle(_ref) {
|
|
|
135
126
|
} else {
|
|
136
127
|
setIndex(index + 1);
|
|
137
128
|
}
|
|
129
|
+
|
|
130
|
+
updatedCompleted = _objectSpread(_objectSpread({}, updatedCompleted), {}, _defineProperty({}, index, true));
|
|
131
|
+
setSlidesCompleted(updatedCompleted);
|
|
138
132
|
}
|
|
139
133
|
|
|
140
134
|
setRewards(rw);
|
|
@@ -144,18 +138,25 @@ var CurrentImageClickPuzzle = function CurrentImageClickPuzzle(_ref) {
|
|
|
144
138
|
payload: rw,
|
|
145
139
|
finish: false
|
|
146
140
|
});
|
|
141
|
+
emitEvent({
|
|
142
|
+
type: 'failPuzzle'
|
|
143
|
+
});
|
|
147
144
|
|
|
148
145
|
if (currentImageProps.hasClickOrder) {
|
|
149
146
|
setSelected(selected - correctClicked.current);
|
|
150
|
-
|
|
147
|
+
|
|
148
|
+
if (correctClicked.current === 0 && Object.entries(slidesCompleted).length === 0) {
|
|
149
|
+
setSelected(0);
|
|
150
|
+
} else {
|
|
151
|
+
correctClicked.current = 0;
|
|
152
|
+
}
|
|
151
153
|
}
|
|
152
154
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
});
|
|
155
|
+
if (Object.entries(slidesCompleted).length === 0 && currentImageProps.hasClickOrder && !selected) {
|
|
156
|
+
setSelected(0);
|
|
157
|
+
}
|
|
157
158
|
}
|
|
158
|
-
}, [
|
|
159
|
+
}, [slidesCompleted, specificFeedbacks, currentImageProps.hasClickOnce, currentImageProps.areas.length, currentImageProps.hasClickOrder, selected, setSelected, index, list.length, setSlidesCompleted, handleFinish, setIndex, emitEvent]);
|
|
159
160
|
|
|
160
161
|
var onResolve = function onResolve() {
|
|
161
162
|
playSound('score');
|
|
@@ -176,16 +177,18 @@ var CurrentImageClickPuzzle = function CurrentImageClickPuzzle(_ref) {
|
|
|
176
177
|
}));
|
|
177
178
|
}, [info, puzzleId, setInfo]);
|
|
178
179
|
(0, _react.useEffect)(function () {
|
|
179
|
-
if (
|
|
180
|
+
if (loadPuzzleStatus) {
|
|
180
181
|
onComplete([], true, true);
|
|
181
|
-
resolvedItems.current[puzzleId] = true;
|
|
182
182
|
}
|
|
183
|
-
}, [
|
|
184
|
-
|
|
183
|
+
}, [slidesCompleted, loadPuzzleStatus, onComplete]);
|
|
184
|
+
|
|
185
|
+
var checkSelectedAreas = function checkSelectedAreas() {
|
|
185
186
|
var areasSelected = currentImageProps.hasClickOnce ? currentImageProps.areas.length : 1;
|
|
186
187
|
currentSelected.current += areasSelected;
|
|
188
|
+
console.info('checkSelectedAreas', currentSelected.current);
|
|
187
189
|
setSelected(selected + areasSelected);
|
|
188
|
-
}
|
|
190
|
+
};
|
|
191
|
+
|
|
189
192
|
return /*#__PURE__*/_react.default.createElement(_imageClickWrapperComponent.default, _extends({
|
|
190
193
|
key: index
|
|
191
194
|
}, currentImageProps, {
|
|
@@ -198,7 +201,7 @@ var CurrentImageClickPuzzle = function CurrentImageClickPuzzle(_ref) {
|
|
|
198
201
|
emitError: setRewards,
|
|
199
202
|
emitResolve: onResolve,
|
|
200
203
|
isLast: index + 1 === list.length,
|
|
201
|
-
defaultCompleted:
|
|
204
|
+
defaultCompleted: slidesCompleted[index] || !!loadPuzzleStatus,
|
|
202
205
|
hideContinue: !(index + 1 === list.length),
|
|
203
206
|
handleClick: checkSelectedAreas,
|
|
204
207
|
emitEvent: emitEvent,
|
|
@@ -90,12 +90,12 @@ var ComicComponent = function ComicComponent(_ref) {
|
|
|
90
90
|
setStarted(false);
|
|
91
91
|
setAudioFailed(false);
|
|
92
92
|
|
|
93
|
-
if (slideCount + 1 < slides.length) {
|
|
93
|
+
if (slideCount + 1 < slides.length && !pause) {
|
|
94
94
|
setTransition('slide-animation');
|
|
95
95
|
setCount(slideCount + 1);
|
|
96
96
|
setStarted(true);
|
|
97
97
|
}
|
|
98
|
-
}, [slideCount, slides
|
|
98
|
+
}, [pause, slideCount, slides.length]);
|
|
99
99
|
var goToPreviousSlide = (0, _react.useCallback)(function () {
|
|
100
100
|
setStarted(false);
|
|
101
101
|
setAudioFailed(false);
|
package/dist/components/image-click-wrapper-component/components/ImageClickWrapperComponent.js
CHANGED
|
@@ -169,20 +169,19 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
|
|
|
169
169
|
}, area);
|
|
170
170
|
});
|
|
171
171
|
var startCountDown = (0, _react.useCallback)(function () {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
startCountDown();
|
|
172
|
+
if (!dialogForTimer) {
|
|
173
|
+
var timeout = setInterval(function () {
|
|
174
|
+
setCountDownTime(function (t) {
|
|
175
|
+
if (t > 1) {
|
|
176
|
+
return t - 1;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
return 0;
|
|
180
|
+
});
|
|
181
|
+
}, 1000);
|
|
182
|
+
intervalForCountDown.current = timeout;
|
|
184
183
|
}
|
|
185
|
-
}, [
|
|
184
|
+
}, [dialogForTimer]);
|
|
186
185
|
var handleFinish = (0, _react.useCallback)(function (rewards, success) {
|
|
187
186
|
if (emitFinish) {
|
|
188
187
|
emitFinish(rewards, success);
|
|
@@ -212,28 +211,31 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
|
|
|
212
211
|
remainingTime.current = finalDate.current - pauseDate.current;
|
|
213
212
|
clearListenerForActualDate();
|
|
214
213
|
}, [clearListenerForActualDate]);
|
|
214
|
+
var feedbackError = (0, _react.useCallback)(function () {
|
|
215
|
+
setFeedbackData(function () {
|
|
216
|
+
var _info$timerFeedback, _info$timerFeedback2;
|
|
217
|
+
|
|
218
|
+
return {
|
|
219
|
+
show: true,
|
|
220
|
+
success: false,
|
|
221
|
+
text: info !== null && info !== void 0 && (_info$timerFeedback = info.timerFeedback) !== null && _info$timerFeedback !== void 0 && _info$timerFeedback.desc ? info.timerFeedback.desc : '',
|
|
222
|
+
rewards: info === null || info === void 0 ? void 0 : (_info$timerFeedback2 = info.timerFeedback) === null || _info$timerFeedback2 === void 0 ? void 0 : _info$timerFeedback2.rewards
|
|
223
|
+
};
|
|
224
|
+
});
|
|
225
|
+
setTimeExpired(true);
|
|
226
|
+
clearIntervalForCountDown();
|
|
227
|
+
clearListenerForActualDate();
|
|
228
|
+
}, [clearIntervalForCountDown, clearListenerForActualDate, (_info$timerFeedback3 = info.timerFeedback) === null || _info$timerFeedback3 === void 0 ? void 0 : _info$timerFeedback3.desc, (_info$timerFeedback4 = info.timerFeedback) === null || _info$timerFeedback4 === void 0 ? void 0 : _info$timerFeedback4.rewards]);
|
|
215
229
|
var listenerForActualDate = (0, _react.useCallback)(function () {
|
|
216
230
|
clearInterval(intervalForActualDate.current);
|
|
217
231
|
intervalForActualDate.current = setInterval(function () {
|
|
218
232
|
actualDate.current = Date.now(); // show timerFeedback when finish the time
|
|
219
233
|
|
|
220
234
|
if (actualDate.current > finalDate.current) {
|
|
221
|
-
|
|
222
|
-
var _info$timerFeedback, _info$timerFeedback2;
|
|
223
|
-
|
|
224
|
-
return {
|
|
225
|
-
show: true,
|
|
226
|
-
success: false,
|
|
227
|
-
text: info !== null && info !== void 0 && (_info$timerFeedback = info.timerFeedback) !== null && _info$timerFeedback !== void 0 && _info$timerFeedback.desc ? info.timerFeedback.desc : '',
|
|
228
|
-
rewards: info === null || info === void 0 ? void 0 : (_info$timerFeedback2 = info.timerFeedback) === null || _info$timerFeedback2 === void 0 ? void 0 : _info$timerFeedback2.rewards
|
|
229
|
-
};
|
|
230
|
-
});
|
|
231
|
-
setTimeExpired(true);
|
|
232
|
-
clearIntervalForCountDown();
|
|
233
|
-
clearListenerForActualDate();
|
|
235
|
+
feedbackError();
|
|
234
236
|
}
|
|
235
237
|
}, 250);
|
|
236
|
-
}, [
|
|
238
|
+
}, [feedbackError]);
|
|
237
239
|
(0, _react.useEffect)(function () {
|
|
238
240
|
if ((areas.length === clickedZones.length || hasClickOnce && clickedZones.length > 0) && !completed) {
|
|
239
241
|
var _specificFeedbacks$co;
|
|
@@ -457,6 +459,17 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
|
|
|
457
459
|
}
|
|
458
460
|
}
|
|
459
461
|
}, [createStartAndEndDate, defaultCompleted, firstTryForFrame, puzzlesAutoCompleted, slideNumber, timer]);
|
|
462
|
+
(0, _react.useEffect)(function () {
|
|
463
|
+
if (timer && countDownTime === 0) feedbackError();
|
|
464
|
+
}, [countDownTime, feedbackError, timer]);
|
|
465
|
+
(0, _react.useEffect)(function () {
|
|
466
|
+
if (pause) {
|
|
467
|
+
clearIntervalForCountDown();
|
|
468
|
+
pauseTheCounter();
|
|
469
|
+
} else {
|
|
470
|
+
startCountDown();
|
|
471
|
+
}
|
|
472
|
+
}, [clearIntervalForCountDown, listenerForActualDate, pause, pauseTheCounter, startCountDown]);
|
|
460
473
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
461
474
|
className: className
|
|
462
475
|
}, feedbackData.show ? /*#__PURE__*/_react.default.createElement(_FeedbackComponent.default, {
|