@gamelearn/arcade-components 1.7.9 → 1.8.1
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/README.md +6 -0
- package/dist/components/cartel-component/components/CartelComponent.js +15 -5
- package/dist/components/comic-component/components/ComicComponent.js +2 -1
- package/dist/components/comic-component/components/Slide.js +15 -44
- package/dist/components/comic-component/mocks/mockForStory.js +87 -3
- package/dist/helpers/mocker.js +7 -1
- package/dist/helpers/useEkho.js +137 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -81,6 +81,12 @@ yarn compile
|
|
|
81
81
|
yalc publish o yarn yalc publish
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
+
Si queremos escuchar los cambios y que se vayan publicando en el store de yalc se puede hacer directamente con:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
yarn watch
|
|
88
|
+
```
|
|
89
|
+
|
|
84
90
|
Después, en el repositorio de `arcade` tendremos que linkar el paquete generado de la siguiente forma:
|
|
85
91
|
|
|
86
92
|
```bash
|
|
@@ -9,6 +9,10 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
|
|
12
|
+
var _useEkho = _interopRequireDefault(require("../../../helpers/useEkho"));
|
|
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; }
|
|
@@ -29,6 +33,8 @@ var CartelComponent = function CartelComponent(_ref) {
|
|
|
29
33
|
var img = _ref.img,
|
|
30
34
|
text = _ref.text,
|
|
31
35
|
audio = _ref.audio,
|
|
36
|
+
audioType = _ref.audioType,
|
|
37
|
+
voice = _ref.voice,
|
|
32
38
|
emitEvent = _ref.emitEvent,
|
|
33
39
|
soundActions = _ref.soundActions;
|
|
34
40
|
var textBox = (0, _react.useRef)();
|
|
@@ -37,6 +43,15 @@ var CartelComponent = function CartelComponent(_ref) {
|
|
|
37
43
|
var _soundActions = _slicedToArray(soundActions, 1),
|
|
38
44
|
playSound = _soundActions[0];
|
|
39
45
|
|
|
46
|
+
(0, _useEkho.default)({
|
|
47
|
+
audioType: audioType,
|
|
48
|
+
voice: voice,
|
|
49
|
+
text: text,
|
|
50
|
+
audio: audio,
|
|
51
|
+
soundActions: soundActions,
|
|
52
|
+
emitEvent: emitEvent
|
|
53
|
+
});
|
|
54
|
+
|
|
40
55
|
var close = function close() {
|
|
41
56
|
playSound('click-ui');
|
|
42
57
|
emitEvent({
|
|
@@ -84,11 +99,6 @@ var CartelComponent = function CartelComponent(_ref) {
|
|
|
84
99
|
resizeObserver.observe(picture.current);
|
|
85
100
|
}
|
|
86
101
|
});
|
|
87
|
-
(0, _react.useEffect)(function () {
|
|
88
|
-
if (audio) {
|
|
89
|
-
playSound(audio.url);
|
|
90
|
-
}
|
|
91
|
-
}, [playSound, audio]);
|
|
92
102
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
93
103
|
className: "cartel"
|
|
94
104
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -80,7 +80,8 @@ var ComicComponent = function ComicComponent(_ref) {
|
|
|
80
80
|
key: "comic page ".concat(slides[slideCount].slideOrder),
|
|
81
81
|
slide: slides[slideCount],
|
|
82
82
|
transition: slideTransition,
|
|
83
|
-
soundActions: soundActions
|
|
83
|
+
soundActions: soundActions,
|
|
84
|
+
emitEvent: emitEvent
|
|
84
85
|
}), slideCount > 0 && /*#__PURE__*/_react.default.createElement("button", {
|
|
85
86
|
type: "button",
|
|
86
87
|
className: "comic-control comic-control--left gat--btn__round",
|
|
@@ -1,63 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
6
|
exports.default = void 0;
|
|
9
7
|
|
|
10
|
-
var _react =
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
9
|
|
|
12
10
|
var _Vignette = _interopRequireDefault(require("./Vignette"));
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
|
|
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); }
|
|
17
|
-
|
|
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; }
|
|
19
|
-
|
|
20
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
21
|
-
|
|
22
|
-
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."); }
|
|
23
|
-
|
|
24
|
-
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); }
|
|
25
|
-
|
|
26
|
-
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; }
|
|
12
|
+
var _useEkho = _interopRequireDefault(require("../../../helpers/useEkho"));
|
|
27
13
|
|
|
28
|
-
function
|
|
29
|
-
|
|
30
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
15
|
|
|
32
16
|
var Slide = function Slide(_ref) {
|
|
17
|
+
var _slide$vignettes$0$te;
|
|
18
|
+
|
|
33
19
|
var slide = _ref.slide,
|
|
34
20
|
transition = _ref.transition,
|
|
35
|
-
soundActions = _ref.soundActions
|
|
21
|
+
soundActions = _ref.soundActions,
|
|
22
|
+
emitEvent = _ref.emitEvent;
|
|
36
23
|
var slideTransition = slide.transitionEffects || transition;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
setisMounted = _useState2[1];
|
|
46
|
-
|
|
47
|
-
(0, _react.useEffect)(function () {
|
|
48
|
-
setisMounted(true);
|
|
49
|
-
return function () {
|
|
50
|
-
setisMounted(false);
|
|
51
|
-
};
|
|
52
|
-
}, []);
|
|
53
|
-
(0, _react.useEffect)(function () {
|
|
54
|
-
var _slide$audio;
|
|
55
|
-
|
|
56
|
-
if (isMounted) playSound(slide === null || slide === void 0 ? void 0 : (_slide$audio = slide.audio) === null || _slide$audio === void 0 ? void 0 : _slide$audio.url);
|
|
57
|
-
return function () {
|
|
58
|
-
stop();
|
|
59
|
-
};
|
|
60
|
-
}, [playSound, stop, slide, isMounted]);
|
|
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
|
+
});
|
|
61
32
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
62
33
|
className: "comic--slide__item ".concat(slideTransition)
|
|
63
34
|
}, slide.vignettes.map(function (vignette) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.comicWithTTS = exports.comicProps = void 0;
|
|
7
7
|
|
|
8
8
|
var _mocker = require("helpers/mocker");
|
|
9
9
|
|
|
@@ -38,6 +38,7 @@ var comicProps = {
|
|
|
38
38
|
}, {
|
|
39
39
|
slideOrder: 2,
|
|
40
40
|
transitionEffects: null,
|
|
41
|
+
audioType: 'file',
|
|
41
42
|
audio: {
|
|
42
43
|
url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/audio/5f646497f6d21e001139b0ed/coin.wav'
|
|
43
44
|
},
|
|
@@ -57,10 +58,93 @@ var comicProps = {
|
|
|
57
58
|
text_labelId: 'text_1_0_E1Xynyri'
|
|
58
59
|
},
|
|
59
60
|
imgId_labelId: 'imgId_1_0_E1Xynq2k'
|
|
61
|
+
}, {
|
|
62
|
+
alias: 'alias_1_4GML5nt5',
|
|
63
|
+
alias_labelId: 'alias_1_4GML5nt5',
|
|
64
|
+
audioId: '',
|
|
65
|
+
audioId_labelId: 'audioId_1_3obtyOdQ',
|
|
66
|
+
audioType: 'voice',
|
|
67
|
+
slideOrder: 2,
|
|
68
|
+
transitionEffects: null,
|
|
69
|
+
vignettes: [{
|
|
70
|
+
imgId: 'imgId_1_0_3obtxgTc',
|
|
71
|
+
imgId_labelId: 'imgId_1_0_3obtxgTc',
|
|
72
|
+
imgName: 'perro_grande.jpg',
|
|
73
|
+
sytle: null,
|
|
74
|
+
textData: {
|
|
75
|
+
style: null,
|
|
76
|
+
text: 'text_1_0_3obtxuj4',
|
|
77
|
+
text_labelId: 'text_1_0_3obtxuj4'
|
|
78
|
+
},
|
|
79
|
+
transitionEffects: null,
|
|
80
|
+
vignetteOrder: 1
|
|
81
|
+
}],
|
|
82
|
+
voice: {
|
|
83
|
+
id: 'URoAYO',
|
|
84
|
+
type: 'character'
|
|
85
|
+
}
|
|
60
86
|
}],
|
|
61
87
|
audioId_labelId: 'audioId_1_E1XynHal'
|
|
62
88
|
}]
|
|
63
89
|
};
|
|
64
90
|
exports.comicProps = comicProps;
|
|
65
|
-
var
|
|
66
|
-
|
|
91
|
+
var comicWithTTS = {
|
|
92
|
+
emitEvent: _mocker.emitEvent,
|
|
93
|
+
soundActions: _mocker.soundActions,
|
|
94
|
+
slides: [{
|
|
95
|
+
slideOrder: 1,
|
|
96
|
+
transitionEffects: null,
|
|
97
|
+
audio: {
|
|
98
|
+
url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/documents/Cat-sound.mp3'
|
|
99
|
+
},
|
|
100
|
+
vignettes: [{
|
|
101
|
+
vignetteOrder: 1,
|
|
102
|
+
img: {
|
|
103
|
+
url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/60508f84901f3e00123a0796/holamundo.jpg',
|
|
104
|
+
imgName: 'prueba6.png',
|
|
105
|
+
resourceId: '6007f80eac41ad001120f135'
|
|
106
|
+
},
|
|
107
|
+
imgName: 'prueba6.png',
|
|
108
|
+
sytle: null,
|
|
109
|
+
transitionEffects: null,
|
|
110
|
+
textData: {
|
|
111
|
+
text: 'hola soy el hombre barbudo',
|
|
112
|
+
style: null,
|
|
113
|
+
text_labelId: 'text_0_0_E1XylCXz'
|
|
114
|
+
},
|
|
115
|
+
imgId_labelId: 'imgId_0_0_E1XymubP'
|
|
116
|
+
}],
|
|
117
|
+
audioId_labelId: 'audioId_0_E1XymRPE'
|
|
118
|
+
}, {
|
|
119
|
+
alias: 'alias_1_4GML5nt5',
|
|
120
|
+
alias_labelId: 'alias_1_4GML5nt5',
|
|
121
|
+
audioId: '',
|
|
122
|
+
audioId_labelId: 'audioId_1_3obtyOdQ',
|
|
123
|
+
audioType: 'voice',
|
|
124
|
+
slideOrder: 2,
|
|
125
|
+
transitionEffects: null,
|
|
126
|
+
vignettes: [{
|
|
127
|
+
img: {
|
|
128
|
+
url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/60508f84901f3e00123a0796/holamundo.jpg',
|
|
129
|
+
imgName: 'prueba6.png',
|
|
130
|
+
resourceId: '6007f80eac41ad001120f135'
|
|
131
|
+
},
|
|
132
|
+
imgId: 'imgId_1_0_3obtxgTc',
|
|
133
|
+
imgId_labelId: 'imgId_1_0_3obtxgTc',
|
|
134
|
+
imgName: 'perro_grande.jpg',
|
|
135
|
+
sytle: null,
|
|
136
|
+
textData: {
|
|
137
|
+
style: null,
|
|
138
|
+
text: 'text_1_0_3obtxuj4',
|
|
139
|
+
text_labelId: 'text_1_0_3obtxuj4'
|
|
140
|
+
},
|
|
141
|
+
transitionEffects: null,
|
|
142
|
+
vignetteOrder: 1
|
|
143
|
+
}],
|
|
144
|
+
voice: {
|
|
145
|
+
id: 'URoAYO',
|
|
146
|
+
type: 'character'
|
|
147
|
+
}
|
|
148
|
+
}]
|
|
149
|
+
};
|
|
150
|
+
exports.comicWithTTS = comicWithTTS;
|
package/dist/helpers/mocker.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.translate = exports.soundActions = exports.setShowPoints = exports.onFinish = exports.noopSoundActions = exports.functionOnClose = exports.emitEvent = void 0;
|
|
6
|
+
exports.translate = exports.soundActions = exports.setShowPoints = exports.onFinish = exports.noopSoundActions = exports.getSpeech = exports.functionOnClose = exports.emitEvent = void 0;
|
|
7
7
|
|
|
8
8
|
/* eslint-disable no-console */
|
|
9
9
|
|
|
@@ -105,6 +105,12 @@ var setShowPoints = function setShowPoints() {
|
|
|
105
105
|
|
|
106
106
|
exports.setShowPoints = setShowPoints;
|
|
107
107
|
|
|
108
|
+
var getSpeech = function getSpeech(payload) {
|
|
109
|
+
console.log('getSpeech', payload);
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
exports.getSpeech = getSpeech;
|
|
113
|
+
|
|
108
114
|
var translate = function translate(payload) {
|
|
109
115
|
return payload;
|
|
110
116
|
};
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
11
|
+
|
|
12
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
13
|
+
|
|
14
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
15
|
+
|
|
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."); }
|
|
17
|
+
|
|
18
|
+
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); }
|
|
19
|
+
|
|
20
|
+
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; }
|
|
21
|
+
|
|
22
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : 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; }
|
|
23
|
+
|
|
24
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
25
|
+
|
|
26
|
+
/** Custom hook for use TTS and audio in the components */
|
|
27
|
+
var useEkho = function useEkho(_ref) {
|
|
28
|
+
var voice = _ref.voice,
|
|
29
|
+
text = _ref.text,
|
|
30
|
+
audioType = _ref.audioType,
|
|
31
|
+
audio = _ref.audio,
|
|
32
|
+
soundActions = _ref.soundActions,
|
|
33
|
+
emitEvent = _ref.emitEvent;
|
|
34
|
+
|
|
35
|
+
var _soundActions = _slicedToArray(soundActions, 2),
|
|
36
|
+
playSound = _soundActions[0],
|
|
37
|
+
stop = _soundActions[1];
|
|
38
|
+
|
|
39
|
+
var _useState = (0, _react.useState)(false),
|
|
40
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
41
|
+
isMounted = _useState2[0],
|
|
42
|
+
setIsMounted = _useState2[1];
|
|
43
|
+
|
|
44
|
+
var _useState3 = (0, _react.useState)(false),
|
|
45
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
46
|
+
isPlayed = _useState4[0],
|
|
47
|
+
setIsPlayed = _useState4[1];
|
|
48
|
+
|
|
49
|
+
var translate = (0, _react.useCallback)(function (id) {
|
|
50
|
+
return emitEvent({
|
|
51
|
+
type: 'translate',
|
|
52
|
+
payload: id
|
|
53
|
+
});
|
|
54
|
+
}, [emitEvent]); // Setted when is mounted
|
|
55
|
+
|
|
56
|
+
(0, _react.useEffect)(function () {
|
|
57
|
+
setIsMounted(true);
|
|
58
|
+
return function () {
|
|
59
|
+
setIsMounted(false);
|
|
60
|
+
};
|
|
61
|
+
}, []); // Get translated voices, todo: translate this in arcade translateProps i18n.helper.js
|
|
62
|
+
|
|
63
|
+
var getVoice = (0, _react.useCallback)(function (_ref2) {
|
|
64
|
+
var id = _ref2.id,
|
|
65
|
+
_ref2$type = _ref2.type,
|
|
66
|
+
type = _ref2$type === void 0 ? 'base' : _ref2$type;
|
|
67
|
+
var usedVoices = translate('usedVoices');
|
|
68
|
+
var gameChars = translate('gameCharacters');
|
|
69
|
+
|
|
70
|
+
if (type === 'base') {
|
|
71
|
+
return usedVoices === null || usedVoices === void 0 ? void 0 : usedVoices[id];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (type === 'character') {
|
|
75
|
+
var _gameChars$id;
|
|
76
|
+
|
|
77
|
+
return gameChars === null || gameChars === void 0 ? void 0 : (_gameChars$id = gameChars[id]) === null || _gameChars$id === void 0 ? void 0 : _gameChars$id.voiceId;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return null;
|
|
81
|
+
}, [translate]);
|
|
82
|
+
var playSpeech = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
83
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(payload) {
|
|
84
|
+
var url;
|
|
85
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
86
|
+
while (1) {
|
|
87
|
+
switch (_context.prev = _context.next) {
|
|
88
|
+
case 0:
|
|
89
|
+
if (!(payload.voiceId && payload.text)) {
|
|
90
|
+
_context.next = 6;
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
_context.next = 3;
|
|
95
|
+
return emitEvent({
|
|
96
|
+
type: 'getSpeech',
|
|
97
|
+
payload: payload
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
case 3:
|
|
101
|
+
url = _context.sent;
|
|
102
|
+
playSound(url, 'tts');
|
|
103
|
+
setIsPlayed(true);
|
|
104
|
+
|
|
105
|
+
case 6:
|
|
106
|
+
case "end":
|
|
107
|
+
return _context.stop();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}, _callee);
|
|
111
|
+
}));
|
|
112
|
+
|
|
113
|
+
return function (_x) {
|
|
114
|
+
return _ref3.apply(this, arguments);
|
|
115
|
+
};
|
|
116
|
+
}(), [emitEvent, playSound]);
|
|
117
|
+
(0, _react.useEffect)(function () {
|
|
118
|
+
if (isMounted && !isPlayed) {
|
|
119
|
+
if (audioType === 'voice' && voice !== null && voice !== void 0 && voice.id) {
|
|
120
|
+
var voiceId = getVoice(voice);
|
|
121
|
+
playSpeech({
|
|
122
|
+
voiceId: voiceId,
|
|
123
|
+
text: text
|
|
124
|
+
});
|
|
125
|
+
} else if (audioType === 'file') {
|
|
126
|
+
playSound(audio === null || audio === void 0 ? void 0 : audio.url);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return function () {
|
|
131
|
+
stop();
|
|
132
|
+
};
|
|
133
|
+
}, [getVoice, playSpeech, isMounted, playSound, stop, voice, text, audioType, audio === null || audio === void 0 ? void 0 : audio.url, audio, isPlayed]);
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
var _default = useEkho;
|
|
137
|
+
exports.default = _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.
|
|
5
|
+
"version": "1.8.1",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"files": [
|
|
8
8
|
"dist",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@gamelearn/arcade-styles": "0.7.2",
|
|
17
|
-
"@gamelearn/arcade-three-core": "1.
|
|
17
|
+
"@gamelearn/arcade-three-core": "1.1.10",
|
|
18
18
|
"@react-three/drei": "^7.20.0",
|
|
19
19
|
"@react-three/fiber": "^7.0.17",
|
|
20
20
|
"@testing-library/jest-dom": "5.11.4",
|