@gamelearn/arcade-components 1.12.1 → 1.14.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.
@@ -11,7 +11,7 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _useTimeout2 = _interopRequireDefault(require("../../../helpers/useTimeout"));
13
13
 
14
- var _useEkho2 = _interopRequireDefault(require("../../../helpers/useEkho"));
14
+ var _useEkho = _interopRequireDefault(require("../../../helpers/useEkho"));
15
15
 
16
16
  var _Slide = _interopRequireDefault(require("./Slide"));
17
17
 
@@ -99,40 +99,41 @@ var ComicComponent = function ComicComponent(_ref) {
99
99
  goToPreviousSlide();
100
100
  };
101
101
 
102
- var _useEkho = (0, _useEkho2.default)({
102
+ (0, _useEkho.default)({
103
103
  audioType: slides === null || slides === void 0 ? void 0 : (_slides$slideCount = slides[slideCount]) === null || _slides$slideCount === void 0 ? void 0 : _slides$slideCount.audioType,
104
104
  voice: slides === null || slides === void 0 ? void 0 : (_slides$slideCount2 = slides[slideCount]) === null || _slides$slideCount2 === void 0 ? void 0 : _slides$slideCount2.voice,
105
105
  text: slides === null || slides === void 0 ? void 0 : (_slides$slideCount3 = slides[slideCount]) === null || _slides$slideCount3 === void 0 ? void 0 : (_slides$slideCount3$v = _slides$slideCount3.vignettes[0].textData) === null || _slides$slideCount3$v === void 0 ? void 0 : _slides$slideCount3$v.text,
106
106
  audio: slides === null || slides === void 0 ? void 0 : (_slides$slideCount4 = slides[slideCount]) === null || _slides$slideCount4 === void 0 ? void 0 : _slides$slideCount4.audio,
107
107
  soundActions: soundActions,
108
- emitEvent: emitEvent
109
- }),
110
- onFinish = _useEkho.onFinish;
108
+ emitEvent: emitEvent,
109
+ onFinish: function onFinish() {
110
+ var _slides$slideCount5;
111
111
 
112
+ if (automatic && (slides === null || slides === void 0 ? void 0 : (_slides$slideCount5 = slides[slideCount]) === null || _slides$slideCount5 === void 0 ? void 0 : _slides$slideCount5.audioType) !== 'none') {
113
+ goToNextSlide();
114
+ }
115
+ }
116
+ });
112
117
  (0, _react.useEffect)(function () {
113
118
  var slide = slides === null || slides === void 0 ? void 0 : slides[slideCount];
114
119
 
115
- if (automatic) {
116
- if (!Object.keys(slide.voice || {}).length) {
117
- var _slide$vignettes$, _slide$vignettes$$tex;
120
+ if (automatic && ((slide === null || slide === void 0 ? void 0 : slide.audioType) === 'none' || !(slide !== null && slide !== void 0 && slide.audioType))) {
121
+ var _slide$vignettes$, _slide$vignettes$$tex;
118
122
 
119
- var time = characterMs * ((slide === null || slide === void 0 ? void 0 : (_slide$vignettes$ = slide.vignettes[0]) === null || _slide$vignettes$ === void 0 ? void 0 : (_slide$vignettes$$tex = _slide$vignettes$.textData) === null || _slide$vignettes$$tex === void 0 ? void 0 : _slide$vignettes$$tex.text.length) || 0);
120
- start(goToNextSlide, time < 1400 ? 1400 : time);
121
- } else {
122
- onFinish(goToNextSlide);
123
- }
123
+ var time = characterMs * ((slide === null || slide === void 0 ? void 0 : (_slide$vignettes$ = slide.vignettes[0]) === null || _slide$vignettes$ === void 0 ? void 0 : (_slide$vignettes$$tex = _slide$vignettes$.textData) === null || _slide$vignettes$$tex === void 0 ? void 0 : _slide$vignettes$$tex.text.length) || 0);
124
+ start(goToNextSlide, time < 1400 ? 1400 : time);
124
125
  }
125
126
 
126
127
  return function () {
127
128
  stop();
128
129
  };
129
- }, [automatic, goToNextSlide, onFinish, slideCount, slides, start, stop]);
130
+ }, [automatic, goToNextSlide, slideCount, slides, start, stop]);
130
131
  if (!(slides !== null && slides !== void 0 && slides.length)) return null;
131
132
  return /*#__PURE__*/_react.default.createElement("div", {
132
133
  className: "comic component growIn-animation"
133
134
  }, /*#__PURE__*/_react.default.createElement("div", {
134
135
  className: "comic--slider"
135
- }, /*#__PURE__*/_react.default.createElement(_Slide.default, {
136
+ }, slides[slideCount] && /*#__PURE__*/_react.default.createElement(_Slide.default, {
136
137
  key: "comic page ".concat(slides[slideCount].slideOrder),
137
138
  slide: slides[slideCount],
138
139
  transition: slideTransition,
@@ -277,17 +277,23 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
277
277
  handleClickBack();
278
278
  };
279
279
 
280
+ var autoplayCond = automatic && !isDecision;
280
281
  (0, _useEkho.default)({
281
282
  audioType: currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.audioType,
282
283
  voice: currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.voice,
283
284
  text: currentMessage === null || currentMessage === void 0 ? void 0 : currentMessage.text,
284
285
  audio: currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.audio,
285
286
  soundActions: soundActions,
286
- emitEvent: emitEvent
287
+ emitEvent: emitEvent,
288
+ onFinish: function onFinish() {
289
+ if (autoplayCond && (currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.audioType) !== 'none') {
290
+ handleClickNext();
291
+ }
292
+ }
287
293
  }); // Autoplay logic
288
294
 
289
295
  (0, _react.useEffect)(function () {
290
- if (automatic && !isDecision) {
296
+ if (autoplayCond && (currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.audioType) === 'none') {
291
297
  var _currentMessage$text;
292
298
 
293
299
  var time = characterMs * ((currentMessage === null || currentMessage === void 0 ? void 0 : (_currentMessage$text = currentMessage.text) === null || _currentMessage$text === void 0 ? void 0 : _currentMessage$text.length) || 0);
@@ -297,7 +303,7 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
297
303
  return function () {
298
304
  stop();
299
305
  };
300
- }, [currentMessage, automatic, isDecision, start, stop, handleClickNext]);
306
+ }, [currentMessage, start, stop, handleClickNext, currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.audioType, autoplayCond]);
301
307
 
302
308
  var decisionPayload = _objectSpread(_objectSpread({}, currentLineData.payload), {}, {
303
309
  required: !isBranched,
@@ -5,8 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.repaintGridPassword = exports.makeSomeNoise = void 0;
7
7
 
8
+ var _LangIsRtl = _interopRequireDefault(require("../../../helpers/LangIsRtl"));
9
+
8
10
  var _colors = require("./colors");
9
11
 
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
10
14
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
15
 
12
16
  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."); }
@@ -120,8 +124,8 @@ var repaintGridPassword = function repaintGridPassword(actualGrid, newPassword,
120
124
 
121
125
  exports.repaintGridPassword = repaintGridPassword;
122
126
 
123
- var prepareAcceptedChars = function prepareAcceptedChars(password) {
124
- return '0123456789abcdefghijklmnopqrstuvwxyz'.split('').filter(function (character) {
127
+ var prepareAcceptedChars = function prepareAcceptedChars(password, charactersString) {
128
+ return charactersString.split('').filter(function (character) {
125
129
  return !password.includes(character);
126
130
  }).join('');
127
131
  };
@@ -152,7 +156,8 @@ var makeSomeNoise = function makeSomeNoise(_ref) {
152
156
  var numberOfColumns = _ref.numberOfColumns,
153
157
  numberOfRows = _ref.numberOfRows,
154
158
  password = _ref.password;
155
- var acceptedChars = prepareAcceptedChars(password);
159
+ var charactersForLang = (0, _LangIsRtl.default)() ? '٠١٢٣٤٥٦٧٨٩شزذيثبلاهتنمورخحضقسفعدصطغظ' : '0123456789abcdefghijklmnopqrstuvwxyz';
160
+ var acceptedChars = prepareAcceptedChars(password, charactersForLang);
156
161
  var grid = generateBasicGrid(numberOfRows, numberOfColumns, acceptedChars);
157
162
 
158
163
  var _generatePasswordPosi3 = generatePasswordPositions(grid, password, numberOfRows, numberOfColumns),
@@ -437,7 +437,8 @@ var DialogComponent = function DialogComponent(_ref) {
437
437
  });
438
438
  }
439
439
  }
440
- }, [actors, camera, currentLine, zoomInActor, getCurrentVisible, translate, getAvatarURL, loadEmotion, resetCameraView, isDecision, isVoiceOver]); // Sound logic
440
+ }, [actors, camera, currentLine, zoomInActor, getCurrentVisible, translate, getAvatarURL, loadEmotion, resetCameraView, isDecision, isVoiceOver]);
441
+ var autoPlayCond = automatic && currentMessage.show && !currentLine.decision; // Sound logic
441
442
 
442
443
  (0, _useEkho.default)({
443
444
  audioType: currentLine === null || currentLine === void 0 ? void 0 : currentLine.audioType,
@@ -445,11 +446,16 @@ var DialogComponent = function DialogComponent(_ref) {
445
446
  text: currentMessage === null || currentMessage === void 0 ? void 0 : currentMessage.text,
446
447
  audio: currentLine === null || currentLine === void 0 ? void 0 : currentLine.audio,
447
448
  soundActions: soundActions,
448
- emitEvent: emitEvent
449
+ emitEvent: emitEvent,
450
+ onFinish: function onFinish() {
451
+ if (autoPlayCond && (currentLine === null || currentLine === void 0 ? void 0 : currentLine.audioType) !== 'none') {
452
+ nextLine();
453
+ }
454
+ }
449
455
  }); // Autoplay logic
450
456
 
451
457
  (0, _react.useEffect)(function () {
452
- if (automatic && currentMessage.show && !currentLine.decision) {
458
+ if (autoPlayCond && (currentLine === null || currentLine === void 0 ? void 0 : currentLine.audioType) === 'none') {
453
459
  var _currentMessage$text;
454
460
 
455
461
  var time = characterMs * ((currentMessage === null || currentMessage === void 0 ? void 0 : (_currentMessage$text = currentMessage.text) === null || _currentMessage$text === void 0 ? void 0 : _currentMessage$text.length) || 0);
@@ -459,7 +465,7 @@ var DialogComponent = function DialogComponent(_ref) {
459
465
  return function () {
460
466
  stop();
461
467
  };
462
- }, [currentMessage, nextLine, automatic, currentLine.decision, start, stop]); // Positioning logic
468
+ }, [currentMessage, nextLine, start, stop, currentLine === null || currentLine === void 0 ? void 0 : currentLine.audioType, autoPlayCond]); // Positioning logic
463
469
 
464
470
  var checkBubblePosition = (0, _react.useCallback)(function () {
465
471
  if (bubbleRef.current && currentLine.slots) {
@@ -126,7 +126,9 @@ var FeedbackComponent = function FeedbackComponent(_ref) {
126
126
  className: "feedback-layer__explainwrap"
127
127
  }, /*#__PURE__*/_react.default.createElement("div", {
128
128
  className: "feedback-layer__explain"
129
- }, /*#__PURE__*/_react.default.createElement("div", null, text)))));
129
+ }, /*#__PURE__*/_react.default.createElement("div", {
130
+ dir: "auto"
131
+ }, text)))));
130
132
  };
131
133
 
132
134
  FeedbackComponent.defaultProps = {
@@ -67,6 +67,7 @@ var AnswerPanel = function AnswerPanel(_ref) {
67
67
  });
68
68
  return words.map(function (word, index) {
69
69
  return /*#__PURE__*/_react.default.createElement("div", {
70
+ dir: "auto",
70
71
  key: "".concat(word + index),
71
72
  className: "puzzle--hanged__word",
72
73
  "data-testid": "result-".concat(index)
@@ -436,8 +437,10 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
436
437
  }, /*#__PURE__*/_react.default.createElement("div", {
437
438
  className: "puzzle--hanged__controls"
438
439
  }, /*#__PURE__*/_react.default.createElement("div", {
440
+ dir: "auto",
439
441
  className: "puzzle--hanged__header"
440
442
  }, question), /*#__PURE__*/_react.default.createElement("div", {
443
+ dir: "auto",
441
444
  className: "puzzle--hanged__solution ".concat(resolvedClass),
442
445
  "data-testid": "".concat(resolvedClass)
443
446
  }, showCorrectSolution ? /*#__PURE__*/_react.default.createElement(AnswerPanel, {
@@ -5,6 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.sortChar = exports.restrictCharacters = exports.makeChar = void 0;
7
7
 
8
+ var _LangIsRtl = _interopRequireDefault(require("../../helpers/LangIsRtl"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
8
12
  var restrictCharacters = function restrictCharacters(char, operator) {
9
13
  var restrictedChar = false;
10
14
 
@@ -36,7 +40,7 @@ var sortChar = function sortChar(a, b) {
36
40
  exports.sortChar = sortChar;
37
41
 
38
42
  var makeChar = function makeChar() {
39
- var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
43
+ var characters = (0, _LangIsRtl.default)() ? 'شزذيثبلاهتنمورخحضثقسفعدصطغظ' : 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
40
44
  var charactersLength = characters.length;
41
45
  return characters.charAt(Math.floor(Math.random() * charactersLength));
42
46
  };
@@ -9,6 +9,10 @@ exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
 
12
+ var _LangIsRtl = _interopRequireDefault(require("../../../helpers/LangIsRtl"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
12
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
17
 
14
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; }
@@ -54,6 +58,8 @@ var LoginPuzzleComponent = function LoginPuzzleComponent(_ref) {
54
58
  });
55
59
  };
56
60
 
61
+ var isRtl = (0, _LangIsRtl.default)();
62
+
57
63
  var _useState = (0, _react.useState)(''),
58
64
  _useState2 = _slicedToArray(_useState, 2),
59
65
  inputUser = _useState2[0],
@@ -187,10 +193,13 @@ var LoginPuzzleComponent = function LoginPuzzleComponent(_ref) {
187
193
  }, " "), !finished && /*#__PURE__*/_react.default.createElement("span", {
188
194
  className: "puzzle--login__title"
189
195
  }, translate('puzzle.initSession')), /*#__PURE__*/_react.default.createElement("div", null, login && /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
196
+ dir: "auto",
190
197
  className: "puzzle--login__label"
191
198
  }, translate('puzzle.user')), /*#__PURE__*/_react.default.createElement("div", {
199
+ dir: "auto",
192
200
  className: "puzzle--login__group"
193
201
  }, showCorrectSolution ? /*#__PURE__*/_react.default.createElement("input", {
202
+ dir: isRtl ? 'rtl' : 'auto',
194
203
  disabled: finished,
195
204
  "data-testid": "username",
196
205
  className: "puzzle--login__input ".concat(successClass),
@@ -198,6 +207,7 @@ var LoginPuzzleComponent = function LoginPuzzleComponent(_ref) {
198
207
  placeholder: user,
199
208
  value: user
200
209
  }) : /*#__PURE__*/_react.default.createElement("input", {
210
+ dir: isRtl ? 'rtl' : 'auto',
201
211
  disabled: finished,
202
212
  "data-testid": "username",
203
213
  className: "puzzle--login__input ".concat(successClass),
@@ -211,10 +221,13 @@ var LoginPuzzleComponent = function LoginPuzzleComponent(_ref) {
211
221
  }), /*#__PURE__*/_react.default.createElement("span", {
212
222
  className: "icon-circle-check"
213
223
  }, " "))), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
224
+ dir: "auto",
214
225
  className: "puzzle--login__label"
215
226
  }, /*#__PURE__*/_react.default.createElement("span", null, translate('puzzle.password'))), /*#__PURE__*/_react.default.createElement("div", {
227
+ dir: "auto",
216
228
  className: "puzzle--login__group"
217
229
  }, showCorrectSolution ? /*#__PURE__*/_react.default.createElement("input", {
230
+ dir: isRtl ? 'rtl' : 'auto',
218
231
  disabled: true,
219
232
  "data-testid": "password",
220
233
  className: "puzzle--login__input puzzle--login__input--fakepassword success",
@@ -222,6 +235,7 @@ var LoginPuzzleComponent = function LoginPuzzleComponent(_ref) {
222
235
  placeholder: password,
223
236
  value: password
224
237
  }) : /*#__PURE__*/_react.default.createElement("input", {
238
+ dir: isRtl ? 'rtl' : 'auto',
225
239
  disabled: finished,
226
240
  "data-testid": "password",
227
241
  className: "puzzle--login__input puzzle--login__input--fakepassword ".concat(successClass),
@@ -240,6 +254,7 @@ var LoginPuzzleComponent = function LoginPuzzleComponent(_ref) {
240
254
  setErrorMessage(false);
241
255
  }
242
256
  }), !showCorrectSolution ? /*#__PURE__*/_react.default.createElement("div", {
257
+ dir: isRtl ? 'rtl' : 'auto',
243
258
  className: "login-fakepassword".concat(inputPasswordFocus ? ' login-fakepassword--focus' : '').concat(fakeHashes.length ? ' login-fakepassword--fill' : '', " ").concat(successClass || '')
244
259
  }, inputPassword ? fakeHashes : translate('puzzle.password')) : null, /*#__PURE__*/_react.default.createElement("span", {
245
260
  className: "icon-circle-check"
@@ -17,8 +17,10 @@ var FeedbackElement = function FeedbackElement(_ref) {
17
17
  return /*#__PURE__*/_react.default.createElement("div", null, body !== '' && /*#__PURE__*/_react.default.createElement("div", {
18
18
  className: "writer-feedback-decision-item"
19
19
  }, title && /*#__PURE__*/_react.default.createElement("div", {
20
+ dir: "auto",
20
21
  className: "writer-feedback-decision-item__title"
21
- }, title, " "), body && /*#__PURE__*/_react.default.createElement("div", {
22
+ }, title, ' '), body && /*#__PURE__*/_react.default.createElement("div", {
23
+ dir: "auto",
22
24
  className: "writer-feedback-decision-item__message"
23
25
  }, decision.correct ? /*#__PURE__*/_react.default.createElement("span", {
24
26
  className: "icon-check-circle-black color--success"
@@ -17,6 +17,8 @@ var _FeedbackComponent = _interopRequireDefault(require("./FeedbackComponent"));
17
17
 
18
18
  var _FinishedTextComponent = _interopRequireDefault(require("./FinishedTextComponent"));
19
19
 
20
+ var _LangIsRtl = _interopRequireDefault(require("../../../helpers/LangIsRtl"));
21
+
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
23
 
22
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -465,9 +467,11 @@ var WriterPuzzleComponent = function WriterPuzzleComponent(_ref) {
465
467
  }), !showFeedback && /*#__PURE__*/_react.default.createElement("div", {
466
468
  className: "writer-puzzle__container"
467
469
  }, /*#__PURE__*/_react.default.createElement("div", {
470
+ dir: "auto",
468
471
  className: "writer-puzzle__title"
469
472
  }, documentTitle !== '' && documentTitle), /*#__PURE__*/_react.default.createElement("div", {
470
- className: "writer-puzzle__body"
473
+ className: "writer-puzzle__body",
474
+ dir: (0, _LangIsRtl.default)() ? 'rtl' : 'auto'
471
475
  }, /*#__PURE__*/_react.default.createElement("div", {
472
476
  className: "writer-puzzle__scroll",
473
477
  ref: automaticScroll
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var LangIsRtl = function LangIsRtl() {
9
+ var langsRtl = ['ar', 'fa', 'he', 'ku', 'ur'];
10
+ var currentLang = document.querySelector('html').getAttribute('lang');
11
+
12
+ if (langsRtl.includes(currentLang)) {
13
+ return true;
14
+ }
15
+
16
+ return false;
17
+ };
18
+
19
+ var _default = LangIsRtl;
20
+ exports.default = _default;
@@ -23,7 +23,10 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
23
23
 
24
24
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
25
 
26
+ var noop = function noop() {};
26
27
  /** Custom hook for use TTS and audio in the components */
28
+
29
+
27
30
  var useEkho = function useEkho(_ref) {
28
31
  var voice = _ref.voice,
29
32
  text = _ref.text,
@@ -32,7 +35,11 @@ var useEkho = function useEkho(_ref) {
32
35
  loop = _ref$loop === void 0 ? false : _ref$loop,
33
36
  audio = _ref.audio,
34
37
  soundActions = _ref.soundActions,
35
- emitEvent = _ref.emitEvent;
38
+ emitEvent = _ref.emitEvent,
39
+ _ref$onFinish = _ref.onFinish,
40
+ onFinish = _ref$onFinish === void 0 ? noop : _ref$onFinish,
41
+ _ref$onStart = _ref.onStart,
42
+ onStart = _ref$onStart === void 0 ? noop : _ref$onStart;
36
43
 
37
44
  var _soundActions = _slicedToArray(soundActions, 2),
38
45
  playSound = _soundActions[0],
@@ -54,15 +61,7 @@ var useEkho = function useEkho(_ref) {
54
61
  type: 'translate',
55
62
  payload: id
56
63
  });
57
- }, [emitEvent]);
58
- var finishCallback = (0, _react.useRef)(function () {});
59
- var startCallback = (0, _react.useRef)(function () {});
60
- var onStartAudio = (0, _react.useCallback)(function (fn) {
61
- startCallback.current = fn;
62
- }, []);
63
- var onFinishAudio = (0, _react.useCallback)(function (fn) {
64
- finishCallback.current = fn;
65
- }, []); // Setted when is mounted
64
+ }, [emitEvent]); // Setted when is mounted
66
65
 
67
66
  (0, _react.useEffect)(function () {
68
67
  setIsMounted(true);
@@ -101,12 +100,12 @@ var useEkho = function useEkho(_ref) {
101
100
  url: url,
102
101
  cc: cc
103
102
  };
104
- startCallback.current({
103
+ onStart({
105
104
  url: url,
106
105
  cc: cc
107
106
  });
108
- playSound(url, cc, loop, 0.5, finishCallback.current);
109
- }, [playSound, loop]);
107
+ playSound(url, cc, loop, 0.5, onFinish);
108
+ }, [onStart, playSound, loop, onFinish]);
110
109
  var playSpeech = (0, _react.useCallback)( /*#__PURE__*/function () {
111
110
  var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(payload) {
112
111
  var url;
@@ -159,10 +158,6 @@ var useEkho = function useEkho(_ref) {
159
158
  }
160
159
  }
161
160
  }, [getVoice, playSpeech, isMounted, voice, text, audioType, audio === null || audio === void 0 ? void 0 : audio.url, audio, setCurrentPlaying]);
162
- return {
163
- onStart: onStartAudio,
164
- onFinish: onFinishAudio
165
- };
166
161
  };
167
162
 
168
163
  var _default = useEkho;
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.12.1",
5
+ "version": "1.14.0",
6
6
  "main": "dist/index.js",
7
7
  "files": [
8
8
  "dist",
@@ -13,7 +13,7 @@
13
13
  "url": "https://github.com/gamelearn/arcade-components"
14
14
  },
15
15
  "dependencies": {
16
- "@gamelearn/arcade-styles": "0.10.1",
16
+ "@gamelearn/arcade-styles": "0.11.1",
17
17
  "@gamelearn/arcade-three-core": "1.1.15",
18
18
  "@react-three/drei": "8.8.1",
19
19
  "@react-three/fiber": "7.0.25",