@micromag/screen-conversation 0.3.390 → 0.3.396
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/es/index.js +32 -6
- package/lib/index.js +32 -6
- package/package.json +13 -13
package/es/index.js
CHANGED
|
@@ -176,6 +176,7 @@ var propTypes = {
|
|
|
176
176
|
// layout: PropTypes.oneOf(['normal']),
|
|
177
177
|
title: PropTypes.headingElement,
|
|
178
178
|
timing: PropTypes$1.oneOf(['instant', 'sequence']),
|
|
179
|
+
readingSpeed: PropTypes$1.number,
|
|
179
180
|
spacing: PropTypes$1.number,
|
|
180
181
|
background: PropTypes.backgroundElement,
|
|
181
182
|
header: PropTypes.header,
|
|
@@ -191,6 +192,7 @@ var defaultProps = {
|
|
|
191
192
|
// layout: 'normal',
|
|
192
193
|
title: null,
|
|
193
194
|
timing: 'sequence',
|
|
195
|
+
readingSpeed: 255,
|
|
194
196
|
spacing: 20,
|
|
195
197
|
background: null,
|
|
196
198
|
header: null,
|
|
@@ -206,6 +208,7 @@ var ConversationScreen = function ConversationScreen(_ref) {
|
|
|
206
208
|
var _ref6;
|
|
207
209
|
var title = _ref.title,
|
|
208
210
|
timingMode = _ref.timing,
|
|
211
|
+
readingSpeed = _ref.readingSpeed,
|
|
209
212
|
spacing = _ref.spacing,
|
|
210
213
|
background = _ref.background,
|
|
211
214
|
header = _ref.header,
|
|
@@ -283,25 +286,37 @@ var ConversationScreen = function ConversationScreen(_ref) {
|
|
|
283
286
|
}, [conversationState, setConversationState]);
|
|
284
287
|
|
|
285
288
|
// sequence timings
|
|
286
|
-
var defaultTimingFactor = 40;
|
|
287
289
|
var defaultHesitationDelay = 1000;
|
|
290
|
+
var imageReadDelay = 5000; // 5 seconds
|
|
291
|
+
var millisecondsPerWord = 60 * 1000 / readingSpeed;
|
|
288
292
|
var filteredMessages = (messages || []).filter(function (m) {
|
|
289
293
|
return m !== null;
|
|
290
294
|
});
|
|
291
295
|
var timings = filteredMessages.map(function (messageParams, messageI) {
|
|
292
296
|
var _ref3 = messageParams || {},
|
|
293
297
|
_ref3$timing = _ref3.timing,
|
|
294
|
-
timing = _ref3$timing === void 0 ? null : _ref3$timing
|
|
295
|
-
_ref3
|
|
296
|
-
message = _ref3$message === void 0 ? null : _ref3$message;
|
|
298
|
+
timing = _ref3$timing === void 0 ? null : _ref3$timing;
|
|
299
|
+
_ref3.message;
|
|
297
300
|
if (timing !== null) {
|
|
298
301
|
return timing;
|
|
299
302
|
}
|
|
300
303
|
if (messageI === 0) {
|
|
301
304
|
return 0;
|
|
302
305
|
}
|
|
303
|
-
|
|
304
|
-
|
|
306
|
+
|
|
307
|
+
// the trick here is to estimate "how long it take to read the previous message"
|
|
308
|
+
// instead of "how long does it take to write this message".
|
|
309
|
+
var previous = filteredMessages[messageI - 1];
|
|
310
|
+
|
|
311
|
+
// counting words: only keep whitespaces and alphanumeric characters, then split of whitespaces
|
|
312
|
+
var wordCount = previous.message.replace(/[^\w\d\s]/g, '').trim().split(/\s/g).length;
|
|
313
|
+
var finalTimeMs = wordCount * millisecondsPerWord;
|
|
314
|
+
|
|
315
|
+
// if the message includes an image, add some more time to "read" it
|
|
316
|
+
if (previous.image) {
|
|
317
|
+
finalTimeMs += imageReadDelay;
|
|
318
|
+
}
|
|
319
|
+
return Math.max(finalTimeMs, 2000);
|
|
305
320
|
});
|
|
306
321
|
var hesitationTimings = filteredMessages.map(function () {
|
|
307
322
|
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
@@ -509,6 +524,17 @@ var definition = {
|
|
|
509
524
|
"value": "Conversation"
|
|
510
525
|
}]
|
|
511
526
|
})
|
|
527
|
+
}, {
|
|
528
|
+
name: 'readingSpeed',
|
|
529
|
+
type: 'number',
|
|
530
|
+
defaultValue: 255,
|
|
531
|
+
label: defineMessage({
|
|
532
|
+
id: "QjbLZ9",
|
|
533
|
+
defaultMessage: [{
|
|
534
|
+
"type": 0,
|
|
535
|
+
"value": "Reading speed (in Words Per Minute)"
|
|
536
|
+
}]
|
|
537
|
+
})
|
|
512
538
|
}, {
|
|
513
539
|
name: 'background',
|
|
514
540
|
type: 'background',
|
package/lib/index.js
CHANGED
|
@@ -199,6 +199,7 @@ var propTypes = {
|
|
|
199
199
|
// layout: PropTypes.oneOf(['normal']),
|
|
200
200
|
title: core.PropTypes.headingElement,
|
|
201
201
|
timing: PropTypes__default["default"].oneOf(['instant', 'sequence']),
|
|
202
|
+
readingSpeed: PropTypes__default["default"].number,
|
|
202
203
|
spacing: PropTypes__default["default"].number,
|
|
203
204
|
background: core.PropTypes.backgroundElement,
|
|
204
205
|
header: core.PropTypes.header,
|
|
@@ -214,6 +215,7 @@ var defaultProps = {
|
|
|
214
215
|
// layout: 'normal',
|
|
215
216
|
title: null,
|
|
216
217
|
timing: 'sequence',
|
|
218
|
+
readingSpeed: 255,
|
|
217
219
|
spacing: 20,
|
|
218
220
|
background: null,
|
|
219
221
|
header: null,
|
|
@@ -229,6 +231,7 @@ var ConversationScreen = function ConversationScreen(_ref) {
|
|
|
229
231
|
var _ref6;
|
|
230
232
|
var title = _ref.title,
|
|
231
233
|
timingMode = _ref.timing,
|
|
234
|
+
readingSpeed = _ref.readingSpeed,
|
|
232
235
|
spacing = _ref.spacing,
|
|
233
236
|
background = _ref.background,
|
|
234
237
|
header = _ref.header,
|
|
@@ -306,25 +309,37 @@ var ConversationScreen = function ConversationScreen(_ref) {
|
|
|
306
309
|
}, [conversationState, setConversationState]);
|
|
307
310
|
|
|
308
311
|
// sequence timings
|
|
309
|
-
var defaultTimingFactor = 40;
|
|
310
312
|
var defaultHesitationDelay = 1000;
|
|
313
|
+
var imageReadDelay = 5000; // 5 seconds
|
|
314
|
+
var millisecondsPerWord = 60 * 1000 / readingSpeed;
|
|
311
315
|
var filteredMessages = (messages || []).filter(function (m) {
|
|
312
316
|
return m !== null;
|
|
313
317
|
});
|
|
314
318
|
var timings = filteredMessages.map(function (messageParams, messageI) {
|
|
315
319
|
var _ref3 = messageParams || {},
|
|
316
320
|
_ref3$timing = _ref3.timing,
|
|
317
|
-
timing = _ref3$timing === void 0 ? null : _ref3$timing
|
|
318
|
-
_ref3
|
|
319
|
-
message = _ref3$message === void 0 ? null : _ref3$message;
|
|
321
|
+
timing = _ref3$timing === void 0 ? null : _ref3$timing;
|
|
322
|
+
_ref3.message;
|
|
320
323
|
if (timing !== null) {
|
|
321
324
|
return timing;
|
|
322
325
|
}
|
|
323
326
|
if (messageI === 0) {
|
|
324
327
|
return 0;
|
|
325
328
|
}
|
|
326
|
-
|
|
327
|
-
|
|
329
|
+
|
|
330
|
+
// the trick here is to estimate "how long it take to read the previous message"
|
|
331
|
+
// instead of "how long does it take to write this message".
|
|
332
|
+
var previous = filteredMessages[messageI - 1];
|
|
333
|
+
|
|
334
|
+
// counting words: only keep whitespaces and alphanumeric characters, then split of whitespaces
|
|
335
|
+
var wordCount = previous.message.replace(/[^\w\d\s]/g, '').trim().split(/\s/g).length;
|
|
336
|
+
var finalTimeMs = wordCount * millisecondsPerWord;
|
|
337
|
+
|
|
338
|
+
// if the message includes an image, add some more time to "read" it
|
|
339
|
+
if (previous.image) {
|
|
340
|
+
finalTimeMs += imageReadDelay;
|
|
341
|
+
}
|
|
342
|
+
return Math.max(finalTimeMs, 2000);
|
|
328
343
|
});
|
|
329
344
|
var hesitationTimings = filteredMessages.map(function () {
|
|
330
345
|
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
@@ -532,6 +547,17 @@ var definition = {
|
|
|
532
547
|
"value": "Conversation"
|
|
533
548
|
}]
|
|
534
549
|
})
|
|
550
|
+
}, {
|
|
551
|
+
name: 'readingSpeed',
|
|
552
|
+
type: 'number',
|
|
553
|
+
defaultValue: 255,
|
|
554
|
+
label: reactIntl.defineMessage({
|
|
555
|
+
id: "QjbLZ9",
|
|
556
|
+
defaultMessage: [{
|
|
557
|
+
"type": 0,
|
|
558
|
+
"value": "Reading speed (in Words Per Minute)"
|
|
559
|
+
}]
|
|
560
|
+
})
|
|
535
561
|
}, {
|
|
536
562
|
name: 'background',
|
|
537
563
|
type: 'background',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/screen-conversation",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.396",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [
|
|
@@ -50,17 +50,17 @@
|
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@babel/runtime": "^7.13.10",
|
|
53
|
-
"@micromag/core": "^0.3.
|
|
54
|
-
"@micromag/element-background": "^0.3.
|
|
55
|
-
"@micromag/element-container": "^0.3.
|
|
56
|
-
"@micromag/element-footer": "^0.3.
|
|
57
|
-
"@micromag/element-header": "^0.3.
|
|
58
|
-
"@micromag/element-heading": "^0.3.
|
|
59
|
-
"@micromag/element-layout": "^0.3.
|
|
60
|
-
"@micromag/element-scroll": "^0.3.
|
|
61
|
-
"@micromag/element-text": "^0.3.
|
|
62
|
-
"@micromag/element-visual": "^0.3.
|
|
63
|
-
"@micromag/transforms": "^0.3.
|
|
53
|
+
"@micromag/core": "^0.3.396",
|
|
54
|
+
"@micromag/element-background": "^0.3.396",
|
|
55
|
+
"@micromag/element-container": "^0.3.396",
|
|
56
|
+
"@micromag/element-footer": "^0.3.396",
|
|
57
|
+
"@micromag/element-header": "^0.3.396",
|
|
58
|
+
"@micromag/element-heading": "^0.3.396",
|
|
59
|
+
"@micromag/element-layout": "^0.3.396",
|
|
60
|
+
"@micromag/element-scroll": "^0.3.396",
|
|
61
|
+
"@micromag/element-text": "^0.3.396",
|
|
62
|
+
"@micromag/element-visual": "^0.3.396",
|
|
63
|
+
"@micromag/transforms": "^0.3.396",
|
|
64
64
|
"classnames": "^2.2.6",
|
|
65
65
|
"lodash": "^4.17.21",
|
|
66
66
|
"prop-types": "^15.7.2",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"access": "public",
|
|
72
72
|
"registry": "https://registry.npmjs.org/"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "6f09831a86f03a570096ccc769aa2ecb3bcba693"
|
|
75
75
|
}
|