@micromag/screen-quiz 0.3.767 → 0.3.771

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.
Files changed (2) hide show
  1. package/es/index.js +45 -11
  2. package/package.json +15 -15
package/es/index.js CHANGED
@@ -742,7 +742,8 @@ var QuizScreen = function QuizScreen(_ref) {
742
742
  trackScreenEvent('click_answer', "".concat(userAnswerIndex + 1, ": ").concat(answer.label.body), {
743
743
  linkType: 'quiz_answer',
744
744
  answer: answer,
745
- answerIndex: answerI
745
+ answerIndex: answerI,
746
+ isGood: answer.good || false
746
747
  });
747
748
  }, [userAnswerIndex, setUserAnswerIndex, trackScreenEvent, answers]);
748
749
  useEffect(function () {
@@ -784,6 +785,15 @@ var QuizScreen = function QuizScreen(_ref) {
784
785
  var onScrolledNotBottom = useCallback(function () {
785
786
  setScrolledBottom(false);
786
787
  }, [setScrolledBottom]);
788
+ var onScrolledTrigger = useCallback(function () {
789
+ var trigger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
790
+ if (trigger !== null) {
791
+ var scrollPercent = Math.round(trigger * 100);
792
+ trackScreenEvent('scroll', scrollPercent, {
793
+ scrollPercent: scrollPercent
794
+ });
795
+ }
796
+ }, [trackScreenEvent]);
787
797
  var _useState5 = useState(false),
788
798
  _useState6 = _slicedToArray(_useState5, 2),
789
799
  hasScroll = _useState6[0],
@@ -822,6 +832,7 @@ var QuizScreen = function QuizScreen(_ref) {
822
832
  // disabled={scrollingDisabled || userAnswerIndex !== null}
823
833
  ,
824
834
  disabled: scrollingDisabled,
835
+ onScrolledTrigger: onScrolledTrigger,
825
836
  onScrolledBottom: onScrolledBottom,
826
837
  onScrolledNotBottom: onScrolledNotBottom,
827
838
  onScrollHeightChange: onScrollHeightChange,
@@ -1372,11 +1383,24 @@ var QuizMultipleScreen = function QuizMultipleScreen(_ref) {
1372
1383
  return currentPoints >= (lastPoints || 0) && currentPoints >= points ? result : lastResult;
1373
1384
  }, null);
1374
1385
  }, [isResults, results, currentPoints, stateId, stateIndex]);
1375
- var _ref10 = currentResult || {},
1376
- _ref10$background = _ref10.background,
1377
- resultBackground = _ref10$background === void 0 ? null : _ref10$background,
1378
- _ref10$layout = _ref10.layout,
1379
- resultLayout = _ref10$layout === void 0 ? null : _ref10$layout;
1386
+ useEffect(function () {
1387
+ if (currentResult !== null && isResults) {
1388
+ var _ref10 = currentResult || {},
1389
+ _ref10$title = _ref10.title,
1390
+ resultTitle = _ref10$title === void 0 ? null : _ref10$title,
1391
+ _ref10$points = _ref10.points,
1392
+ points = _ref10$points === void 0 ? null : _ref10$points;
1393
+ trackScreenEvent('view_result', "Result: ".concat((resultTitle === null || resultTitle === void 0 ? void 0 : resultTitle.body) || 'No title'), {
1394
+ resultPoints: points || null,
1395
+ userPoints: currentPoints || null
1396
+ });
1397
+ }
1398
+ }, [currentResult, currentPoints, isResults, trackScreenEvent]);
1399
+ var _ref11 = currentResult || {},
1400
+ _ref11$background = _ref11.background,
1401
+ resultBackground = _ref11$background === void 0 ? null : _ref11$background,
1402
+ _ref11$layout = _ref11.layout,
1403
+ resultLayout = _ref11$layout === void 0 ? null : _ref11$layout;
1380
1404
  var _useQuizCreate = useQuizCreate({
1381
1405
  screenId: screenId
1382
1406
  }),
@@ -1436,8 +1460,8 @@ var QuizMultipleScreen = function QuizMultipleScreen(_ref) {
1436
1460
  _useState6 = _slicedToArray(_useState5, 2),
1437
1461
  scrolledBottom = _useState6[0],
1438
1462
  setScrolledBottom = _useState6[1];
1439
- var onScrolledBottom = useCallback(function (_ref11) {
1440
- var initial = _ref11.initial;
1463
+ var onScrolledBottom = useCallback(function (_ref12) {
1464
+ var initial = _ref12.initial;
1441
1465
  if (initial) {
1442
1466
  trackScreenEvent('scroll', 'Screen');
1443
1467
  }
@@ -1446,13 +1470,22 @@ var QuizMultipleScreen = function QuizMultipleScreen(_ref) {
1446
1470
  var onScrolledNotBottom = useCallback(function () {
1447
1471
  setScrolledBottom(false);
1448
1472
  }, [setScrolledBottom]);
1473
+ var onScrolledTrigger = useCallback(function () {
1474
+ var trigger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1475
+ if (trigger !== null) {
1476
+ var scrollPercent = Math.round(trigger * 100);
1477
+ trackScreenEvent('scroll', scrollPercent, {
1478
+ scrollPercent: scrollPercent
1479
+ });
1480
+ }
1481
+ }, [trackScreenEvent]);
1449
1482
  var _useState7 = useState(false),
1450
1483
  _useState8 = _slicedToArray(_useState7, 2),
1451
1484
  hasScroll = _useState8[0],
1452
1485
  setHasScroll = _useState8[1];
1453
- var onScrollHeightChange = useCallback(function (_ref12) {
1454
- var _ref12$canScroll = _ref12.canScroll,
1455
- canScroll = _ref12$canScroll === void 0 ? false : _ref12$canScroll;
1486
+ var onScrollHeightChange = useCallback(function (_ref13) {
1487
+ var _ref13$canScroll = _ref13.canScroll,
1488
+ canScroll = _ref13$canScroll === void 0 ? false : _ref13$canScroll;
1456
1489
  setHasScroll(canScroll);
1457
1490
  }, [setHasScroll]);
1458
1491
  var onQuizReset = useCallback(function () {
@@ -1503,6 +1536,7 @@ var QuizMultipleScreen = function QuizMultipleScreen(_ref) {
1503
1536
  }, /*#__PURE__*/React.createElement(Header, header)) : null, /*#__PURE__*/React.createElement(Scroll, {
1504
1537
  verticalAlign: verticalAlign,
1505
1538
  disabled: scrollingDisabled,
1539
+ onScrolledTrigger: onScrolledTrigger,
1506
1540
  onScrolledBottom: onScrolledBottom,
1507
1541
  onScrolledNotBottom: onScrolledNotBottom,
1508
1542
  onScrollHeightChange: onScrollHeightChange,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/screen-quiz",
3
- "version": "0.3.767",
3
+ "version": "0.3.771",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "keywords": [
@@ -63,19 +63,19 @@
63
63
  "@fortawesome/fontawesome-svg-core": "^6.5.2",
64
64
  "@fortawesome/free-solid-svg-icons": "^6.5.2",
65
65
  "@fortawesome/react-fontawesome": "^0.2.0",
66
- "@micromag/core": "^0.3.767",
67
- "@micromag/data": "^0.3.767",
68
- "@micromag/element-background": "^0.3.767",
69
- "@micromag/element-button": "^0.3.767",
70
- "@micromag/element-container": "^0.3.767",
71
- "@micromag/element-footer": "^0.3.767",
72
- "@micromag/element-header": "^0.3.767",
73
- "@micromag/element-heading": "^0.3.767",
74
- "@micromag/element-layout": "^0.3.767",
75
- "@micromag/element-scroll": "^0.3.767",
76
- "@micromag/element-text": "^0.3.767",
77
- "@micromag/element-visual": "^0.3.767",
78
- "@micromag/transforms": "^0.3.767",
66
+ "@micromag/core": "^0.3.769",
67
+ "@micromag/data": "^0.3.769",
68
+ "@micromag/element-background": "^0.3.771",
69
+ "@micromag/element-button": "^0.3.769",
70
+ "@micromag/element-container": "^0.3.769",
71
+ "@micromag/element-footer": "^0.3.771",
72
+ "@micromag/element-header": "^0.3.771",
73
+ "@micromag/element-heading": "^0.3.769",
74
+ "@micromag/element-layout": "^0.3.769",
75
+ "@micromag/element-scroll": "^0.3.771",
76
+ "@micromag/element-text": "^0.3.771",
77
+ "@micromag/element-visual": "^0.3.771",
78
+ "@micromag/transforms": "^0.3.769",
79
79
  "@react-spring/core": "^9.6.1",
80
80
  "@react-spring/web": "^9.6.1",
81
81
  "classnames": "^2.2.6",
@@ -89,5 +89,5 @@
89
89
  "access": "public",
90
90
  "registry": "https://registry.npmjs.org/"
91
91
  },
92
- "gitHead": "af57b08ccc073db83b6480e3a43fe14e6f36e0f6"
92
+ "gitHead": "a74bf984979f2bee58b57859808a8d9f6fa31f4a"
93
93
  }