@gamelearn/arcade-components 1.11.6 → 1.11.8

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.
@@ -60,7 +60,8 @@ var CurrentFramePuzzle = function CurrentFramePuzzle(_ref) {
60
60
  emitResetPuzzle = _ref.emitResetPuzzle,
61
61
  firstTryForFrame = _ref.firstTryForFrame,
62
62
  setPuzzlesAutoCompleted = _ref.setPuzzlesAutoCompleted,
63
- puzzlesAutoCompleted = _ref.puzzlesAutoCompleted;
63
+ puzzlesAutoCompleted = _ref.puzzlesAutoCompleted,
64
+ emitOpenPopupCounterInfo = _ref.emitOpenPopupCounterInfo;
64
65
 
65
66
  var _soundActions = _slicedToArray(soundActions, 1),
66
67
  playSound = _soundActions[0];
@@ -173,7 +174,8 @@ var CurrentFramePuzzle = function CurrentFramePuzzle(_ref) {
173
174
  slideNumber: index,
174
175
  emitResetPuzzle: handleResetPuzzle,
175
176
  firstTryForFrame: firstTryForFrame,
176
- puzzlesAutoCompleted: puzzlesAutoCompleted
177
+ puzzlesAutoCompleted: puzzlesAutoCompleted,
178
+ emitOpenPopupCounterInfo: emitOpenPopupCounterInfo
177
179
  }));
178
180
  };
179
181
 
@@ -124,7 +124,13 @@ var FrameImageClickComponent = function FrameImageClickComponent(_ref) {
124
124
  };
125
125
 
126
126
  var onClickCounter = function onClickCounter() {
127
- setHideTooltipRef(false);
127
+ setHideTooltipRef(true);
128
+ };
129
+
130
+ var onInitPuzzle = function onInitPuzzle() {
131
+ if (index === 0) {
132
+ setHideTooltipRef(false);
133
+ }
128
134
  };
129
135
 
130
136
  var currentPuzzleProps = {
@@ -151,7 +157,8 @@ var FrameImageClickComponent = function FrameImageClickComponent(_ref) {
151
157
  nodeId: nodeId,
152
158
  emitResetPuzzle: resetPuzzle,
153
159
  setPuzzlesAutoCompleted: setPuzzlesAutoCompleted,
154
- puzzlesAutoCompleted: puzzlesAutoCompleted
160
+ puzzlesAutoCompleted: puzzlesAutoCompleted,
161
+ emitOpenPopupCounterInfo: onInitPuzzle
155
162
  };
156
163
  return /*#__PURE__*/_react.default.createElement("div", {
157
164
  className: "puzzle-frame"
@@ -172,7 +179,7 @@ var FrameImageClickComponent = function FrameImageClickComponent(_ref) {
172
179
  }, /*#__PURE__*/_react.default.createElement(_Counter.default, {
173
180
  current: selected,
174
181
  total: totalCorrects,
175
- tooltip: hideTooltip,
182
+ tooltip: !hideTooltip,
176
183
  emitEvent: emitEvent
177
184
  })) : null));
178
185
  };
@@ -59,6 +59,8 @@ var ImageReview = function ImageReview() {
59
59
  };
60
60
 
61
61
  var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
62
+ var _info$timerFeedback3, _info$timerFeedback4;
63
+
62
64
  // Common config
63
65
  var soundActions = props.soundActions,
64
66
  emitEvent = props.emitEvent,
@@ -82,7 +84,8 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
82
84
  slideNumber = props.slideNumber,
83
85
  emitResetPuzzle = props.emitResetPuzzle,
84
86
  firstTryForFrame = props.firstTryForFrame,
85
- puzzlesAutoCompleted = props.puzzlesAutoCompleted;
87
+ puzzlesAutoCompleted = props.puzzlesAutoCompleted,
88
+ emitOpenPopupCounterInfo = props.emitOpenPopupCounterInfo;
86
89
 
87
90
  var _useState = (0, _react.useState)([]),
88
91
  _useState2 = _slicedToArray(_useState, 2),
@@ -107,8 +110,9 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
107
110
  }),
108
111
  _useState8 = _slicedToArray(_useState7, 2),
109
112
  feedbackData = _useState8[0],
110
- setFeedbackData = _useState8[1]; // timer stuffs
113
+ setFeedbackData = _useState8[1];
111
114
 
115
+ var popupCounterVisible = (0, _react.useRef)(false); // timer stuffs
112
116
 
113
117
  var _useState9 = (0, _react.useState)(true),
114
118
  _useState10 = _slicedToArray(_useState9, 2),
@@ -172,6 +176,34 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
172
176
  (0, _react.useEffect)(function () {
173
177
  setCompleted(defaultCompleted);
174
178
  }, [defaultCompleted]);
179
+ var clearListenerForActualDate = (0, _react.useCallback)(function () {
180
+ clearInterval(intervalForActualDate.current);
181
+ }, []);
182
+ var pauseTheCounter = (0, _react.useCallback)(function () {
183
+ pauseDate.current = Date.now();
184
+ remainingTime.current = finalDate.current - pauseDate.current;
185
+ clearListenerForActualDate();
186
+ }, [clearListenerForActualDate]);
187
+ var listenerForActualDate = (0, _react.useCallback)(function () {
188
+ intervalForActualDate.current = setInterval(function () {
189
+ actualDate.current = Date.now(); // show timerFeedback when finish the time
190
+
191
+ if (actualDate.current > finalDate.current) {
192
+ setFeedbackData(function () {
193
+ var _info$timerFeedback, _info$timerFeedback2;
194
+
195
+ return {
196
+ show: true,
197
+ success: false,
198
+ text: info !== null && info !== void 0 && (_info$timerFeedback = info.timerFeedback) !== null && _info$timerFeedback !== void 0 && _info$timerFeedback.desc ? info.timerFeedback.desc : '',
199
+ rewards: info === null || info === void 0 ? void 0 : (_info$timerFeedback2 = info.timerFeedback) === null || _info$timerFeedback2 === void 0 ? void 0 : _info$timerFeedback2.rewards
200
+ };
201
+ });
202
+ setTimeExpired(true);
203
+ clearListenerForActualDate();
204
+ }
205
+ }, 0);
206
+ }, [clearListenerForActualDate, info === null || info === void 0 ? void 0 : (_info$timerFeedback3 = info.timerFeedback) === null || _info$timerFeedback3 === void 0 ? void 0 : _info$timerFeedback3.desc, info === null || info === void 0 ? void 0 : (_info$timerFeedback4 = info.timerFeedback) === null || _info$timerFeedback4 === void 0 ? void 0 : _info$timerFeedback4.rewards]);
175
207
  (0, _react.useEffect)(function () {
176
208
  if ((areas.length === clickedZones.length || hasClickOnce && clickedZones.length > 0) && !completed) {
177
209
  var _specificFeedbacks$co;
@@ -283,11 +315,6 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
283
315
  }
284
316
  };
285
317
 
286
- var pauseTheCounter = (0, _react.useCallback)(function () {
287
- pauseDate.current = Date.now();
288
- remainingTime.current = finalDate.current - pauseDate.current;
289
- clearListenerForActualDate();
290
- }, [clearListenerForActualDate]);
291
318
  var handleOnClose = (0, _react.useCallback)(function () {
292
319
  whenCloseFeedbackDate.current = Date.now();
293
320
  var newFinalDate = whenCloseFeedbackDate.current + remainingTime.current;
@@ -365,43 +392,26 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
365
392
  }
366
393
  };
367
394
 
368
- var clearListenerForActualDate = (0, _react.useCallback)(function () {
369
- clearInterval(intervalForActualDate.current);
370
- }, []);
371
- var listenerForActualDate = (0, _react.useCallback)(function () {
372
- intervalForActualDate.current = setInterval(function () {
373
- actualDate.current = Date.now(); // show timerFeedback when finish the time
374
-
375
- if (actualDate.current > finalDate.current) {
376
- setFeedbackData(function () {
377
- return {
378
- show: true,
379
- success: false,
380
- text: info.timerFeedback.desc ? info.timerFeedback.desc : '',
381
- rewards: info.timerFeedback.rewards
382
- };
383
- });
384
- setTimeExpired(true);
385
- clearListenerForActualDate();
386
- }
387
- }, 0);
388
- }, [clearListenerForActualDate, info.timerFeedback.desc, info.timerFeedback.rewards]);
389
395
  var createStartAndEndDate = (0, _react.useCallback)(function () {
396
+ if (!popupCounterVisible.current && firstTryForFrame) {
397
+ emitOpenPopupCounterInfo();
398
+ }
399
+
390
400
  setDialogForTimer(false);
391
401
  startDate.current = Date.now();
392
402
  finalDate.current = startDate.current + timer * 1000;
393
403
  listenerForActualDate();
394
- }, [listenerForActualDate, timer]);
404
+ }, [emitOpenPopupCounterInfo, firstTryForFrame, listenerForActualDate, timer]);
395
405
  (0, _react.useEffect)(function () {
396
406
  // start automatically the time
397
- if (slideNumber > 0) {
398
- if (puzzlesAutoCompleted[slideNumber - 1]) {
407
+ if (timer && slideNumber > 0) {
408
+ if (firstTryForFrame && Object.keys(puzzlesAutoCompleted).length && puzzlesAutoCompleted[slideNumber - 1]) {
399
409
  setDialogForTimer(true);
400
410
  } else {
401
411
  createStartAndEndDate();
402
412
  }
403
413
  }
404
- }, [createStartAndEndDate, puzzlesAutoCompleted, slideNumber]);
414
+ }, [createStartAndEndDate, defaultCompleted, firstTryForFrame, puzzlesAutoCompleted, slideNumber, timer]);
405
415
  return /*#__PURE__*/_react.default.createElement("div", {
406
416
  className: className
407
417
  }, feedbackData.show ? /*#__PURE__*/_react.default.createElement(_FeedbackComponent.default, {
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@gamelearn/arcade-components",
3
3
  "author": "Gamelearn",
4
4
  "license": "unlicense",
5
- "version": "1.11.6",
5
+ "version": "1.11.8",
6
6
  "main": "dist/index.js",
7
7
  "files": [
8
8
  "dist",