@gamelearn/arcade-components 2.3.0 → 2.4.2

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.
@@ -21,6 +21,20 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
21
21
 
22
22
  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; }
23
23
 
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
+
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
+
28
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
29
+
30
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
31
+
32
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
33
+
34
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
35
+
36
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
37
+
24
38
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
39
 
26
40
  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."); }
@@ -34,7 +48,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
34
48
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
49
 
36
50
  var AutoEvaluation = function AutoEvaluation(_ref) {
37
- var _questions$currentQue;
51
+ var _questions$currentQue, _surveyData$current$q3, _surveyData$current$q4;
38
52
 
39
53
  var description = _ref.description,
40
54
  questions = _ref.questions,
@@ -57,15 +71,15 @@ var AutoEvaluation = function AutoEvaluation(_ref) {
57
71
  currentQuestion = _useState6[0],
58
72
  setCurrentQuestion = _useState6[1];
59
73
 
60
- var _useState7 = (0, _react.useState)(null),
74
+ var _useState7 = (0, _react.useState)({
75
+ current: {
76
+ questions: [],
77
+ type: type
78
+ }
79
+ }),
61
80
  _useState8 = _slicedToArray(_useState7, 2),
62
- optionSelected = _useState8[0],
63
- selectOption = _useState8[1];
64
-
65
- var surveyData = (0, _react.useRef)({
66
- questions: [],
67
- type: type
68
- });
81
+ surveyData = _useState8[0],
82
+ setSurveyData = _useState8[1];
69
83
 
70
84
  var _soundActions = _slicedToArray(soundActions, 1),
71
85
  play = _soundActions[0];
@@ -91,18 +105,49 @@ var AutoEvaluation = function AutoEvaluation(_ref) {
91
105
  }
92
106
  }, [questions, phase]);
93
107
 
94
- var handleNextQuestion = function handleNextQuestion() {
108
+ var handleNextQuestion = function handleNextQuestion(optionSelected) {
109
+ var _surveyData$current$q;
110
+
111
+ var backward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
112
+ var answer = optionSelected !== null ? optionSelected : (_surveyData$current$q = surveyData.current.questions.find(function (q) {
113
+ return q.id === questions[currentQuestion].id;
114
+ })) === null || _surveyData$current$q === void 0 ? void 0 : _surveyData$current$q.answer;
95
115
  play('click-ui');
96
- surveyData.current.questions.push({
97
- id: questions[currentQuestion].id,
98
- answer: optionSelected
99
- });
100
116
 
101
- if (currentQuestion === questions.length - 1) {
102
- setFinish(true);
117
+ if (!backward) {
118
+ var questionIndex = surveyData.current.questions.findIndex(function (q) {
119
+ return q.id === questions[currentQuestion].id;
120
+ });
121
+
122
+ var updatedQuestions = _toConsumableArray(surveyData.current.questions);
123
+
124
+ if (questionIndex > -1) {
125
+ updatedQuestions.splice(questionIndex, 1, {
126
+ id: questions[currentQuestion].id,
127
+ answer: answer
128
+ });
129
+ } else {
130
+ updatedQuestions.push({
131
+ id: questions[currentQuestion].id,
132
+ answer: answer
133
+ });
134
+ }
135
+
136
+ setSurveyData(_objectSpread(_objectSpread({}, surveyData), {}, {
137
+ current: _objectSpread(_objectSpread({}, surveyData.current), {}, {
138
+ questions: updatedQuestions
139
+ })
140
+ }));
141
+
142
+ if (currentQuestion === questions.length - 1) {
143
+ setFinish(true);
144
+ } else {
145
+ setCurrentQuestion(currentQuestion + 1);
146
+ setFinish(false);
147
+ }
103
148
  } else {
104
- selectOption(null);
105
- setCurrentQuestion(currentQuestion + 1);
149
+ setCurrentQuestion(currentQuestion - 1);
150
+ setFinish(false);
106
151
  }
107
152
  };
108
153
 
@@ -133,27 +178,40 @@ var AutoEvaluation = function AutoEvaluation(_ref) {
133
178
  }, /*#__PURE__*/_react.default.createElement("ul", {
134
179
  className: "survey--points"
135
180
  }, Array(11).fill(0).map(function (_, i) {
181
+ var _surveyData$current$q2;
182
+
136
183
  return /*#__PURE__*/_react.default.createElement("li", {
137
184
  key: "".concat(0 + i),
138
185
  onClick: function onClick() {
139
- return selectOption(i);
186
+ handleNextQuestion(i, false);
140
187
  },
141
- className: "survey--points__item ".concat(optionSelected === i ? 'selected' : '')
188
+ className: "survey--points__item ".concat(((_surveyData$current$q2 = surveyData.current.questions[currentQuestion]) === null || _surveyData$current$q2 === void 0 ? void 0 : _surveyData$current$q2.answer) === i ? 'selected' : '')
142
189
  }, i);
143
190
  }))))), /*#__PURE__*/_react.default.createElement("div", {
144
191
  className: "test--buttons next"
145
- }, finish ? /*#__PURE__*/_react.default.createElement("button", {
192
+ }, /*#__PURE__*/_react.default.createElement("button", {
193
+ type: "button",
194
+ disabled: currentQuestion === 0,
195
+ onClick: function onClick() {
196
+ return handleNextQuestion(null, true);
197
+ },
198
+ className: "gat--btn__navigation ".concat(currentQuestion === 0 ? 'disabled' : '')
199
+ }, /*#__PURE__*/_react.default.createElement("span", {
200
+ className: (0, _LangIsRtl.default)() ? 'icon-next' : 'icon-back'
201
+ })), finish ? /*#__PURE__*/_react.default.createElement("button", {
146
202
  type: "button",
147
- className: "gat--btn gat--btn__primary auto-evaluation__button not-transition",
148
203
  onClick: function onClick() {
149
204
  setPhase('end');
150
205
  play('click-ui');
151
- }
206
+ },
207
+ className: "gat--btn gat--btn__primary auto-evaluation__button not-transition"
152
208
  }, /*#__PURE__*/_react.default.createElement("span", null, translate('auto-evaluation.end'))) : /*#__PURE__*/_react.default.createElement("button", {
153
- onClick: handleNextQuestion,
154
209
  type: "button",
155
- disabled: optionSelected === null,
156
- className: "gat--btn__navigation ".concat(optionSelected === null ? 'disabled' : '')
210
+ onClick: function onClick() {
211
+ return handleNextQuestion(null, false);
212
+ },
213
+ disabled: ((_surveyData$current$q3 = surveyData.current.questions[currentQuestion]) === null || _surveyData$current$q3 === void 0 ? void 0 : _surveyData$current$q3.answer) === undefined,
214
+ className: "gat--btn__navigation ".concat(((_surveyData$current$q4 = surveyData.current.questions[currentQuestion]) === null || _surveyData$current$q4 === void 0 ? void 0 : _surveyData$current$q4.answer) === undefined ? 'disabled' : '')
157
215
  }, /*#__PURE__*/_react.default.createElement("span", {
158
216
  className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
159
217
  })))), phase === 'end' && /*#__PURE__*/_react.default.createElement(_EndScreen.default, {
@@ -57,16 +57,18 @@ var DecisionBody = function DecisionBody(_ref) {
57
57
  var choose = function choose(option) {
58
58
  selectChoice(option);
59
59
 
60
- if (inherited && showingResults && failed) {
60
+ if (showingResults && failed) {
61
61
  changeOption(option);
62
62
  }
63
+
64
+ onNext(option);
63
65
  };
64
66
 
65
67
  var canNext = !showingResults && selectedChoice.id !== undefined || !failed;
66
68
  var optionsProps = {
67
69
  inherited: inherited,
68
70
  selectedChoice: selectedChoice,
69
- selectChoice: !showingResults || inherited && failed ? choose : noop,
71
+ selectChoice: failed ? choose : noop,
70
72
  options: options,
71
73
  showingResults: showingResults
72
74
  };
@@ -88,19 +90,13 @@ var DecisionBody = function DecisionBody(_ref) {
88
90
  dir: "auto"
89
91
  }, /*#__PURE__*/_react.default.createElement(_Options.default, optionsProps)), /*#__PURE__*/_react.default.createElement("div", {
90
92
  className: "popup--buttons"
91
- }, required ? /*#__PURE__*/_react.default.createElement("button", {
92
- type: "button",
93
- className: "gat--btn gat--btn__primary ".concat(selectedChoice.id !== undefined ? '' : 'disabled'),
94
- onClick: function onClick() {
95
- return canNext ? onNext(selectedChoice) : onBack(selectedChoice);
96
- }
97
- }, canNext || selectedChoice.id === undefined ? translate('screens.continue') : translate('tests.retry')) : /*#__PURE__*/_react.default.createElement("button", {
93
+ }, !failed ? /*#__PURE__*/_react.default.createElement("button", {
98
94
  type: "button",
99
95
  className: "gat--btn gat--btn__primary ".concat(selectedChoice.id !== undefined ? '' : 'disabled'),
100
96
  onClick: function onClick() {
101
- return onNext(selectedChoice);
97
+ return required && canNext ? onNext(selectedChoice) : onBack(selectedChoice);
102
98
  }
103
- }, translate('screens.continue'))));
99
+ }, translate('screens.continue')) : null));
104
100
  };
105
101
 
106
102
  var ComplexDecision = function ComplexDecision() {
@@ -186,14 +186,14 @@ var DecisionComponent = function DecisionComponent(_ref) {
186
186
  playSound('fail');
187
187
 
188
188
  if (!branched) {
189
- if (inherited) {
190
- emitEvent({
191
- type: 'addPoints',
192
- payload: choice.rewards,
193
- finish: false,
194
- complex: true
195
- });
196
- } else if (!required) {
189
+ emitEvent({
190
+ type: 'addPoints',
191
+ payload: choice.rewards,
192
+ finish: false,
193
+ complex: true
194
+ });
195
+
196
+ if (!required) {
197
197
  setResultChoice({});
198
198
  selectView('options');
199
199
  }
@@ -1,17 +1,13 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _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 = _interopRequireWildcard(require("react"));
11
-
12
- 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); }
8
+ var _react = _interopRequireDefault(require("react"));
13
9
 
14
- 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; }
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
11
 
16
12
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
13
 
@@ -19,18 +15,6 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
19
15
 
20
16
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
17
 
22
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
23
-
24
- 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."); }
25
-
26
- 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); }
27
-
28
- 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; }
29
-
30
- 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; }
31
-
32
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
33
-
34
18
  var OPTIONS = ['yes', 'no'];
35
19
  var LETTERS = ['A', 'B'];
36
20
 
@@ -38,18 +22,12 @@ var ApplicableBox = function ApplicableBox(_ref) {
38
22
  var setSurveyData = _ref.setSurveyData,
39
23
  survey = _ref.survey,
40
24
  id = _ref.id,
41
- enable = _ref.enable,
42
- translate = _ref.translate;
43
-
44
- var _useState = (0, _react.useState)(),
45
- _useState2 = _slicedToArray(_useState, 2),
46
- optionSelected = _useState2[0],
47
- selectOption = _useState2[1];
25
+ translate = _ref.translate,
26
+ changePage = _ref.changePage;
48
27
 
49
28
  var select = function select(option) {
50
- enable(true);
51
- selectOption(option);
52
29
  setSurveyData(_objectSpread(_objectSpread({}, survey), {}, _defineProperty({}, id, option)));
30
+ changePage();
53
31
  };
54
32
 
55
33
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -60,7 +38,7 @@ var ApplicableBox = function ApplicableBox(_ref) {
60
38
  onClick: function onClick() {
61
39
  return select(option);
62
40
  },
63
- className: "survey--response__item ".concat(optionSelected === option ? 'selected' : '')
41
+ className: "survey--response__item ".concat(survey[id] === option ? 'selected' : '')
64
42
  }, /*#__PURE__*/_react.default.createElement("div", {
65
43
  className: "survey--response__index"
66
44
  }, LETTERS[i]), /*#__PURE__*/_react.default.createElement("div", {
@@ -1,17 +1,13 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _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 = _interopRequireWildcard(require("react"));
11
-
12
- 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); }
8
+ var _react = _interopRequireDefault(require("react"));
13
9
 
14
- 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; }
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
11
 
16
12
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
13
 
@@ -19,36 +15,18 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
19
15
 
20
16
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
17
 
22
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
23
-
24
- 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."); }
25
-
26
- 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); }
27
-
28
- 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; }
29
-
30
- 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; }
31
-
32
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
33
-
34
18
  var OPINION_OPTIONS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
35
19
 
36
20
  var OpinionBox = function OpinionBox(_ref) {
37
21
  var setSurveyData = _ref.setSurveyData,
38
22
  survey = _ref.survey,
39
- enable = _ref.enable,
40
23
  id = _ref.id,
41
- translate = _ref.translate;
42
-
43
- var _useState = (0, _react.useState)(),
44
- _useState2 = _slicedToArray(_useState, 2),
45
- optionSelected = _useState2[0],
46
- selectOption = _useState2[1];
24
+ translate = _ref.translate,
25
+ changePage = _ref.changePage;
47
26
 
48
27
  var select = function select(option) {
49
- enable(true);
50
- selectOption(option);
51
28
  setSurveyData(_objectSpread(_objectSpread({}, survey), {}, _defineProperty({}, id, option)));
29
+ changePage();
52
30
  };
53
31
 
54
32
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -61,7 +39,7 @@ var OpinionBox = function OpinionBox(_ref) {
61
39
  onClick: function onClick() {
62
40
  return select(option);
63
41
  },
64
- className: "survey--points__item ".concat(optionSelected === option ? 'selected' : '')
42
+ className: "survey--points__item ".concat(survey[id] === option ? 'selected' : '')
65
43
  }, option);
66
44
  })), /*#__PURE__*/_react.default.createElement("div", {
67
45
  className: "survey--points__labels"
@@ -43,20 +43,16 @@ var INIT_SURVEY = {
43
43
  };
44
44
  var PAGES = [{
45
45
  component: _ApplicableBox.default,
46
- id: 'applicable',
47
- disableContinue: true
46
+ id: 'applicable'
48
47
  }, {
49
48
  component: _OpinionBox.default,
50
- id: 'opinion',
51
- disableContinue: true
49
+ id: 'opinion'
52
50
  }, {
53
51
  component: _TextBox.default,
54
- id: 'comments',
55
- disableContinue: true
52
+ id: 'comments'
56
53
  }, {
57
54
  component: _TextBox.default,
58
- id: 'suggestions',
59
- disableContinue: true
55
+ id: 'suggestions'
60
56
  }];
61
57
 
62
58
  var SurveyComponent = function SurveyComponent(_ref) {
@@ -73,15 +69,10 @@ var SurveyComponent = function SurveyComponent(_ref) {
73
69
  page = _useState4[0],
74
70
  setPage = _useState4[1];
75
71
 
76
- var _useState5 = (0, _react.useState)(true),
72
+ var _useState5 = (0, _react.useState)(false),
77
73
  _useState6 = _slicedToArray(_useState5, 2),
78
- disabled = _useState6[0],
79
- disable = _useState6[1];
80
-
81
- var _useState7 = (0, _react.useState)(false),
82
- _useState8 = _slicedToArray(_useState7, 2),
83
- finished = _useState8[0],
84
- finish = _useState8[1];
74
+ finished = _useState6[0],
75
+ finish = _useState6[1];
85
76
 
86
77
  var _soundActions = _slicedToArray(soundActions, 1),
87
78
  play = _soundActions[0];
@@ -94,15 +85,15 @@ var SurveyComponent = function SurveyComponent(_ref) {
94
85
  });
95
86
  };
96
87
 
97
- var changePage = function changePage() {
88
+ var _changePage = function changePage() {
89
+ var backward = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
98
90
  play('click-ui');
99
91
 
100
- if (page + 1 >= PAGES.length) {
92
+ if (!backward && page + 1 >= PAGES.length) {
101
93
  finish(true);
102
94
  } else {
103
- var nextPage = PAGES[page + 1];
104
- disable(nextPage ? nextPage.disableContinue : true);
105
- setPage(page + 1);
95
+ var destinationPage = backward ? page - 1 : page + 1;
96
+ setPage(destinationPage);
106
97
  }
107
98
  };
108
99
 
@@ -127,26 +118,18 @@ var SurveyComponent = function SurveyComponent(_ref) {
127
118
  ordinal: page + 1
128
119
  })), /*#__PURE__*/_react.default.createElement(View, {
129
120
  setSurveyData: setSurveyData,
130
- enable: function enable(boolean) {
131
- return disable(!boolean);
132
- },
133
121
  id: PAGES[page].id,
134
122
  survey: survey,
135
- translate: translate
123
+ translate: translate,
124
+ changePage: function changePage() {
125
+ return _changePage(false);
126
+ }
136
127
  })), /*#__PURE__*/_react.default.createElement("div", {
137
128
  className: "test--buttons next"
138
- }, !finished ? /*#__PURE__*/_react.default.createElement("button", {
129
+ }, finished ? /*#__PURE__*/_react.default.createElement("button", {
139
130
  id: "survey-button",
140
131
  type: "button",
141
- disabled: disabled,
142
- onClick: changePage,
143
- className: "gat--btn__navigation ".concat(disabled ? 'disabled' : '')
144
- }, /*#__PURE__*/_react.default.createElement("span", {
145
- className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
146
- })) : /*#__PURE__*/_react.default.createElement("button", {
147
- id: "survey-button",
148
- type: "button",
149
- disabled: disabled,
132
+ disabled: !survey[PAGES[page].id],
150
133
  onClick: function onClick() {
151
134
  play('click-ui');
152
135
  emitEvent({
@@ -154,8 +137,28 @@ var SurveyComponent = function SurveyComponent(_ref) {
154
137
  payload: survey
155
138
  });
156
139
  },
157
- className: "gat--btn gat--btn__primary ".concat(disabled ? 'disabled' : '', " not-transition")
158
- }, translate('survey.finish'))))));
140
+ className: "gat--btn gat--btn__primary ".concat(!survey[PAGES[page].id] ? 'disabled' : '', " not-transition")
141
+ }, translate('survey.finish')) : /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("button", {
142
+ id: "survey-button-back",
143
+ type: "button",
144
+ disabled: page === 0,
145
+ onClick: function onClick() {
146
+ return _changePage(true);
147
+ },
148
+ className: "gat--btn__navigation ".concat(page === 0 ? 'disabled' : '')
149
+ }, /*#__PURE__*/_react.default.createElement("span", {
150
+ className: (0, _LangIsRtl.default)() ? 'icon-next' : 'icon-back'
151
+ })), /*#__PURE__*/_react.default.createElement("button", {
152
+ id: "survey-button",
153
+ type: "button",
154
+ disabled: !survey[PAGES[page].id],
155
+ onClick: function onClick() {
156
+ return _changePage(false);
157
+ },
158
+ className: "gat--btn__navigation ".concat(!survey[PAGES[page].id] ? 'disabled' : '')
159
+ }, /*#__PURE__*/_react.default.createElement("span", {
160
+ className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
161
+ })))))));
159
162
  };
160
163
 
161
164
  var _default = SurveyComponent;
@@ -18,11 +18,9 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
18
18
  var TextBox = function TextBox(_ref) {
19
19
  var setSurveyData = _ref.setSurveyData,
20
20
  survey = _ref.survey,
21
- enable = _ref.enable,
22
21
  id = _ref.id;
23
22
 
24
23
  var writeText = function writeText(text) {
25
- enable(Boolean(text));
26
24
  setSurveyData(_objectSpread(_objectSpread({}, survey), {}, _defineProperty({}, id, text)));
27
25
  };
28
26
 
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@gamelearn/arcade-components",
3
3
  "author": "Gamelearn",
4
4
  "license": "unlicense",
5
- "version": "2.3.0",
5
+ "version": "2.4.2",
6
6
  "main": "dist/index.js",
7
7
  "files": [
8
8
  "dist",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@babel/runtime": "^7.18.6",
17
- "@gamelearn/arcade-styles": "2.4.0",
17
+ "@gamelearn/arcade-styles": "2.5.2",
18
18
  "@gamelearn/arcade-three-core": "1.17.1",
19
19
  "@react-three/drei": "9.4.3",
20
20
  "@react-three/fiber": "8.0.17",