@magmamath/students-features 1.4.2 → 1.4.3
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/dist/commonjs/features/fluency/components/Fluency.js +12 -6
- package/dist/commonjs/features/fluency/components/Fluency.js.map +1 -1
- package/dist/commonjs/features/fluency/components/FluencyStatusOverlay.js +101 -0
- package/dist/commonjs/features/fluency/components/FluencyStatusOverlay.js.map +1 -0
- package/dist/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.js +13 -5
- package/dist/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.js.map +1 -1
- package/dist/commonjs/features/fluency/model/FluencyModel.js +21 -0
- package/dist/commonjs/features/fluency/model/FluencyModel.js.map +1 -1
- package/dist/commonjs/features/fluency/shared/fluency.constants.js +6 -1
- package/dist/commonjs/features/fluency/shared/fluency.constants.js.map +1 -1
- package/dist/commonjs/features/fluency/shared/fluency.helpers.js +3 -1
- package/dist/commonjs/features/fluency/shared/fluency.helpers.js.map +1 -1
- package/dist/module/features/fluency/components/Fluency.js +14 -8
- package/dist/module/features/fluency/components/Fluency.js.map +1 -1
- package/dist/module/features/fluency/components/FluencyStatusOverlay.js +95 -0
- package/dist/module/features/fluency/components/FluencyStatusOverlay.js.map +1 -0
- package/dist/module/features/fluency/components/select-math-operator/SelectMathOperator.js +13 -5
- package/dist/module/features/fluency/components/select-math-operator/SelectMathOperator.js.map +1 -1
- package/dist/module/features/fluency/model/FluencyModel.js +22 -1
- package/dist/module/features/fluency/model/FluencyModel.js.map +1 -1
- package/dist/module/features/fluency/shared/fluency.constants.js +5 -0
- package/dist/module/features/fluency/shared/fluency.constants.js.map +1 -1
- package/dist/module/features/fluency/shared/fluency.helpers.js +1 -0
- package/dist/module/features/fluency/shared/fluency.helpers.js.map +1 -1
- package/dist/typescript/commonjs/features/fluency/components/Fluency.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/components/FluencyStatusOverlay.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency/components/FluencyStatusOverlay.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/model/FluencyModel.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency/model/FluencyModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/shared/fluency.constants.d.ts +4 -0
- package/dist/typescript/commonjs/features/fluency/shared/fluency.constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/shared/fluency.helpers.d.ts +1 -0
- package/dist/typescript/commonjs/features/fluency/shared/fluency.helpers.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/components/Fluency.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/components/FluencyStatusOverlay.d.ts +8 -0
- package/dist/typescript/module/features/fluency/components/FluencyStatusOverlay.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/components/select-math-operator/SelectMathOperator.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/model/FluencyModel.d.ts +3 -0
- package/dist/typescript/module/features/fluency/model/FluencyModel.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/shared/fluency.constants.d.ts +4 -0
- package/dist/typescript/module/features/fluency/shared/fluency.constants.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/shared/fluency.helpers.d.ts +1 -0
- package/dist/typescript/module/features/fluency/shared/fluency.helpers.d.ts.map +1 -1
- package/package.json +8 -3
- package/src/features/fluency/components/Fluency.tsx +17 -9
- package/src/features/fluency/components/FluencyStatusOverlay.tsx +101 -0
- package/src/features/fluency/components/select-math-operator/SelectMathOperator.tsx +11 -5
- package/src/features/fluency/model/FluencyModel.ts +25 -1
- package/src/features/fluency/shared/fluency.constants.ts +5 -0
- package/src/features/fluency/shared/fluency.helpers.ts +3 -0
- package/src/i18n/.generated/schema.json +4 -0
|
@@ -14,6 +14,7 @@ var _DayStreakCounter = require("./day-streak-counter/DayStreakCounter.js");
|
|
|
14
14
|
var _SelectMathOperator = require("./select-math-operator/SelectMathOperator.js");
|
|
15
15
|
var _FluencyMatrix = require("./matrix/FluencyMatrix.js");
|
|
16
16
|
var _MobileMenu = require("./mobile-menu/MobileMenu.js");
|
|
17
|
+
var _FluencyStatusOverlay = require("./FluencyStatusOverlay.js");
|
|
17
18
|
var _FluencyContext = require("../context/FluencyContext.js");
|
|
18
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
20
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -29,6 +30,7 @@ const Fluency = ({
|
|
|
29
30
|
config
|
|
30
31
|
});
|
|
31
32
|
const t = (0, _i18n.useText)();
|
|
33
|
+
const status = (0, _effectorReact.useUnit)(model.$status);
|
|
32
34
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FluencyContext.FluencyProvider, {
|
|
33
35
|
value: {
|
|
34
36
|
model,
|
|
@@ -47,12 +49,16 @@ const Fluency = ({
|
|
|
47
49
|
style: styles.titleText,
|
|
48
50
|
children: t('student.fluency.title')
|
|
49
51
|
})]
|
|
50
|
-
}), /*#__PURE__*/(0, _jsxRuntime.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
}), status ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_FluencyStatusOverlay.FluencyStatusOverlay, {
|
|
53
|
+
status: status
|
|
54
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
55
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
56
|
+
style: styles.header,
|
|
57
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_StartBanner.StartBanner, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DayStreakCounter.DayStreakCounter, {})]
|
|
58
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
59
|
+
style: styles.matrix,
|
|
60
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SelectMathOperator.SelectMathOperator, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FluencyMatrix.FluencyMatrix, {})]
|
|
61
|
+
})]
|
|
56
62
|
})]
|
|
57
63
|
})
|
|
58
64
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_effectorReact","_reactNative","_reactNativeUi","_i18n","_StartBanner","_DayStreakCounter","_SelectMathOperator","_FluencyMatrix","_MobileMenu","_FluencyContext","_jsxRuntime","e","__esModule","default","Fluency","model","config","onMenuPress","onStartPress","onPracticePress","onModeSelectPress","useGate","gate","t","useText","jsx","FluencyProvider","value","children","jsxs","View","style","styles","root","title","MobileMenu","onPress","Typography","variant","HeadingVariants","H2","titleText","header","StartBanner","DayStreakCounter","matrix","SelectMathOperator","FluencyMatrix","exports","StyleSheet","create","flex","flexDirection","alignItems","color","COLORS","NEUTRAL_9","height","marginTop","SPACING","gap","zIndex"],"sourceRoot":"../../../../../src","sources":["features/fluency/components/Fluency.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,mBAAA,GAAAP,OAAA;AACA,IAAAQ,cAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_effectorReact","_reactNative","_reactNativeUi","_i18n","_StartBanner","_DayStreakCounter","_SelectMathOperator","_FluencyMatrix","_MobileMenu","_FluencyStatusOverlay","_FluencyContext","_jsxRuntime","e","__esModule","default","Fluency","model","config","onMenuPress","onStartPress","onPracticePress","onModeSelectPress","useGate","gate","t","useText","status","useUnit","$status","jsx","FluencyProvider","value","children","jsxs","View","style","styles","root","title","MobileMenu","onPress","Typography","variant","HeadingVariants","H2","titleText","FluencyStatusOverlay","Fragment","header","StartBanner","DayStreakCounter","matrix","SelectMathOperator","FluencyMatrix","exports","StyleSheet","create","flex","flexDirection","alignItems","color","COLORS","NEUTRAL_9","height","marginTop","SPACING","gap","zIndex"],"sourceRoot":"../../../../../src","sources":["features/fluency/components/Fluency.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FluencyStatusOverlay = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeUi = require("@magmamath/react-native-ui");
|
|
10
|
+
var _fluencyConstants = require("../shared/fluency.constants.js");
|
|
11
|
+
var _i18n = require("../../../i18n/i18n.js");
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
const FLUENCY_STATUS_VARIANTS = {
|
|
15
|
+
[_fluencyConstants.FluencyStatus.ERROR]: {
|
|
16
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.ErrorIcon, {
|
|
17
|
+
color: _reactNativeUi.COLORS.PRIMARY_RED,
|
|
18
|
+
size: 40
|
|
19
|
+
}),
|
|
20
|
+
circleColor: _reactNativeUi.COLORS.RED_1,
|
|
21
|
+
titleKey: 'student.fluency.errorTitle',
|
|
22
|
+
subtitleKey: 'student.fluency.errorSubtitle'
|
|
23
|
+
},
|
|
24
|
+
[_fluencyConstants.FluencyStatus.EMPTY]: {
|
|
25
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.InfoIcon, {
|
|
26
|
+
color: _reactNativeUi.COLORS.NEUTRAL_6,
|
|
27
|
+
size: 40
|
|
28
|
+
}),
|
|
29
|
+
circleColor: _reactNativeUi.COLORS.NEUTRAL_2,
|
|
30
|
+
titleKey: 'student.fluency.emptyTitle',
|
|
31
|
+
subtitleKey: 'student.fluency.emptySubtitle'
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const FluencyStatusOverlay = ({
|
|
35
|
+
status
|
|
36
|
+
}) => {
|
|
37
|
+
const t = (0, _i18n.useText)();
|
|
38
|
+
const variant = FLUENCY_STATUS_VARIANTS[status];
|
|
39
|
+
if (!variant) return null;
|
|
40
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
41
|
+
style: styles.container,
|
|
42
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
43
|
+
style: styles.content,
|
|
44
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
45
|
+
style: [styles.iconCircle, {
|
|
46
|
+
backgroundColor: variant.circleColor
|
|
47
|
+
}],
|
|
48
|
+
children: variant.icon
|
|
49
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
50
|
+
style: styles.text,
|
|
51
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.Typography, {
|
|
52
|
+
variant: _reactNativeUi.HeadingVariants.H2,
|
|
53
|
+
style: styles.title,
|
|
54
|
+
children: t(variant.titleKey)
|
|
55
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.Typography, {
|
|
56
|
+
variant: _reactNativeUi.HeadingVariants.H7,
|
|
57
|
+
style: styles.subtitle,
|
|
58
|
+
children: t(variant.subtitleKey)
|
|
59
|
+
})]
|
|
60
|
+
})]
|
|
61
|
+
})
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
exports.FluencyStatusOverlay = FluencyStatusOverlay;
|
|
65
|
+
const styles = _reactNative.StyleSheet.create({
|
|
66
|
+
container: {
|
|
67
|
+
flex: 1,
|
|
68
|
+
alignItems: 'center',
|
|
69
|
+
justifyContent: 'center'
|
|
70
|
+
},
|
|
71
|
+
content: {
|
|
72
|
+
alignItems: 'center',
|
|
73
|
+
gap: _reactNativeUi.SPACING[500],
|
|
74
|
+
paddingBottom: _reactNativeUi.SPACING[800]
|
|
75
|
+
},
|
|
76
|
+
iconCircle: {
|
|
77
|
+
width: 88,
|
|
78
|
+
height: 88,
|
|
79
|
+
borderRadius: 44,
|
|
80
|
+
alignItems: 'center',
|
|
81
|
+
justifyContent: 'center'
|
|
82
|
+
},
|
|
83
|
+
text: {
|
|
84
|
+
alignItems: 'center',
|
|
85
|
+
gap: _reactNativeUi.SPACING[200],
|
|
86
|
+
maxWidth: 340
|
|
87
|
+
},
|
|
88
|
+
title: {
|
|
89
|
+
color: _reactNativeUi.COLORS.NEUTRAL_9,
|
|
90
|
+
textAlign: 'center',
|
|
91
|
+
fontSize: 24,
|
|
92
|
+
fontWeight: '500'
|
|
93
|
+
},
|
|
94
|
+
subtitle: {
|
|
95
|
+
color: _reactNativeUi.COLORS.NEUTRAL_7,
|
|
96
|
+
textAlign: 'center',
|
|
97
|
+
fontSize: 16,
|
|
98
|
+
fontWeight: '400'
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=FluencyStatusOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_fluencyConstants","_i18n","_jsxRuntime","e","__esModule","default","FLUENCY_STATUS_VARIANTS","FluencyStatus","ERROR","icon","jsx","ErrorIcon","color","COLORS","PRIMARY_RED","size","circleColor","RED_1","titleKey","subtitleKey","EMPTY","InfoIcon","NEUTRAL_6","NEUTRAL_2","FluencyStatusOverlay","status","t","useText","variant","View","style","styles","container","children","jsxs","content","iconCircle","backgroundColor","text","Typography","HeadingVariants","H2","title","H7","subtitle","exports","StyleSheet","create","flex","alignItems","justifyContent","gap","SPACING","paddingBottom","width","height","borderRadius","maxWidth","NEUTRAL_9","textAlign","fontSize","fontWeight","NEUTRAL_7"],"sourceRoot":"../../../../../src","sources":["features/fluency/components/FluencyStatusOverlay.tsx"],"mappings":"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","ignoreList":[]}
|
package/dist/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.js
CHANGED
|
@@ -20,18 +20,26 @@ const SelectMathOperator = () => {
|
|
|
20
20
|
model,
|
|
21
21
|
onModeSelectPress
|
|
22
22
|
} = (0, _FluencyContext.useFluency)();
|
|
23
|
-
const
|
|
24
|
-
|
|
23
|
+
const {
|
|
24
|
+
fluencyMode,
|
|
25
|
+
matrix
|
|
26
|
+
} = (0, _effectorReact.useUnit)({
|
|
27
|
+
fluencyMode: model.matrix.$mode,
|
|
28
|
+
matrix: model.matrix.$data
|
|
29
|
+
});
|
|
30
|
+
const visibleModes = matrix ? _fluencyConstants.FLUENCY_MODES.filter(({
|
|
31
|
+
mode
|
|
32
|
+
}) => Object.keys(matrix.operations?.[mode]?.facts).length > 0) : _fluencyConstants.FLUENCY_MODES;
|
|
25
33
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
26
34
|
style: styles.container,
|
|
27
|
-
children:
|
|
35
|
+
children: visibleModes.map(({
|
|
28
36
|
mode,
|
|
29
37
|
label,
|
|
30
38
|
symbol,
|
|
31
39
|
select
|
|
32
40
|
}, index) => {
|
|
33
41
|
const isSelectedMode = mode === fluencyMode;
|
|
34
|
-
const progress = (matrix?.operations[mode]
|
|
42
|
+
const progress = (matrix?.operations?.[mode]?.completionRate ?? 0) * 100;
|
|
35
43
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MathOperatorRow.MathOperatorRow, {
|
|
36
44
|
title: t(label),
|
|
37
45
|
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.Typography, {
|
|
@@ -46,7 +54,7 @@ const SelectMathOperator = () => {
|
|
|
46
54
|
model.matrix.setMode(mode);
|
|
47
55
|
onModeSelectPress?.(mode);
|
|
48
56
|
},
|
|
49
|
-
showDivider: index <
|
|
57
|
+
showDivider: index < visibleModes.length - 1
|
|
50
58
|
}, mode);
|
|
51
59
|
})
|
|
52
60
|
});
|
package/dist/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_effectorReact","_fluencyConstants","_MathOperatorRow","_FluencyContext","_i18n","_jsxRuntime","e","__esModule","default","SelectMathOperator","t","useText","model","onModeSelectPress","useFluency","fluencyMode","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_effectorReact","_fluencyConstants","_MathOperatorRow","_FluencyContext","_i18n","_jsxRuntime","e","__esModule","default","SelectMathOperator","t","useText","model","onModeSelectPress","useFluency","fluencyMode","matrix","useUnit","$mode","$data","visibleModes","FLUENCY_MODES","filter","mode","Object","keys","operations","facts","length","jsx","View","style","styles","container","children","map","label","symbol","select","index","isSelectedMode","progress","completionRate","MathOperatorRow","title","icon","Typography","variant","HeadingVariants","H6","symbolSelected","color","selected","onSelect","setMode","showDivider","exports","StyleSheet","create","alignSelf","width","padding","SPACING","borderRadius","BORDER_RADIUS","backgroundColor","COLORS","NEUTRAL_1","SHADOWS","fontSize","fontWeight","NEUTRAL_9"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/select-math-operator/SelectMathOperator.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,9 +12,11 @@ var _FluencyMatrixModel = require("./FluencyMatrixModel.js");
|
|
|
12
12
|
var _FluencyApiModel = require("./FluencyApiModel.js");
|
|
13
13
|
var _FluencySolvingModel = require("./FluencySolvingModel.js");
|
|
14
14
|
var _fluencyConstants = require("../shared/fluency.constants.js");
|
|
15
|
+
var _fluencyHelpers = require("../shared/fluency.helpers.js");
|
|
15
16
|
class FluencyModel {
|
|
16
17
|
gate = (0, _effectorReact.createGate)();
|
|
17
18
|
$config = (0, _effector.createStore)(null);
|
|
19
|
+
$status = (0, _effector.createStore)(null);
|
|
18
20
|
constructor({
|
|
19
21
|
api
|
|
20
22
|
}) {
|
|
@@ -23,6 +25,7 @@ class FluencyModel {
|
|
|
23
25
|
this.matrix = new _FluencyMatrixModel.FluencyMatrixModel(this.api);
|
|
24
26
|
this.solving = new _FluencySolvingModel.FluencySolvingModel(this.matrix, this.$config);
|
|
25
27
|
this.init();
|
|
28
|
+
this.setupStatusTracking();
|
|
26
29
|
}
|
|
27
30
|
init() {
|
|
28
31
|
(0, _effector.sample)({
|
|
@@ -59,6 +62,24 @@ class FluencyModel {
|
|
|
59
62
|
target: this.api.postAttemptFx
|
|
60
63
|
});
|
|
61
64
|
}
|
|
65
|
+
setupStatusTracking() {
|
|
66
|
+
(0, _effector.sample)({
|
|
67
|
+
clock: this.gate.open,
|
|
68
|
+
fn: () => null,
|
|
69
|
+
target: this.$status
|
|
70
|
+
});
|
|
71
|
+
(0, _effector.sample)({
|
|
72
|
+
clock: [this.api.getMatrixFx.fail, this.api.getWeeklyStatsFx.fail],
|
|
73
|
+
fn: () => _fluencyConstants.FluencyStatus.ERROR,
|
|
74
|
+
target: this.$status
|
|
75
|
+
});
|
|
76
|
+
(0, _effector.sample)({
|
|
77
|
+
clock: this.api.getMatrixFx.doneData,
|
|
78
|
+
filter: _fluencyHelpers.allFactsEmpty,
|
|
79
|
+
fn: () => _fluencyConstants.FluencyStatus.EMPTY,
|
|
80
|
+
target: this.$status
|
|
81
|
+
});
|
|
82
|
+
}
|
|
62
83
|
}
|
|
63
84
|
exports.FluencyModel = FluencyModel;
|
|
64
85
|
//# sourceMappingURL=FluencyModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_effector","require","_effectorReact","_not","_FluencyDaysStreakModel","_FluencyMatrixModel","_FluencyApiModel","_FluencySolvingModel","_fluencyConstants","FluencyModel","gate","createGate","$config","createStore","constructor","api","FluencyApiModel","streak","FluencyDaysStreakModel","matrix","FluencyMatrixModel","solving","FluencySolvingModel","init","sample","clock","open","fn","config","target","filter","not","getMatrixFx","pending","grade","getWeeklyStatsFx","flushAttempts","source","Boolean","attempts","matrixConfig","MatrixConfig","STANDARD","postAttemptFx","exports"],"sourceRoot":"../../../../../src","sources":["features/fluency/model/FluencyModel.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAP,OAAA;AAQO,
|
|
1
|
+
{"version":3,"names":["_effector","require","_effectorReact","_not","_FluencyDaysStreakModel","_FluencyMatrixModel","_FluencyApiModel","_FluencySolvingModel","_fluencyConstants","_fluencyHelpers","FluencyModel","gate","createGate","$config","createStore","$status","constructor","api","FluencyApiModel","streak","FluencyDaysStreakModel","matrix","FluencyMatrixModel","solving","FluencySolvingModel","init","setupStatusTracking","sample","clock","open","fn","config","target","filter","not","getMatrixFx","pending","grade","getWeeklyStatsFx","flushAttempts","source","Boolean","attempts","matrixConfig","MatrixConfig","STANDARD","postAttemptFx","fail","FluencyStatus","ERROR","doneData","allFactsEmpty","EMPTY","exports"],"sourceRoot":"../../../../../src","sources":["features/fluency/model/FluencyModel.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAP,OAAA;AACA,IAAAQ,eAAA,GAAAR,OAAA;AAQO,MAAMS,YAAY,CAAC;EACRC,IAAI,GAAG,IAAAC,yBAAU,EAAwB,CAAC;EAC1CC,OAAO,GAAG,IAAAC,qBAAW,EAAuB,IAAI,CAAC;EACjDC,OAAO,GAAG,IAAAD,qBAAW,EAAuB,IAAI,CAAC;EAOjEE,WAAWA,CAAC;IAAEC;EAAuB,CAAC,EAAE;IACtC,IAAI,CAACA,GAAG,GAAG,IAAIC,gCAAe,CAACD,GAAG,CAAC;IACnC,IAAI,CAACE,MAAM,GAAG,IAAIC,8CAAsB,CAAC,IAAI,CAACH,GAAG,CAAC;IAClD,IAAI,CAACI,MAAM,GAAG,IAAIC,sCAAkB,CAAC,IAAI,CAACL,GAAG,CAAC;IAC9C,IAAI,CAACM,OAAO,GAAG,IAAIC,wCAAmB,CAAC,IAAI,CAACH,MAAM,EAAE,IAAI,CAACR,OAAO,CAAC;IAEjE,IAAI,CAACY,IAAI,CAAC,CAAC;IACX,IAAI,CAACC,mBAAmB,CAAC,CAAC;EAC5B;EAEQD,IAAIA,CAAA,EAAG;IACb,IAAAE,gBAAM,EAAC;MACLC,KAAK,EAAE,IAAI,CAACjB,IAAI,CAACkB,IAAI;MACrBC,EAAE,EAAEA,CAAC;QAAEC;MAAO,CAAC,KAAKA,MAAM;MAC1BC,MAAM,EAAE,IAAI,CAACnB;IACf,CAAC,CAAC;IAEF,IAAAc,gBAAM,EAAC;MACLC,KAAK,EAAE,IAAI,CAACjB,IAAI,CAACkB,IAAI;MACrBI,MAAM,EAAE,IAAAC,QAAG,EAAC,IAAI,CAACjB,GAAG,CAACkB,WAAW,CAACC,OAAO,CAAC;MACzCN,EAAE,EAAEA,CAAC;QAAEC;MAAO,CAAC,MAAM;QAAEM,KAAK,EAAEN,MAAM,CAACM;MAAM,CAAC,CAAC;MAC7CL,MAAM,EAAE,IAAI,CAACf,GAAG,CAACkB;IACnB,CAAC,CAAC;IAEF,IAAAR,gBAAM,EAAC;MACLC,KAAK,EAAE,IAAI,CAACjB,IAAI,CAACkB,IAAI;MACrBI,MAAM,EAAE,IAAAC,QAAG,EAAC,IAAI,CAACjB,GAAG,CAACqB,gBAAgB,CAACF,OAAO,CAAC;MAC9CJ,MAAM,EAAE,IAAI,CAACf,GAAG,CAACqB;IACnB,CAAC,CAAC;IAEF,IAAAX,gBAAM,EAAC;MACLC,KAAK,EAAE,IAAI,CAACL,OAAO,CAACgB,aAAa;MACjCC,MAAM,EAAE,IAAI,CAAC3B,OAAO;MACpBoB,MAAM,EAAEQ,OAAO;MACfX,EAAE,EAAEA,CAACC,MAAM,EAAEW,QAAQ,MAA6B;QAChDL,KAAK,EAAEN,MAAM,CAACM,KAAK;QACnBK,QAAQ;QACRC,YAAY,EAAEC,8BAAY,CAACC;MAC7B,CAAC,CAAC;MACFb,MAAM,EAAE,IAAI,CAACf,GAAG,CAAC6B;IACnB,CAAC,CAAC;EACJ;EAEQpB,mBAAmBA,CAAA,EAAG;IAC5B,IAAAC,gBAAM,EAAC;MACLC,KAAK,EAAE,IAAI,CAACjB,IAAI,CAACkB,IAAI;MACrBC,EAAE,EAAEA,CAAA,KAAM,IAA4B;MACtCE,MAAM,EAAE,IAAI,CAACjB;IACf,CAAC,CAAC;IAEF,IAAAY,gBAAM,EAAC;MACLC,KAAK,EAAE,CAAC,IAAI,CAACX,GAAG,CAACkB,WAAW,CAACY,IAAI,EAAE,IAAI,CAAC9B,GAAG,CAACqB,gBAAgB,CAACS,IAAI,CAAC;MAClEjB,EAAE,EAAEA,CAAA,KAAMkB,+BAAa,CAACC,KAAK;MAC7BjB,MAAM,EAAE,IAAI,CAACjB;IACf,CAAC,CAAC;IAEF,IAAAY,gBAAM,EAAC;MACLC,KAAK,EAAE,IAAI,CAACX,GAAG,CAACkB,WAAW,CAACe,QAAQ;MACpCjB,MAAM,EAAEkB,6BAAa;MACrBrB,EAAE,EAAEA,CAAA,KAAMkB,+BAAa,CAACI,KAAK;MAC7BpB,MAAM,EAAE,IAAI,CAACjB;IACf,CAAC,CAAC;EACJ;AACF;AAACsC,OAAA,CAAA3C,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getTimeThresholdByGrade = exports.StreakStatus = exports.SESSION_LENGTH = exports.ONE_DAY_MS = exports.MatrixConfig = exports.MAX_INPUT_LENGTH = exports.FluencyMode = exports.FluencyMasteryLevel = exports.FluencyColorFamily = exports.FLUSH_ATTEMPTS_COUNT = exports.FLUENCY_MODE_PRESETS = exports.FLUENCY_MODES = exports.COLOR_FAMILY_PALETTES = exports.AttemptStatus = void 0;
|
|
6
|
+
exports.getTimeThresholdByGrade = exports.StreakStatus = exports.SESSION_LENGTH = exports.ONE_DAY_MS = exports.MatrixConfig = exports.MAX_INPUT_LENGTH = exports.FluencyStatus = exports.FluencyMode = exports.FluencyMasteryLevel = exports.FluencyColorFamily = exports.FLUSH_ATTEMPTS_COUNT = exports.FLUENCY_MODE_PRESETS = exports.FLUENCY_MODES = exports.COLOR_FAMILY_PALETTES = exports.AttemptStatus = void 0;
|
|
7
7
|
var _reactNativeUi = require("@magmamath/react-native-ui");
|
|
8
8
|
var _fluencyHelpers = require("./fluency.helpers.js");
|
|
9
9
|
const MAX_INPUT_LENGTH = exports.MAX_INPUT_LENGTH = 3;
|
|
@@ -102,4 +102,9 @@ const FLUENCY_MODE_PRESETS = exports.FLUENCY_MODE_PRESETS = Object.fromEntries(F
|
|
|
102
102
|
preset
|
|
103
103
|
}) => [mode, preset]));
|
|
104
104
|
const ONE_DAY_MS = exports.ONE_DAY_MS = 86_400_000;
|
|
105
|
+
let FluencyStatus = exports.FluencyStatus = /*#__PURE__*/function (FluencyStatus) {
|
|
106
|
+
FluencyStatus["ERROR"] = "ERROR";
|
|
107
|
+
FluencyStatus["EMPTY"] = "EMPTY";
|
|
108
|
+
return FluencyStatus;
|
|
109
|
+
}({});
|
|
105
110
|
//# sourceMappingURL=fluency.constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeUi","require","_fluencyHelpers","MAX_INPUT_LENGTH","exports","SESSION_LENGTH","FLUSH_ATTEMPTS_COUNT","getTimeThresholdByGrade","grade","FluencyMode","FluencyMasteryLevel","FluencyColorFamily","StreakStatus","AttemptStatus","MatrixConfig","COLOR_FAMILY_PALETTES","GREEN","shades","COLORS","GREEN_2","GREEN_3","PRIMARY_GREEN","GREEN_6","button","ButtonColor","select","SelectOptionColor","ORANGE","ORANGE_2","ORANGE_3","PRIMARY_ORANGE","ORANGE_6","BLUE","BLUE_2","BLUE_3","PRIMARY_BLUE","BLUE_6","PURPLE","PURPLE_2","PURPLE_3","PRIMARY_PURPLE","PURPLE_6","FLUENCY_MODES","createFluencyMode","mode","ADDITION","label","symbol","colorFamily","SUBTRACTION","MULTIPLICATION","DIVISION","FLUENCY_MODE_PRESETS","Object","fromEntries","map","preset","ONE_DAY_MS"],"sourceRoot":"../../../../../src","sources":["features/fluency/shared/fluency.constants.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNativeUi","require","_fluencyHelpers","MAX_INPUT_LENGTH","exports","SESSION_LENGTH","FLUSH_ATTEMPTS_COUNT","getTimeThresholdByGrade","grade","FluencyMode","FluencyMasteryLevel","FluencyColorFamily","StreakStatus","AttemptStatus","MatrixConfig","COLOR_FAMILY_PALETTES","GREEN","shades","COLORS","GREEN_2","GREEN_3","PRIMARY_GREEN","GREEN_6","button","ButtonColor","select","SelectOptionColor","ORANGE","ORANGE_2","ORANGE_3","PRIMARY_ORANGE","ORANGE_6","BLUE","BLUE_2","BLUE_3","PRIMARY_BLUE","BLUE_6","PURPLE","PURPLE_2","PURPLE_3","PRIMARY_PURPLE","PURPLE_6","FLUENCY_MODES","createFluencyMode","mode","ADDITION","label","symbol","colorFamily","SUBTRACTION","MULTIPLICATION","DIVISION","FLUENCY_MODE_PRESETS","Object","fromEntries","map","preset","ONE_DAY_MS","FluencyStatus"],"sourceRoot":"../../../../../src","sources":["features/fluency/shared/fluency.constants.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.generateStreakDates = exports.createFluencyMode = exports.buildMatrixGrid = void 0;
|
|
6
|
+
exports.generateStreakDates = exports.createFluencyMode = exports.buildMatrixGrid = exports.allFactsEmpty = void 0;
|
|
7
7
|
var _reactNativeUi = require("@magmamath/react-native-ui");
|
|
8
8
|
var _fluencyConstants = require("./fluency.constants.js");
|
|
9
9
|
const createFluencyMode = ({
|
|
@@ -113,6 +113,8 @@ const buildMatrixGrid = (data, mode) => {
|
|
|
113
113
|
return [headerRow, ...dataRows];
|
|
114
114
|
};
|
|
115
115
|
exports.buildMatrixGrid = buildMatrixGrid;
|
|
116
|
+
const allFactsEmpty = response => Object.values(response.operations).every(op => Object.keys(op.facts).length === 0);
|
|
117
|
+
exports.allFactsEmpty = allFactsEmpty;
|
|
116
118
|
const generateStreakDates = stats => {
|
|
117
119
|
const todayMs = new Date().setHours(0, 0, 0, 0);
|
|
118
120
|
const startMs = new Date(stats.weekStart).setHours(0, 0, 0, 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeUi","require","_fluencyConstants","createFluencyMode","mode","label","symbol","colorFamily","palette","COLOR_FAMILY_PALETTES","learning","growing","strong","mastered","shades","select","preset","buttonColor","button","accentColor","header","streakColor","gained","todayBorder","matrix","operatorLabel","levelColors","FluencyMasteryLevel","NOT_STARTED","COLORS","NEUTRAL_2","LEARNING","GROWING","STRONG","MASTERED","exports","buildMatrixGrid","data","facts","Object","values","operations","maxRow","Math","max","map","f","position","row","maxColumn","column","isDivision","FluencyMode","DIVISION","isSubtraction","SUBTRACTION","isCommutative","ADDITION","MULTIPLICATION","factAt","col","find","maxMinuend","numbers","rowNumbers","Array","from","length","_","i","columnNumbers","headerRow","isHeader","isEmpty","box","dataRows","fact","mirrorFact","primaryBox","mirrorBox","effectiveBox","generateStreakDates","stats","todayMs","Date","setHours","startMs","weekStart","practiced","Set","practicedDates","d","dayMs","ONE_DAY_MS","isPracticed","has","isToday","StreakStatus","TODAY_GAINED","GAINED","TODAY","MISSED"],"sourceRoot":"../../../../../src","sources":["features/fluency/shared/fluency.helpers.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_reactNativeUi","require","_fluencyConstants","createFluencyMode","mode","label","symbol","colorFamily","palette","COLOR_FAMILY_PALETTES","learning","growing","strong","mastered","shades","select","preset","buttonColor","button","accentColor","header","streakColor","gained","todayBorder","matrix","operatorLabel","levelColors","FluencyMasteryLevel","NOT_STARTED","COLORS","NEUTRAL_2","LEARNING","GROWING","STRONG","MASTERED","exports","buildMatrixGrid","data","facts","Object","values","operations","maxRow","Math","max","map","f","position","row","maxColumn","column","isDivision","FluencyMode","DIVISION","isSubtraction","SUBTRACTION","isCommutative","ADDITION","MULTIPLICATION","factAt","col","find","maxMinuend","numbers","rowNumbers","Array","from","length","_","i","columnNumbers","headerRow","isHeader","isEmpty","box","dataRows","fact","mirrorFact","primaryBox","mirrorBox","effectiveBox","allFactsEmpty","response","every","op","keys","generateStreakDates","stats","todayMs","Date","setHours","startMs","weekStart","practiced","Set","practicedDates","d","dayMs","ONE_DAY_MS","isPracticed","has","isToday","StreakStatus","TODAY_GAINED","GAINED","TODAY","MISSED"],"sourceRoot":"../../../../../src","sources":["features/fluency/shared/fluency.helpers.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import React from 'react';
|
|
4
|
-
import { useGate } from 'effector-react';
|
|
4
|
+
import { useGate, useUnit } from 'effector-react';
|
|
5
5
|
import { View, StyleSheet } from 'react-native';
|
|
6
6
|
import { Typography, HeadingVariants, SPACING, COLORS } from '@magmamath/react-native-ui';
|
|
7
7
|
import { useText } from "../../../i18n/i18n.js";
|
|
@@ -10,8 +10,9 @@ import { DayStreakCounter } from "./day-streak-counter/DayStreakCounter.js";
|
|
|
10
10
|
import { SelectMathOperator } from "./select-math-operator/SelectMathOperator.js";
|
|
11
11
|
import { FluencyMatrix } from "./matrix/FluencyMatrix.js";
|
|
12
12
|
import { MobileMenu } from "./mobile-menu/MobileMenu.js";
|
|
13
|
+
import { FluencyStatusOverlay } from "./FluencyStatusOverlay.js";
|
|
13
14
|
import { FluencyProvider } from "../context/FluencyContext.js";
|
|
14
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
15
16
|
export const Fluency = ({
|
|
16
17
|
model,
|
|
17
18
|
config,
|
|
@@ -24,6 +25,7 @@ export const Fluency = ({
|
|
|
24
25
|
config
|
|
25
26
|
});
|
|
26
27
|
const t = useText();
|
|
28
|
+
const status = useUnit(model.$status);
|
|
27
29
|
return /*#__PURE__*/_jsx(FluencyProvider, {
|
|
28
30
|
value: {
|
|
29
31
|
model,
|
|
@@ -42,12 +44,16 @@ export const Fluency = ({
|
|
|
42
44
|
style: styles.titleText,
|
|
43
45
|
children: t('student.fluency.title')
|
|
44
46
|
})]
|
|
45
|
-
}), /*#__PURE__*/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
}), status ? /*#__PURE__*/_jsx(FluencyStatusOverlay, {
|
|
48
|
+
status: status
|
|
49
|
+
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
50
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
51
|
+
style: styles.header,
|
|
52
|
+
children: [/*#__PURE__*/_jsx(StartBanner, {}), /*#__PURE__*/_jsx(DayStreakCounter, {})]
|
|
53
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
54
|
+
style: styles.matrix,
|
|
55
|
+
children: [/*#__PURE__*/_jsx(SelectMathOperator, {}), /*#__PURE__*/_jsx(FluencyMatrix, {})]
|
|
56
|
+
})]
|
|
51
57
|
})]
|
|
52
58
|
})
|
|
53
59
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useGate","View","StyleSheet","Typography","HeadingVariants","SPACING","COLORS","useText","StartBanner","DayStreakCounter","SelectMathOperator","FluencyMatrix","MobileMenu","FluencyProvider","jsx","_jsx","jsxs","_jsxs","Fluency","model","config","onMenuPress","onStartPress","onPracticePress","onModeSelectPress","gate","t","value","children","style","styles","root","title","onPress","variant","H2","titleText","header","matrix","create","flex","flexDirection","alignItems","color","NEUTRAL_9","height","marginTop","gap","zIndex"],"sourceRoot":"../../../../../src","sources":["features/fluency/components/Fluency.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,QAAQ,gBAAgB;
|
|
1
|
+
{"version":3,"names":["React","useGate","useUnit","View","StyleSheet","Typography","HeadingVariants","SPACING","COLORS","useText","StartBanner","DayStreakCounter","SelectMathOperator","FluencyMatrix","MobileMenu","FluencyStatusOverlay","FluencyProvider","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Fluency","model","config","onMenuPress","onStartPress","onPracticePress","onModeSelectPress","gate","t","status","$status","value","children","style","styles","root","title","onPress","variant","H2","titleText","header","matrix","create","flex","flexDirection","alignItems","color","NEUTRAL_9","height","marginTop","gap","zIndex"],"sourceRoot":"../../../../../src","sources":["features/fluency/components/Fluency.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet, View } from 'react-native';
|
|
5
|
+
import { COLORS, ErrorIcon, HeadingVariants, InfoIcon, SPACING, Typography } from '@magmamath/react-native-ui';
|
|
6
|
+
import { FluencyStatus } from "../shared/fluency.constants.js";
|
|
7
|
+
import { useText } from "../../../i18n/i18n.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const FLUENCY_STATUS_VARIANTS = {
|
|
10
|
+
[FluencyStatus.ERROR]: {
|
|
11
|
+
icon: /*#__PURE__*/_jsx(ErrorIcon, {
|
|
12
|
+
color: COLORS.PRIMARY_RED,
|
|
13
|
+
size: 40
|
|
14
|
+
}),
|
|
15
|
+
circleColor: COLORS.RED_1,
|
|
16
|
+
titleKey: 'student.fluency.errorTitle',
|
|
17
|
+
subtitleKey: 'student.fluency.errorSubtitle'
|
|
18
|
+
},
|
|
19
|
+
[FluencyStatus.EMPTY]: {
|
|
20
|
+
icon: /*#__PURE__*/_jsx(InfoIcon, {
|
|
21
|
+
color: COLORS.NEUTRAL_6,
|
|
22
|
+
size: 40
|
|
23
|
+
}),
|
|
24
|
+
circleColor: COLORS.NEUTRAL_2,
|
|
25
|
+
titleKey: 'student.fluency.emptyTitle',
|
|
26
|
+
subtitleKey: 'student.fluency.emptySubtitle'
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
export const FluencyStatusOverlay = ({
|
|
30
|
+
status
|
|
31
|
+
}) => {
|
|
32
|
+
const t = useText();
|
|
33
|
+
const variant = FLUENCY_STATUS_VARIANTS[status];
|
|
34
|
+
if (!variant) return null;
|
|
35
|
+
return /*#__PURE__*/_jsx(View, {
|
|
36
|
+
style: styles.container,
|
|
37
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
38
|
+
style: styles.content,
|
|
39
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
40
|
+
style: [styles.iconCircle, {
|
|
41
|
+
backgroundColor: variant.circleColor
|
|
42
|
+
}],
|
|
43
|
+
children: variant.icon
|
|
44
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
45
|
+
style: styles.text,
|
|
46
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
|
47
|
+
variant: HeadingVariants.H2,
|
|
48
|
+
style: styles.title,
|
|
49
|
+
children: t(variant.titleKey)
|
|
50
|
+
}), /*#__PURE__*/_jsx(Typography, {
|
|
51
|
+
variant: HeadingVariants.H7,
|
|
52
|
+
style: styles.subtitle,
|
|
53
|
+
children: t(variant.subtitleKey)
|
|
54
|
+
})]
|
|
55
|
+
})]
|
|
56
|
+
})
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
const styles = StyleSheet.create({
|
|
60
|
+
container: {
|
|
61
|
+
flex: 1,
|
|
62
|
+
alignItems: 'center',
|
|
63
|
+
justifyContent: 'center'
|
|
64
|
+
},
|
|
65
|
+
content: {
|
|
66
|
+
alignItems: 'center',
|
|
67
|
+
gap: SPACING[500],
|
|
68
|
+
paddingBottom: SPACING[800]
|
|
69
|
+
},
|
|
70
|
+
iconCircle: {
|
|
71
|
+
width: 88,
|
|
72
|
+
height: 88,
|
|
73
|
+
borderRadius: 44,
|
|
74
|
+
alignItems: 'center',
|
|
75
|
+
justifyContent: 'center'
|
|
76
|
+
},
|
|
77
|
+
text: {
|
|
78
|
+
alignItems: 'center',
|
|
79
|
+
gap: SPACING[200],
|
|
80
|
+
maxWidth: 340
|
|
81
|
+
},
|
|
82
|
+
title: {
|
|
83
|
+
color: COLORS.NEUTRAL_9,
|
|
84
|
+
textAlign: 'center',
|
|
85
|
+
fontSize: 24,
|
|
86
|
+
fontWeight: '500'
|
|
87
|
+
},
|
|
88
|
+
subtitle: {
|
|
89
|
+
color: COLORS.NEUTRAL_7,
|
|
90
|
+
textAlign: 'center',
|
|
91
|
+
fontSize: 16,
|
|
92
|
+
fontWeight: '400'
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=FluencyStatusOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","COLORS","ErrorIcon","HeadingVariants","InfoIcon","SPACING","Typography","FluencyStatus","useText","jsx","_jsx","jsxs","_jsxs","FLUENCY_STATUS_VARIANTS","ERROR","icon","color","PRIMARY_RED","size","circleColor","RED_1","titleKey","subtitleKey","EMPTY","NEUTRAL_6","NEUTRAL_2","FluencyStatusOverlay","status","t","variant","style","styles","container","children","content","iconCircle","backgroundColor","text","H2","title","H7","subtitle","create","flex","alignItems","justifyContent","gap","paddingBottom","width","height","borderRadius","maxWidth","NEUTRAL_9","textAlign","fontSize","fontWeight","NEUTRAL_7"],"sourceRoot":"../../../../../src","sources":["features/fluency/components/FluencyStatusOverlay.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,18 +15,26 @@ export const SelectMathOperator = () => {
|
|
|
15
15
|
model,
|
|
16
16
|
onModeSelectPress
|
|
17
17
|
} = useFluency();
|
|
18
|
-
const
|
|
19
|
-
|
|
18
|
+
const {
|
|
19
|
+
fluencyMode,
|
|
20
|
+
matrix
|
|
21
|
+
} = useUnit({
|
|
22
|
+
fluencyMode: model.matrix.$mode,
|
|
23
|
+
matrix: model.matrix.$data
|
|
24
|
+
});
|
|
25
|
+
const visibleModes = matrix ? FLUENCY_MODES.filter(({
|
|
26
|
+
mode
|
|
27
|
+
}) => Object.keys(matrix.operations?.[mode]?.facts).length > 0) : FLUENCY_MODES;
|
|
20
28
|
return /*#__PURE__*/_jsx(View, {
|
|
21
29
|
style: styles.container,
|
|
22
|
-
children:
|
|
30
|
+
children: visibleModes.map(({
|
|
23
31
|
mode,
|
|
24
32
|
label,
|
|
25
33
|
symbol,
|
|
26
34
|
select
|
|
27
35
|
}, index) => {
|
|
28
36
|
const isSelectedMode = mode === fluencyMode;
|
|
29
|
-
const progress = (matrix?.operations[mode]
|
|
37
|
+
const progress = (matrix?.operations?.[mode]?.completionRate ?? 0) * 100;
|
|
30
38
|
return /*#__PURE__*/_jsx(MathOperatorRow, {
|
|
31
39
|
title: t(label),
|
|
32
40
|
icon: /*#__PURE__*/_jsx(Typography, {
|
|
@@ -41,7 +49,7 @@ export const SelectMathOperator = () => {
|
|
|
41
49
|
model.matrix.setMode(mode);
|
|
42
50
|
onModeSelectPress?.(mode);
|
|
43
51
|
},
|
|
44
|
-
showDivider: index <
|
|
52
|
+
showDivider: index < visibleModes.length - 1
|
|
45
53
|
}, mode);
|
|
46
54
|
})
|
|
47
55
|
});
|