@gamelearn/arcade-components 1.11.9 → 1.12.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,6 +11,8 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _useTimeout2 = _interopRequireDefault(require("../../../helpers/useTimeout"));
13
13
 
14
+ var _useEkho2 = _interopRequireDefault(require("../../../helpers/useEkho"));
15
+
14
16
  var _Slide = _interopRequireDefault(require("./Slide"));
15
17
 
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -31,9 +33,11 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
31
33
 
32
34
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
33
35
 
34
- var characterMs = 250;
36
+ var characterMs = 75;
35
37
 
36
38
  var ComicComponent = function ComicComponent(_ref) {
39
+ var _slides$slideCount, _slides$slideCount2, _slides$slideCount3, _slides$slideCount3$v, _slides$slideCount4;
40
+
37
41
  var slides = _ref.slides,
38
42
  emitEvent = _ref.emitEvent,
39
43
  _ref$soundActions = _ref.soundActions,
@@ -95,18 +99,34 @@ var ComicComponent = function ComicComponent(_ref) {
95
99
  goToPreviousSlide();
96
100
  };
97
101
 
102
+ var _useEkho = (0, _useEkho2.default)({
103
+ audioType: slides === null || slides === void 0 ? void 0 : (_slides$slideCount = slides[slideCount]) === null || _slides$slideCount === void 0 ? void 0 : _slides$slideCount.audioType,
104
+ voice: slides === null || slides === void 0 ? void 0 : (_slides$slideCount2 = slides[slideCount]) === null || _slides$slideCount2 === void 0 ? void 0 : _slides$slideCount2.voice,
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
+ audio: slides === null || slides === void 0 ? void 0 : (_slides$slideCount4 = slides[slideCount]) === null || _slides$slideCount4 === void 0 ? void 0 : _slides$slideCount4.audio,
107
+ soundActions: soundActions,
108
+ emitEvent: emitEvent
109
+ }),
110
+ onFinish = _useEkho.onFinish;
111
+
98
112
  (0, _react.useEffect)(function () {
99
- if (automatic) {
100
- var _slides$slideCount, _slides$slideCount$vi, _slides$slideCount$vi2;
113
+ var slide = slides === null || slides === void 0 ? void 0 : slides[slideCount];
101
114
 
102
- var time = characterMs * (((_slides$slideCount = slides[slideCount]) === null || _slides$slideCount === void 0 ? void 0 : (_slides$slideCount$vi = _slides$slideCount.vignettes[0]) === null || _slides$slideCount$vi === void 0 ? void 0 : (_slides$slideCount$vi2 = _slides$slideCount$vi.textData) === null || _slides$slideCount$vi2 === void 0 ? void 0 : _slides$slideCount$vi2.text.length) || 0);
103
- start(goToNextSlide, time);
115
+ if (automatic) {
116
+ if (!Object.keys(slide.voice || {}).length) {
117
+ var _slide$vignettes$, _slide$vignettes$$tex;
118
+
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
+ }
104
124
  }
105
125
 
106
126
  return function () {
107
127
  stop();
108
128
  };
109
- }, [automatic, goToNextSlide, slideCount, slides, start, stop]);
129
+ }, [automatic, goToNextSlide, onFinish, slideCount, slides, start, stop]);
110
130
  if (!(slides !== null && slides !== void 0 && slides.length)) return null;
111
131
  return /*#__PURE__*/_react.default.createElement("div", {
112
132
  className: "comic component growIn-animation"
@@ -9,26 +9,12 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _Vignette = _interopRequireDefault(require("./Vignette"));
11
11
 
12
- var _useEkho = _interopRequireDefault(require("../../../helpers/useEkho"));
13
-
14
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
13
 
16
14
  var Slide = function Slide(_ref) {
17
- var _slide$vignettes$0$te;
18
-
19
15
  var slide = _ref.slide,
20
- transition = _ref.transition,
21
- soundActions = _ref.soundActions,
22
- emitEvent = _ref.emitEvent;
16
+ transition = _ref.transition;
23
17
  var slideTransition = slide.transitionEffects || transition;
24
- (0, _useEkho.default)({
25
- audioType: slide === null || slide === void 0 ? void 0 : slide.audioType,
26
- voice: slide === null || slide === void 0 ? void 0 : slide.voice,
27
- text: slide === null || slide === void 0 ? void 0 : (_slide$vignettes$0$te = slide.vignettes[0].textData) === null || _slide$vignettes$0$te === void 0 ? void 0 : _slide$vignettes$0$te.text,
28
- audio: slide === null || slide === void 0 ? void 0 : slide.audio,
29
- soundActions: soundActions,
30
- emitEvent: emitEvent
31
- });
32
18
  return /*#__PURE__*/_react.default.createElement("div", {
33
19
  className: "comic--slide__item ".concat(slideTransition)
34
20
  }, slide.vignettes.map(function (vignette) {
@@ -28,6 +28,8 @@ var useEkho = function useEkho(_ref) {
28
28
  var voice = _ref.voice,
29
29
  text = _ref.text,
30
30
  audioType = _ref.audioType,
31
+ _ref$loop = _ref.loop,
32
+ loop = _ref$loop === void 0 ? false : _ref$loop,
31
33
  audio = _ref.audio,
32
34
  soundActions = _ref.soundActions,
33
35
  emitEvent = _ref.emitEvent;
@@ -52,7 +54,15 @@ var useEkho = function useEkho(_ref) {
52
54
  type: 'translate',
53
55
  payload: id
54
56
  });
55
- }, [emitEvent]); // Setted when is mounted
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
56
66
 
57
67
  (0, _react.useEffect)(function () {
58
68
  setIsMounted(true);
@@ -91,8 +101,12 @@ var useEkho = function useEkho(_ref) {
91
101
  url: url,
92
102
  cc: cc
93
103
  };
94
- playSound(url, cc);
95
- }, [playSound]);
104
+ startCallback.current({
105
+ url: url,
106
+ cc: cc
107
+ });
108
+ playSound(url, cc, loop, 0.5, finishCallback.current);
109
+ }, [playSound, loop]);
96
110
  var playSpeech = (0, _react.useCallback)( /*#__PURE__*/function () {
97
111
  var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(payload) {
98
112
  var url;
@@ -145,6 +159,10 @@ var useEkho = function useEkho(_ref) {
145
159
  }
146
160
  }
147
161
  }, [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
+ };
148
166
  };
149
167
 
150
168
  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.11.9",
5
+ "version": "1.12.0",
6
6
  "main": "dist/index.js",
7
7
  "files": [
8
8
  "dist",