@magmamath/students-features 1.2.1-rc.45 → 1.2.1-rc.46
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/pmProgress/components/header/NextUp.js +127 -0
- package/dist/commonjs/features/pmProgress/components/header/NextUp.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js +6 -103
- package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js.map +1 -1
- package/dist/commonjs/features/pmProgress/components/list/ListItem.js +4 -8
- package/dist/commonjs/features/pmProgress/components/list/ListItem.js.map +1 -1
- package/dist/commonjs/features/pmProgress/shared/pmProgress.helpers.js +65 -71
- package/dist/commonjs/features/pmProgress/shared/pmProgress.helpers.js.map +1 -1
- package/dist/commonjs/features/pmProgress/shared/pmProgress.types.js +1 -1
- package/dist/commonjs/features/pmProgress/shared/pmProgress.types.js.map +1 -1
- package/dist/module/features/pmProgress/components/header/NextUp.js +121 -0
- package/dist/module/features/pmProgress/components/header/NextUp.js.map +1 -0
- package/dist/module/features/pmProgress/components/header/PmProgressHeader.js +8 -105
- package/dist/module/features/pmProgress/components/header/PmProgressHeader.js.map +1 -1
- package/dist/module/features/pmProgress/components/list/ListItem.js +4 -8
- package/dist/module/features/pmProgress/components/list/ListItem.js.map +1 -1
- package/dist/module/features/pmProgress/shared/pmProgress.helpers.js +51 -56
- package/dist/module/features/pmProgress/shared/pmProgress.helpers.js.map +1 -1
- package/dist/module/features/pmProgress/shared/pmProgress.types.js +0 -2
- package/dist/module/features/pmProgress/shared/pmProgress.types.js.map +1 -1
- package/dist/typescript/commonjs/features/pmProgress/components/header/NextUp.d.ts +3 -0
- package/dist/typescript/commonjs/features/pmProgress/components/header/NextUp.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/header/PmProgressHeader.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/pmProgress/components/list/ListItem.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.helpers.d.ts +17 -15
- package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.helpers.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/pmProgress/shared/pmProgress.types.d.ts.map +1 -1
- package/dist/typescript/module/features/pmProgress/components/header/NextUp.d.ts +3 -0
- package/dist/typescript/module/features/pmProgress/components/header/NextUp.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/header/PmProgressHeader.d.ts.map +1 -1
- package/dist/typescript/module/features/pmProgress/components/list/ListItem.d.ts.map +1 -1
- package/dist/typescript/module/features/pmProgress/shared/pmProgress.helpers.d.ts +17 -15
- package/dist/typescript/module/features/pmProgress/shared/pmProgress.helpers.d.ts.map +1 -1
- package/dist/typescript/module/features/pmProgress/shared/pmProgress.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/pmProgress/components/header/NextUp.tsx +109 -0
- package/src/features/pmProgress/components/header/PmProgressHeader.tsx +9 -98
- package/src/features/pmProgress/components/list/ListItem.tsx +4 -8
- package/src/features/pmProgress/shared/pmProgress.helpers.ts +61 -51
- package/src/features/pmProgress/shared/pmProgress.types.ts +0 -1
|
@@ -3,26 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.createChartConfig = void 0;
|
|
7
|
-
exports.formatGradeLabel = formatGradeLabel;
|
|
8
|
-
exports.formatGradeName = formatGradeName;
|
|
9
|
-
exports.formatTime = formatTime;
|
|
10
|
-
exports.getAllSkillsFromStandard = getAllSkillsFromStandard;
|
|
11
|
-
exports.getAllUncompletedSkills = getAllUncompletedSkills;
|
|
12
|
-
exports.getDomainStructure = getDomainStructure;
|
|
13
|
-
exports.getInitialPmGrade = getInitialPmGrade;
|
|
14
|
-
exports.getTreeGrades = getTreeGrades;
|
|
15
|
-
exports.getUncompletedSkillsFromDomain = getUncompletedSkillsFromDomain;
|
|
16
|
-
exports.getUncompletedSkillsFromStandard = getUncompletedSkillsFromStandard;
|
|
17
|
-
exports.isTreeDataReady = exports.isFluencyDomain = void 0;
|
|
18
|
-
exports.shiftToBeginningOfArray = shiftToBeginningOfArray;
|
|
19
|
-
exports.startGradesFrom = startGradesFrom;
|
|
20
|
-
exports.withoutDuplicates = withoutDuplicates;
|
|
6
|
+
exports.withoutDuplicates = exports.startGradesFrom = exports.shiftToBeginningOfArray = exports.isTreeDataReady = exports.isFluencyDomain = exports.getUncompletedSkillsFromStandard = exports.getUncompletedSkillsFromDomain = exports.getTreeGrades = exports.getInitialPmGrade = exports.getDomainStructure = exports.getAllUncompletedSkills = exports.getAllSkillsFromStandard = exports.formatTime = exports.formatGradeName = exports.formatGradeLabel = exports.createChartConfig = void 0;
|
|
21
7
|
var _reactNativeUi = require("@magmamath/react-native-ui");
|
|
22
8
|
var _pmProgressConstants = require("./pmProgress.constants.js");
|
|
23
9
|
var _chartHelpers = require("../components/chart/chart.helpers.js");
|
|
24
10
|
var _helpers = require("../../../shared/translation/helpers.js");
|
|
25
|
-
|
|
11
|
+
const groupStandardsByDomain = (standardStats, treeMapping) => {
|
|
26
12
|
const grouped = new Map();
|
|
27
13
|
for (const [standardId, stat] of Object.entries(standardStats)) {
|
|
28
14
|
const {
|
|
@@ -50,12 +36,12 @@ function groupStandardsByDomain(standardStats, treeMapping) {
|
|
|
50
36
|
});
|
|
51
37
|
}
|
|
52
38
|
return grouped;
|
|
53
|
-
}
|
|
54
|
-
|
|
39
|
+
};
|
|
40
|
+
const averageScorePercentage = standards => {
|
|
55
41
|
const sum = standards.reduce((acc, s) => acc + s.scorePercentage, 0);
|
|
56
42
|
return Math.round(sum / standards.length * 10) / 10;
|
|
57
|
-
}
|
|
58
|
-
|
|
43
|
+
};
|
|
44
|
+
const resolveDomainColors = nonFluencyIndex => {
|
|
59
45
|
if (nonFluencyIndex < 0) {
|
|
60
46
|
return {
|
|
61
47
|
color: _reactNativeUi.COLORS.PRIMARY_ORANGE,
|
|
@@ -66,8 +52,8 @@ function resolveDomainColors(nonFluencyIndex) {
|
|
|
66
52
|
color: _pmProgressConstants.DOMAIN_COLORS[nonFluencyIndex] ?? _pmProgressConstants.DOMAIN_COLORS[_pmProgressConstants.DOMAIN_COLORS.length - 1],
|
|
67
53
|
borderColor: _pmProgressConstants.DOMAIN_BORDER_COLORS[nonFluencyIndex] ?? _pmProgressConstants.DOMAIN_BORDER_COLORS[_pmProgressConstants.DOMAIN_BORDER_COLORS.length - 1]
|
|
68
54
|
};
|
|
69
|
-
}
|
|
70
|
-
|
|
55
|
+
};
|
|
56
|
+
const getDomainStructure = (data, treeMapping) => {
|
|
71
57
|
const grouped = groupStandardsByDomain(data.standardStats, treeMapping);
|
|
72
58
|
const entries = Array.from(grouped.entries());
|
|
73
59
|
const nonFluencyDomainIds = entries.map(([id]) => id).filter(id => !isFluencyDomain(treeMapping[id].nameTranslations));
|
|
@@ -83,7 +69,8 @@ function getDomainStructure(data, treeMapping) {
|
|
|
83
69
|
scorePercentage: averageScorePercentage(standards)
|
|
84
70
|
};
|
|
85
71
|
});
|
|
86
|
-
}
|
|
72
|
+
};
|
|
73
|
+
exports.getDomainStructure = getDomainStructure;
|
|
87
74
|
/**
|
|
88
75
|
* Resolves which grade a student should practice on.
|
|
89
76
|
*
|
|
@@ -100,13 +87,12 @@ function getDomainStructure(data, treeMapping) {
|
|
|
100
87
|
* locked=[0,1,2,3], enrolled=[3,9], grade=-1 → 9 (lowest unlocked enrolled)
|
|
101
88
|
* locked=[1,2,3], enrolled=[2,5], grade=2 → 4 (grade locked, closest below=none, above=4)
|
|
102
89
|
*/
|
|
103
|
-
|
|
104
|
-
function getInitialPmGrade({
|
|
90
|
+
const getInitialPmGrade = ({
|
|
105
91
|
treeGrades,
|
|
106
92
|
lockedGrades,
|
|
107
93
|
enrolledGrades,
|
|
108
94
|
userGrade
|
|
109
|
-
}) {
|
|
95
|
+
}) => {
|
|
110
96
|
const locked = new Set(lockedGrades);
|
|
111
97
|
const unlocked = treeGrades.filter(g => !locked.has(g)).sort((a, b) => a - b);
|
|
112
98
|
if (unlocked.length === 0) {
|
|
@@ -121,78 +107,81 @@ function getInitialPmGrade({
|
|
|
121
107
|
const nearestBelow = [...unlocked].reverse().find(grade => grade < userGrade);
|
|
122
108
|
const nearestAbove = unlocked.find(grade => grade > userGrade);
|
|
123
109
|
return nearestBelow ?? nearestAbove ?? unlocked[0] ?? 0;
|
|
124
|
-
}
|
|
125
|
-
|
|
110
|
+
};
|
|
111
|
+
exports.getInitialPmGrade = getInitialPmGrade;
|
|
112
|
+
const formatTime = ms => {
|
|
126
113
|
const totalMinutes = Math.floor(ms / 60_000);
|
|
127
114
|
if (totalMinutes < 60) return `${totalMinutes}m`;
|
|
128
115
|
const hours = Math.round(totalMinutes / 60);
|
|
129
116
|
return `${hours}h`;
|
|
130
|
-
}
|
|
117
|
+
};
|
|
118
|
+
exports.formatTime = formatTime;
|
|
131
119
|
const isTreeDataReady = source => source.tree !== null && source.stats !== null && source.user !== null && source.grade !== null;
|
|
132
120
|
exports.isTreeDataReady = isTreeDataReady;
|
|
133
|
-
const
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
121
|
+
const createChartConfig = size => {
|
|
122
|
+
const OUTER_MARGIN = 5;
|
|
123
|
+
return {
|
|
124
|
+
size,
|
|
125
|
+
outerRadius: size / 2 - OUTER_MARGIN,
|
|
126
|
+
innerRadius: _chartHelpers.dynamicInnerRadius,
|
|
127
|
+
cornerRadius: _chartHelpers.dynamicCornerRadius,
|
|
128
|
+
gapBetweenSlices: 8,
|
|
129
|
+
pressOffset: 4,
|
|
130
|
+
borderWidth: 4,
|
|
131
|
+
colors: {
|
|
132
|
+
background: _reactNativeUi.COLORS.NEUTRAL_1,
|
|
133
|
+
highlightedBackground: _reactNativeUi.COLORS.NEUTRAL_6
|
|
134
|
+
},
|
|
135
|
+
outerArc: {
|
|
136
|
+
color: '#FFFFFF40',
|
|
137
|
+
strokeWidth: 11.75,
|
|
138
|
+
dashWidth: 22
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
};
|
|
152
142
|
|
|
153
143
|
/**
|
|
154
144
|
* Returns all skills from a standard, sorted by difficulty.
|
|
155
145
|
* Used when the standard is fully completed to allow revisiting.
|
|
156
146
|
*/
|
|
157
147
|
exports.createChartConfig = createChartConfig;
|
|
158
|
-
|
|
159
|
-
return standard.skillIds.map(id => skillsMapping[id]).filter(Boolean).sort((a, b) => skillsMapping[a._id]?.difficulty - skillsMapping[b._id]?.difficulty);
|
|
160
|
-
}
|
|
148
|
+
const getAllSkillsFromStandard = (standard, skillsMapping) => standard.skillIds.map(id => skillsMapping[id]).filter(Boolean).sort((a, b) => skillsMapping[a._id]?.difficulty - skillsMapping[b._id]?.difficulty);
|
|
161
149
|
|
|
162
150
|
/**
|
|
163
151
|
* Returns uncompleted skills from a single standard.
|
|
164
152
|
* Failed skills come first, then unattempted.
|
|
165
153
|
*/
|
|
166
|
-
|
|
154
|
+
exports.getAllSkillsFromStandard = getAllSkillsFromStandard;
|
|
155
|
+
const getUncompletedSkillsFromStandard = (standard, skillsMapping) => {
|
|
167
156
|
if (!standard.skillsToPractice) return [];
|
|
168
157
|
return [...standard.skillsToPractice.failed, ...standard.skillsToPractice.unattempted].map(({
|
|
169
158
|
skillId
|
|
170
159
|
}) => skillsMapping[skillId]).filter(Boolean).sort((a, b) => skillsMapping[a._id]?.difficulty - skillsMapping[b._id]?.difficulty);
|
|
171
|
-
}
|
|
160
|
+
};
|
|
172
161
|
|
|
173
162
|
/**
|
|
174
163
|
* Returns uncompleted skills from a domain, scanning standards from the beginning.
|
|
175
164
|
* Optionally excludes a standard (used when student selected a specific one).
|
|
176
165
|
*/
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
}
|
|
166
|
+
exports.getUncompletedSkillsFromStandard = getUncompletedSkillsFromStandard;
|
|
167
|
+
const getUncompletedSkillsFromDomain = (domain, skillsMapping, excludeStandardId) => domain.standards.filter(s => !s.isCompleted && s.standardId !== excludeStandardId).flatMap(s => getUncompletedSkillsFromStandard(s, skillsMapping));
|
|
180
168
|
|
|
181
169
|
/**
|
|
182
170
|
* Returns all uncompleted skills across all domains in list order.
|
|
183
171
|
* Used as a fallback when recommendation arrays are empty.
|
|
184
172
|
*/
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
}
|
|
173
|
+
exports.getUncompletedSkillsFromDomain = getUncompletedSkillsFromDomain;
|
|
174
|
+
const getAllUncompletedSkills = (domains, skillsMapping) => domains.filter(d => d.standards.some(s => !s.isCompleted)).flatMap(d => getUncompletedSkillsFromDomain(d, skillsMapping));
|
|
188
175
|
|
|
189
176
|
/** Moves item with the given id to the front: [0,1,2,3,4] with id of 3rd → [3,0,1,2,4] */
|
|
190
|
-
|
|
177
|
+
exports.getAllUncompletedSkills = getAllUncompletedSkills;
|
|
178
|
+
const shiftToBeginningOfArray = (id, items) => {
|
|
191
179
|
const index = items.findIndex(item => item._id === id);
|
|
192
180
|
if (index <= 0) return items;
|
|
193
181
|
return [items[index], ...items.slice(0, index), ...items.slice(index + 1)];
|
|
194
|
-
}
|
|
195
|
-
|
|
182
|
+
};
|
|
183
|
+
exports.shiftToBeginningOfArray = shiftToBeginningOfArray;
|
|
184
|
+
const withoutDuplicates = skills => {
|
|
196
185
|
const seen = new Set();
|
|
197
186
|
return skills.filter(skill => {
|
|
198
187
|
if (!skill) return false;
|
|
@@ -200,33 +189,37 @@ function withoutDuplicates(skills) {
|
|
|
200
189
|
seen.add(skill._id);
|
|
201
190
|
return true;
|
|
202
191
|
});
|
|
203
|
-
}
|
|
192
|
+
};
|
|
204
193
|
|
|
205
194
|
// Reorders grades starting from the given grade, wrapping around. [1,2,3] with start=2 → [2,3,1]
|
|
206
|
-
|
|
195
|
+
exports.withoutDuplicates = withoutDuplicates;
|
|
196
|
+
const startGradesFrom = (grades, startGrade) => {
|
|
207
197
|
const index = grades.findIndex(({
|
|
208
198
|
value
|
|
209
199
|
}) => value === startGrade);
|
|
210
200
|
if (index <= 0) return grades;
|
|
211
201
|
return [...grades.slice(index), ...grades.slice(0, index)];
|
|
212
|
-
}
|
|
202
|
+
};
|
|
203
|
+
exports.startGradesFrom = startGradesFrom;
|
|
213
204
|
const isFluencyDomain = title => {
|
|
214
205
|
return title.toLowerCase() === _pmProgressConstants.CustomDomain.FLUENCY.toLowerCase();
|
|
215
206
|
};
|
|
216
207
|
exports.isFluencyDomain = isFluencyDomain;
|
|
217
|
-
|
|
208
|
+
const formatGradeName = grade => {
|
|
218
209
|
if (grade === -1) return (0, _helpers.getText)('pmProgress.gradeOther');
|
|
219
210
|
if (grade === 0) return `${(0, _helpers.getText)('pmProgress.grade')} ${(0, _helpers.getText)('pmProgress.gradeK')}`;
|
|
220
211
|
return `${(0, _helpers.getText)('pmProgress.grade')} ${grade}`;
|
|
221
|
-
}
|
|
222
|
-
|
|
212
|
+
};
|
|
213
|
+
exports.formatGradeName = formatGradeName;
|
|
214
|
+
const formatGradeLabel = (grade, customLabelsMap) => {
|
|
223
215
|
if (!customLabelsMap) return formatGradeName(grade);
|
|
224
216
|
const label = customLabelsMap[String(grade)];
|
|
225
217
|
if (!label) return formatGradeName(grade);
|
|
226
218
|
if (label.noPrefix) return label.name;
|
|
227
219
|
return `${(0, _helpers.getText)('pmProgress.grade')} ${label.name}`;
|
|
228
|
-
}
|
|
229
|
-
|
|
220
|
+
};
|
|
221
|
+
exports.formatGradeLabel = formatGradeLabel;
|
|
222
|
+
const getTreeGrades = (tree, user) => {
|
|
230
223
|
const lockedGrades = new Set(user.setting.practiceModeLockedGrades);
|
|
231
224
|
const gradeNodes = Object.values(tree.treeMapping).filter(node => node?.type === 'grade' && node.attributes.grade !== null);
|
|
232
225
|
const uniqueSortedGrades = [...new Set(gradeNodes.map(node => node.attributes.grade))].sort((a, b) => a - b);
|
|
@@ -235,5 +228,6 @@ function getTreeGrades(tree, user) {
|
|
|
235
228
|
value: grade,
|
|
236
229
|
isLocked: lockedGrades.has(grade)
|
|
237
230
|
}));
|
|
238
|
-
}
|
|
231
|
+
};
|
|
232
|
+
exports.getTreeGrades = getTreeGrades;
|
|
239
233
|
//# sourceMappingURL=pmProgress.helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeUi","require","_pmProgressConstants","_chartHelpers","_helpers","groupStandardsByDomain","standardStats","treeMapping","grouped","Map","standardId","stat","Object","entries","domainId","skillIds","skillsCount","scorePercentage","skillsToPractice","has","set","completed","failed","length","unattempted","left","get","push","title","shortDescriptionTranslations","nameTranslations","subtitle","originalId","isCompleted","skillsLeft","averageScorePercentage","standards","sum","reduce","acc","s","Math","round","resolveDomainColors","nonFluencyIndex","color","COLORS","PRIMARY_ORANGE","borderColor","ORANGE_6","DOMAIN_COLORS","DOMAIN_BORDER_COLORS","getDomainStructure","data","Array","from","nonFluencyDomainIds","map","id","filter","isFluencyDomain","indexOf","backgroundColor","NEUTRAL_4","getInitialPmGrade","treeGrades","lockedGrades","enrolledGrades","userGrade","locked","Set","unlocked","g","sort","a","b","isUserGradeMissing","undefined","unlockedEnrolled","includes","min","nearestBelow","reverse","find","grade","nearestAbove","formatTime","ms","totalMinutes","floor","hours","isTreeDataReady","source","tree","stats","user","exports","MARGIN","createChartConfig","size","outerRadius","innerRadius","dynamicInnerRadius","gapBetweenSlices","cornerRadius","dynamicCornerRadius","pressOffset","borderWidth","colors","background","highlightedBackground","NEUTRAL_6","outerArc","strokeWidth","dashWidth","getAllSkillsFromStandard","standard","skillsMapping","Boolean","_id","difficulty","getUncompletedSkillsFromStandard","skillId","getUncompletedSkillsFromDomain","domain","excludeStandardId","flatMap","getAllUncompletedSkills","domains","d","some","shiftToBeginningOfArray","items","index","findIndex","item","slice","withoutDuplicates","skills","seen","skill","add","startGradesFrom","grades","startGrade","value","toLowerCase","CustomDomain","FLUENCY","formatGradeName","getText","formatGradeLabel","customLabelsMap","label","String","noPrefix","name","getTreeGrades","setting","practiceModeLockedGrades","gradeNodes","values","node","type","attributes","uniqueSortedGrades","isLocked"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/shared/pmProgress.helpers.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNativeUi","require","_pmProgressConstants","_chartHelpers","_helpers","groupStandardsByDomain","standardStats","treeMapping","grouped","Map","standardId","stat","Object","entries","domainId","skillIds","skillsCount","scorePercentage","skillsToPractice","has","set","completed","failed","length","unattempted","left","get","push","title","shortDescriptionTranslations","nameTranslations","subtitle","originalId","isCompleted","skillsLeft","averageScorePercentage","standards","sum","reduce","acc","s","Math","round","resolveDomainColors","nonFluencyIndex","color","COLORS","PRIMARY_ORANGE","borderColor","ORANGE_6","DOMAIN_COLORS","DOMAIN_BORDER_COLORS","getDomainStructure","data","Array","from","nonFluencyDomainIds","map","id","filter","isFluencyDomain","indexOf","backgroundColor","NEUTRAL_4","exports","getInitialPmGrade","treeGrades","lockedGrades","enrolledGrades","userGrade","locked","Set","unlocked","g","sort","a","b","isUserGradeMissing","undefined","unlockedEnrolled","includes","min","nearestBelow","reverse","find","grade","nearestAbove","formatTime","ms","totalMinutes","floor","hours","isTreeDataReady","source","tree","stats","user","createChartConfig","size","OUTER_MARGIN","outerRadius","innerRadius","dynamicInnerRadius","cornerRadius","dynamicCornerRadius","gapBetweenSlices","pressOffset","borderWidth","colors","background","NEUTRAL_1","highlightedBackground","NEUTRAL_6","outerArc","strokeWidth","dashWidth","getAllSkillsFromStandard","standard","skillsMapping","Boolean","_id","difficulty","getUncompletedSkillsFromStandard","skillId","getUncompletedSkillsFromDomain","domain","excludeStandardId","flatMap","getAllUncompletedSkills","domains","d","some","shiftToBeginningOfArray","items","index","findIndex","item","slice","withoutDuplicates","skills","seen","skill","add","startGradesFrom","grades","startGrade","value","toLowerCase","CustomDomain","FLUENCY","formatGradeName","getText","formatGradeLabel","customLabelsMap","label","String","noPrefix","name","getTreeGrades","setting","practiceModeLockedGrades","gradeNodes","values","node","type","attributes","uniqueSortedGrades","isLocked"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/shared/pmProgress.helpers.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,5 +8,5 @@ let RecommendationType = exports.RecommendationType = /*#__PURE__*/function (Rec
|
|
|
8
8
|
RecommendationType["MAGMA"] = "magma";
|
|
9
9
|
RecommendationType["TEACHER"] = "teacher";
|
|
10
10
|
return RecommendationType;
|
|
11
|
-
}({});
|
|
11
|
+
}({});
|
|
12
12
|
//# sourceMappingURL=pmProgress.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RecommendationType","exports"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/shared/pmProgress.types.ts"],"mappings":";;;;;;IAqEYA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA
|
|
1
|
+
{"version":3,"names":["RecommendationType","exports"],"sourceRoot":"../../../../../src","sources":["features/pmProgress/shared/pmProgress.types.ts"],"mappings":";;;;;;IAqEYA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet, View } from 'react-native';
|
|
5
|
+
import { COLORS, HeadingVariants, SPACING, Typography } from '@magmamath/react-native-ui';
|
|
6
|
+
import { SketchArrowRight } from "../../../../shared/icons/SketchArrowRight.js";
|
|
7
|
+
import { SliceDiamondIcon } from "../../../../shared/icons/SliceDiamondIcon.js";
|
|
8
|
+
import { useText } from "../../../../shared/translation/index.js";
|
|
9
|
+
import { useUnit, useStoreMap } from 'effector-react';
|
|
10
|
+
import { usePmProgress } from "../../context/PmProgressContext.js";
|
|
11
|
+
import { isFluencyDomain } from "../../shared/pmProgress.helpers.js";
|
|
12
|
+
import { OpeningLoaderId, SolvingFlow } from "../../shared/pmProgress.constants.js";
|
|
13
|
+
import { StartButton } from "./StartButton.js";
|
|
14
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
15
|
+
export const NextUp = () => {
|
|
16
|
+
const t = useText();
|
|
17
|
+
const {
|
|
18
|
+
model,
|
|
19
|
+
onStartPress
|
|
20
|
+
} = usePmProgress();
|
|
21
|
+
const status = useUnit(model.tree.$status);
|
|
22
|
+
const loaderOpeningId = useUnit(model.solving.$loaderOpeningId);
|
|
23
|
+
const nextUp = useStoreMap(model.tree.$domains, domains => domains.find(domain => {
|
|
24
|
+
const isFluency = isFluencyDomain(domain.title);
|
|
25
|
+
const isDomainCompleted = domain.standards.every(standard => standard.isCompleted);
|
|
26
|
+
return !isFluency && !isDomainCompleted;
|
|
27
|
+
}));
|
|
28
|
+
const isLoading = loaderOpeningId === OpeningLoaderId.START_BUTTON;
|
|
29
|
+
const isSkillOpeningActionPending = !!(loaderOpeningId !== null || status);
|
|
30
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
31
|
+
style: styles.container,
|
|
32
|
+
children: [nextUp && !status && /*#__PURE__*/_jsxs(_Fragment, {
|
|
33
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
34
|
+
style: styles.content,
|
|
35
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
36
|
+
style: styles.subtitle,
|
|
37
|
+
children: /*#__PURE__*/_jsx(Typography, {
|
|
38
|
+
variant: HeadingVariants.H2,
|
|
39
|
+
style: styles.dark,
|
|
40
|
+
children: t('pmProgress.nextUp')
|
|
41
|
+
})
|
|
42
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
43
|
+
style: [styles.row, styles.tilted],
|
|
44
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
|
45
|
+
variant: HeadingVariants.H7,
|
|
46
|
+
style: styles.muted,
|
|
47
|
+
children: nextUp?.title
|
|
48
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
49
|
+
style: styles.diamond,
|
|
50
|
+
children: /*#__PURE__*/_jsx(SliceDiamondIcon, {
|
|
51
|
+
color: nextUp?.color
|
|
52
|
+
})
|
|
53
|
+
})]
|
|
54
|
+
})]
|
|
55
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
56
|
+
style: styles.arrow,
|
|
57
|
+
children: /*#__PURE__*/_jsx(SketchArrowRight, {})
|
|
58
|
+
})]
|
|
59
|
+
}), /*#__PURE__*/_jsx(StartButton, {
|
|
60
|
+
onPress: async () => {
|
|
61
|
+
try {
|
|
62
|
+
model.solving.setLoaderOpeningId(OpeningLoaderId.START_BUTTON);
|
|
63
|
+
const skill = await model.solving.start({
|
|
64
|
+
type: SolvingFlow.MAGMA
|
|
65
|
+
});
|
|
66
|
+
await onStartPress?.(skill);
|
|
67
|
+
} finally {
|
|
68
|
+
model.solving.setLoaderOpeningId(null);
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
disabled: isSkillOpeningActionPending,
|
|
72
|
+
isLoading: isLoading,
|
|
73
|
+
isActive: isLoading,
|
|
74
|
+
withPulsation: !!nextUp && !isLoading && !isSkillOpeningActionPending && !status
|
|
75
|
+
})]
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
const styles = StyleSheet.create({
|
|
79
|
+
container: {
|
|
80
|
+
flexDirection: 'row',
|
|
81
|
+
alignItems: 'center',
|
|
82
|
+
gap: SPACING[400]
|
|
83
|
+
},
|
|
84
|
+
content: {
|
|
85
|
+
alignItems: 'center',
|
|
86
|
+
gap: SPACING[100]
|
|
87
|
+
},
|
|
88
|
+
dark: {
|
|
89
|
+
color: COLORS.NEUTRAL_9
|
|
90
|
+
},
|
|
91
|
+
subtitle: {
|
|
92
|
+
transform: [{
|
|
93
|
+
rotate: '355deg'
|
|
94
|
+
}],
|
|
95
|
+
marginRight: SPACING[300]
|
|
96
|
+
},
|
|
97
|
+
tilted: {
|
|
98
|
+
transform: [{
|
|
99
|
+
rotate: '355deg'
|
|
100
|
+
}]
|
|
101
|
+
},
|
|
102
|
+
row: {
|
|
103
|
+
flexDirection: 'row',
|
|
104
|
+
gap: SPACING[100]
|
|
105
|
+
},
|
|
106
|
+
muted: {
|
|
107
|
+
color: COLORS.NEUTRAL_8
|
|
108
|
+
},
|
|
109
|
+
diamond: {
|
|
110
|
+
bottom: 10,
|
|
111
|
+
transform: [{
|
|
112
|
+
rotate: '5deg'
|
|
113
|
+
}]
|
|
114
|
+
},
|
|
115
|
+
arrow: {
|
|
116
|
+
transform: [{
|
|
117
|
+
rotate: '358deg'
|
|
118
|
+
}]
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
//# sourceMappingURL=NextUp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","COLORS","HeadingVariants","SPACING","Typography","SketchArrowRight","SliceDiamondIcon","useText","useUnit","useStoreMap","usePmProgress","isFluencyDomain","OpeningLoaderId","SolvingFlow","StartButton","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","NextUp","t","model","onStartPress","status","tree","$status","loaderOpeningId","solving","$loaderOpeningId","nextUp","$domains","domains","find","domain","isFluency","title","isDomainCompleted","standards","every","standard","isCompleted","isLoading","START_BUTTON","isSkillOpeningActionPending","style","styles","container","children","content","subtitle","variant","H2","dark","row","tilted","H7","muted","diamond","color","arrow","onPress","setLoaderOpeningId","skill","start","type","MAGMA","disabled","isActive","withPulsation","create","flexDirection","alignItems","gap","NEUTRAL_9","transform","rotate","marginRight","NEUTRAL_8","bottom"],"sourceRoot":"../../../../../../src","sources":["features/pmProgress/components/header/NextUp.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,16 +4,13 @@ import React, { useState } from 'react';
|
|
|
4
4
|
import { Dimensions, Platform, StyleSheet, useWindowDimensions, View } from 'react-native';
|
|
5
5
|
import { Button, ButtonVariant, CaretDownIcon, CaretUpIcon, COLORS, Dropdown, HeadingVariants, Menu, SPACING, Typography } from '@magmamath/react-native-ui';
|
|
6
6
|
import { isWeb } from "../../../../shared/common.constants.js";
|
|
7
|
-
import { SketchArrowRight } from "../../../../shared/icons/SketchArrowRight.js";
|
|
8
|
-
import { SliceDiamondIcon } from "../../../../shared/icons/SliceDiamondIcon.js";
|
|
9
7
|
import { useText } from "../../../../shared/translation/index.js";
|
|
10
8
|
import { useUnit, useStoreMap } from 'effector-react';
|
|
11
9
|
import { usePmProgress } from "../../context/PmProgressContext.js";
|
|
12
|
-
import { formatGradeLabel
|
|
13
|
-
import { OpeningLoaderId, SolvingFlow } from "../../shared/pmProgress.constants.js";
|
|
14
|
-
import { StartButton } from "./StartButton.js";
|
|
10
|
+
import { formatGradeLabel } from "../../shared/pmProgress.helpers.js";
|
|
15
11
|
import { MenuIcon } from "../../../../shared/icons/MenuIcon.js";
|
|
16
|
-
import {
|
|
12
|
+
import { NextUp } from "./NextUp.js";
|
|
13
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
14
|
const menuItemProps = {
|
|
18
15
|
style: {
|
|
19
16
|
text: {
|
|
@@ -22,17 +19,19 @@ const menuItemProps = {
|
|
|
22
19
|
}
|
|
23
20
|
};
|
|
24
21
|
const BURGER_MENU_BREAKPOINT = 1024;
|
|
22
|
+
const SMALL_SCREEN_THRESHOLD = 568;
|
|
23
|
+
const SMALL_SCREEN_MENU_MAX_HEIGHT = 300;
|
|
24
|
+
const WINDOW_HEIGHT = Dimensions.get('window').height;
|
|
25
|
+
const MENU_MAX_HEIGHT = WINDOW_HEIGHT <= SMALL_SCREEN_THRESHOLD ? SMALL_SCREEN_MENU_MAX_HEIGHT : WINDOW_HEIGHT * 0.8;
|
|
25
26
|
export const PmProgressHeader = () => {
|
|
26
27
|
const t = useText();
|
|
27
28
|
const {
|
|
28
29
|
model,
|
|
29
|
-
onStartPress,
|
|
30
30
|
customGradeLabels,
|
|
31
31
|
readOnly,
|
|
32
32
|
onMenuPress
|
|
33
33
|
} = usePmProgress();
|
|
34
34
|
const [isDropdownOpen, setIsDropdownOpen] = useState(false);
|
|
35
|
-
const status = useUnit(model.tree.$status);
|
|
36
35
|
const dimensions = useWindowDimensions();
|
|
37
36
|
const withMenuButton = isWeb && dimensions.width <= BURGER_MENU_BREAKPOINT;
|
|
38
37
|
const grade = useUnit(model.tree.$grade);
|
|
@@ -46,14 +45,6 @@ export const PmProgressHeader = () => {
|
|
|
46
45
|
...menuItemProps
|
|
47
46
|
}))
|
|
48
47
|
});
|
|
49
|
-
const loaderOpeningId = useUnit(model.solving.$loaderOpeningId);
|
|
50
|
-
const nextUp = useStoreMap(model.tree.$domains, domains => domains.find(domain => {
|
|
51
|
-
const isFluency = isFluencyDomain(domain.title);
|
|
52
|
-
const isDomainCompleted = domain.standards.every(standard => standard.isCompleted);
|
|
53
|
-
return !isFluency && !isDomainCompleted;
|
|
54
|
-
}));
|
|
55
|
-
const isLoading = loaderOpeningId === OpeningLoaderId.START_BUTTON;
|
|
56
|
-
const isSkillOpeningActionPending = !!(loaderOpeningId !== null || status);
|
|
57
48
|
return /*#__PURE__*/_jsxs(View, {
|
|
58
49
|
style: styles.container,
|
|
59
50
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
@@ -99,59 +90,9 @@ export const PmProgressHeader = () => {
|
|
|
99
90
|
}
|
|
100
91
|
})
|
|
101
92
|
})]
|
|
102
|
-
}), !readOnly && /*#__PURE__*/
|
|
103
|
-
style: styles.nextUp,
|
|
104
|
-
children: [nextUp && !status && /*#__PURE__*/_jsxs(_Fragment, {
|
|
105
|
-
children: [/*#__PURE__*/_jsxs(View, {
|
|
106
|
-
style: styles.content,
|
|
107
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
108
|
-
style: styles.subtitle,
|
|
109
|
-
children: /*#__PURE__*/_jsx(Typography, {
|
|
110
|
-
variant: HeadingVariants.H2,
|
|
111
|
-
style: styles.dark,
|
|
112
|
-
children: t('pmProgress.nextUp')
|
|
113
|
-
})
|
|
114
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
115
|
-
style: [styles.row, styles.tilted],
|
|
116
|
-
children: [/*#__PURE__*/_jsx(Typography, {
|
|
117
|
-
variant: HeadingVariants.H7,
|
|
118
|
-
style: styles.muted,
|
|
119
|
-
children: nextUp?.title
|
|
120
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
121
|
-
style: styles.diamond,
|
|
122
|
-
children: /*#__PURE__*/_jsx(SliceDiamondIcon, {
|
|
123
|
-
color: nextUp?.color
|
|
124
|
-
})
|
|
125
|
-
})]
|
|
126
|
-
})]
|
|
127
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
128
|
-
style: styles.arrow,
|
|
129
|
-
children: /*#__PURE__*/_jsx(SketchArrowRight, {})
|
|
130
|
-
})]
|
|
131
|
-
}), /*#__PURE__*/_jsx(StartButton, {
|
|
132
|
-
onPress: async () => {
|
|
133
|
-
try {
|
|
134
|
-
model.solving.setLoaderOpeningId(OpeningLoaderId.START_BUTTON);
|
|
135
|
-
const skill = await model.solving.start({
|
|
136
|
-
type: SolvingFlow.MAGMA
|
|
137
|
-
});
|
|
138
|
-
await onStartPress?.(skill);
|
|
139
|
-
} finally {
|
|
140
|
-
model.solving.setLoaderOpeningId(null);
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
|
-
disabled: isSkillOpeningActionPending,
|
|
144
|
-
isLoading: isLoading,
|
|
145
|
-
isActive: isLoading,
|
|
146
|
-
withPulsation: !!nextUp && !isLoading && !isSkillOpeningActionPending && !status
|
|
147
|
-
})]
|
|
148
|
-
})]
|
|
93
|
+
}), !readOnly && /*#__PURE__*/_jsx(NextUp, {})]
|
|
149
94
|
});
|
|
150
95
|
};
|
|
151
|
-
const SMALL_SCREEN_THRESHOLD = 568;
|
|
152
|
-
const SMALL_SCREEN_MENU_MAX_HEIGHT = 300;
|
|
153
|
-
const WINDOW_HEIGHT = Dimensions.get('window').height;
|
|
154
|
-
const MENU_MAX_HEIGHT = WINDOW_HEIGHT <= SMALL_SCREEN_THRESHOLD ? SMALL_SCREEN_MENU_MAX_HEIGHT : WINDOW_HEIGHT * 0.8;
|
|
155
96
|
const styles = StyleSheet.create({
|
|
156
97
|
container: {
|
|
157
98
|
flexDirection: 'row',
|
|
@@ -184,44 +125,6 @@ const styles = StyleSheet.create({
|
|
|
184
125
|
scrollbarWidth: 'none'
|
|
185
126
|
}
|
|
186
127
|
})
|
|
187
|
-
},
|
|
188
|
-
nextUp: {
|
|
189
|
-
flexDirection: 'row',
|
|
190
|
-
alignItems: 'center',
|
|
191
|
-
gap: SPACING[400]
|
|
192
|
-
},
|
|
193
|
-
content: {
|
|
194
|
-
alignItems: 'center',
|
|
195
|
-
gap: SPACING[100]
|
|
196
|
-
},
|
|
197
|
-
subtitle: {
|
|
198
|
-
transform: [{
|
|
199
|
-
rotate: '355deg'
|
|
200
|
-
}],
|
|
201
|
-
marginRight: SPACING[300]
|
|
202
|
-
},
|
|
203
|
-
tilted: {
|
|
204
|
-
transform: [{
|
|
205
|
-
rotate: '355deg'
|
|
206
|
-
}]
|
|
207
|
-
},
|
|
208
|
-
row: {
|
|
209
|
-
flexDirection: 'row',
|
|
210
|
-
gap: SPACING[100]
|
|
211
|
-
},
|
|
212
|
-
muted: {
|
|
213
|
-
color: COLORS.NEUTRAL_8
|
|
214
|
-
},
|
|
215
|
-
diamond: {
|
|
216
|
-
bottom: 10,
|
|
217
|
-
transform: [{
|
|
218
|
-
rotate: '5deg'
|
|
219
|
-
}]
|
|
220
|
-
},
|
|
221
|
-
arrow: {
|
|
222
|
-
transform: [{
|
|
223
|
-
rotate: '358deg'
|
|
224
|
-
}]
|
|
225
128
|
}
|
|
226
129
|
});
|
|
227
130
|
//# sourceMappingURL=PmProgressHeader.js.map
|