@magmamath/students-features 1.3.26-rc.11 → 1.3.26-rc.13
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/matrix/components/MatrixCell.js +11 -12
- package/dist/commonjs/features/fluency/components/matrix/components/MatrixCell.js.map +1 -1
- package/dist/commonjs/features/fluency/components/session-results/FluencySessionResults.js +8 -0
- package/dist/commonjs/features/fluency/components/session-results/FluencySessionResults.js.map +1 -1
- package/dist/commonjs/features/fluency/fluency.constants.js +6 -6
- package/dist/commonjs/features/fluency/fluency.constants.js.map +1 -1
- package/dist/commonjs/features/fluency/fluency.helpers.js +7 -13
- package/dist/commonjs/features/fluency/fluency.helpers.js.map +1 -1
- package/dist/commonjs/features/fluency/model/FluencySolvingModel.js.map +1 -1
- package/dist/commonjs/features/fluency-teacher/assets/PersonIcon.js +32 -0
- package/dist/commonjs/features/fluency-teacher/assets/PersonIcon.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/assets/SortDefaultIcon.js +31 -0
- package/dist/commonjs/features/fluency-teacher/assets/SortDefaultIcon.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/FluencyTeacher.js +45 -0
- package/dist/commonjs/features/fluency-teacher/components/FluencyTeacher.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/FluencyTeacherFooter.js +43 -0
- package/dist/commonjs/features/fluency-teacher/components/FluencyTeacherFooter.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.js +95 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js +73 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.js +52 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.js +118 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js +77 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerStats.js +48 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerStats.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js +114 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/header/AverageTimePerStudent.js +135 -0
- package/dist/commonjs/features/fluency-teacher/components/header/AverageTimePerStudent.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/header/FluencyTeacherHeader.js +35 -0
- package/dist/commonjs/features/fluency-teacher/components/header/FluencyTeacherHeader.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/header/HardestFact.js +102 -0
- package/dist/commonjs/features/fluency-teacher/components/header/HardestFact.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/header/TopHardestFacts.js +99 -0
- package/dist/commonjs/features/fluency-teacher/components/header/TopHardestFacts.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.js +50 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixCell.js +48 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixCell.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixHeaderRow.js +53 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixHeaderRow.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixRow.js +59 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixRow.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.js +110 -0
- package/dist/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/AverageSortButton.js +78 -0
- package/dist/commonjs/features/fluency-teacher/components/table/AverageSortButton.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/FluencyTeacherFilters.js +35 -0
- package/dist/commonjs/features/fluency-teacher/components/table/FluencyTeacherFilters.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js +149 -0
- package/dist/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/OperatorBadge.js +40 -0
- package/dist/commonjs/features/fluency-teacher/components/table/OperatorBadge.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.js +84 -0
- package/dist/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/TableRow.js +128 -0
- package/dist/commonjs/features/fluency-teacher/components/table/TableRow.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.js +71 -0
- package/dist/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/context/TeacherFluencyContext.js +16 -0
- package/dist/commonjs/features/fluency-teacher/context/TeacherFluencyContext.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/fluencyTeacher.constants.js +61 -0
- package/dist/commonjs/features/fluency-teacher/fluencyTeacher.constants.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/fluencyTeacher.helpers.js +75 -0
- package/dist/commonjs/features/fluency-teacher/fluencyTeacher.helpers.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/fluencyTeacher.types.js +21 -0
- package/dist/commonjs/features/fluency-teacher/fluencyTeacher.types.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/hooks/useDrawerGrid.js +60 -0
- package/dist/commonjs/features/fluency-teacher/hooks/useDrawerGrid.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.js +37 -0
- package/dist/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/index.js +20 -0
- package/dist/commonjs/features/fluency-teacher/index.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyApiModel.js +15 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyApiModel.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.js +28 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyModel.js +40 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyModel.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyTableModel.js +49 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyTableModel.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/content/PmContent.js.map +1 -1
- package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js +3 -3
- package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js.map +1 -1
- package/dist/commonjs/features/pmProgress/components/locked/PmStatusOverlay.js.map +1 -1
- package/dist/commonjs/index.js +12 -0
- package/dist/commonjs/index.js.map +1 -1
- package/dist/module/features/fluency/components/matrix/components/MatrixCell.js +11 -12
- package/dist/module/features/fluency/components/matrix/components/MatrixCell.js.map +1 -1
- package/dist/module/features/fluency/components/session-results/FluencySessionResults.js +7 -1
- package/dist/module/features/fluency/components/session-results/FluencySessionResults.js.map +1 -1
- package/dist/module/features/fluency/fluency.constants.js +5 -5
- package/dist/module/features/fluency/fluency.constants.js.map +1 -1
- package/dist/module/features/fluency/fluency.helpers.js +6 -11
- package/dist/module/features/fluency/fluency.helpers.js.map +1 -1
- package/dist/module/features/fluency/model/FluencySolvingModel.js.map +1 -1
- package/dist/module/features/fluency-teacher/assets/PersonIcon.js +24 -0
- package/dist/module/features/fluency-teacher/assets/PersonIcon.js.map +1 -0
- package/dist/module/features/fluency-teacher/assets/SortDefaultIcon.js +23 -0
- package/dist/module/features/fluency-teacher/assets/SortDefaultIcon.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/FluencyTeacher.js +39 -0
- package/dist/module/features/fluency-teacher/components/FluencyTeacher.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/FluencyTeacherFooter.js +37 -0
- package/dist/module/features/fluency-teacher/components/FluencyTeacherFooter.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerHeader.js +89 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerHeader.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js +67 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerMatrixes.js +46 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerMatrixes.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.js +112 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js +71 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerStats.js +42 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerStats.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js +107 -0
- package/dist/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/header/AverageTimePerStudent.js +129 -0
- package/dist/module/features/fluency-teacher/components/header/AverageTimePerStudent.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/header/FluencyTeacherHeader.js +29 -0
- package/dist/module/features/fluency-teacher/components/header/FluencyTeacherHeader.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/header/HardestFact.js +96 -0
- package/dist/module/features/fluency-teacher/components/header/HardestFact.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/header/TopHardestFacts.js +93 -0
- package/dist/module/features/fluency-teacher/components/header/TopHardestFacts.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/matrix/DrawerMatrix.js +44 -0
- package/dist/module/features/fluency-teacher/components/matrix/DrawerMatrix.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/matrix/MatrixCell.js +42 -0
- package/dist/module/features/fluency-teacher/components/matrix/MatrixCell.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/matrix/MatrixHeaderRow.js +47 -0
- package/dist/module/features/fluency-teacher/components/matrix/MatrixHeaderRow.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/matrix/MatrixRow.js +53 -0
- package/dist/module/features/fluency-teacher/components/matrix/MatrixRow.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/AllPupilsTableRow.js +104 -0
- package/dist/module/features/fluency-teacher/components/table/AllPupilsTableRow.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/AverageSortButton.js +72 -0
- package/dist/module/features/fluency-teacher/components/table/AverageSortButton.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/FluencyTeacherFilters.js +29 -0
- package/dist/module/features/fluency-teacher/components/table/FluencyTeacherFilters.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js +143 -0
- package/dist/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/OperatorBadge.js +34 -0
- package/dist/module/features/fluency-teacher/components/table/OperatorBadge.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/TableColumnSortButton.js +78 -0
- package/dist/module/features/fluency-teacher/components/table/TableColumnSortButton.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/TableRow.js +121 -0
- package/dist/module/features/fluency-teacher/components/table/TableRow.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/TableRowAverageProgress.js +65 -0
- package/dist/module/features/fluency-teacher/components/table/TableRowAverageProgress.js.map +1 -0
- package/dist/module/features/fluency-teacher/context/TeacherFluencyContext.js +11 -0
- package/dist/module/features/fluency-teacher/context/TeacherFluencyContext.js.map +1 -0
- package/dist/module/features/fluency-teacher/fluencyTeacher.constants.js +57 -0
- package/dist/module/features/fluency-teacher/fluencyTeacher.constants.js.map +1 -0
- package/dist/module/features/fluency-teacher/fluencyTeacher.helpers.js +67 -0
- package/dist/module/features/fluency-teacher/fluencyTeacher.helpers.js.map +1 -0
- package/dist/module/features/fluency-teacher/fluencyTeacher.types.js +17 -0
- package/dist/module/features/fluency-teacher/fluencyTeacher.types.js.map +1 -0
- package/dist/module/features/fluency-teacher/hooks/useDrawerGrid.js +55 -0
- package/dist/module/features/fluency-teacher/hooks/useDrawerGrid.js.map +1 -0
- package/dist/module/features/fluency-teacher/hooks/useDrawerMatrix.js +32 -0
- package/dist/module/features/fluency-teacher/hooks/useDrawerMatrix.js.map +1 -0
- package/dist/module/features/fluency-teacher/index.js +5 -0
- package/dist/module/features/fluency-teacher/index.js.map +1 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyApiModel.js +10 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyApiModel.js.map +1 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.js +23 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.js.map +1 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyModel.js +35 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyModel.js.map +1 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyTableModel.js +44 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyTableModel.js.map +1 -0
- package/dist/module/features/pmProgress/components/content/PmContent.js.map +1 -1
- package/dist/module/features/pmProgress/components/header/PmProgressHeader.js +1 -1
- package/dist/module/features/pmProgress/components/header/PmProgressHeader.js.map +1 -1
- package/dist/module/features/pmProgress/components/locked/PmStatusOverlay.js.map +1 -1
- package/dist/module/index.js +1 -0
- package/dist/module/index.js.map +1 -1
- package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixCell.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/components/session-results/FluencySessionResults.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/fluency.constants.d.ts +5 -5
- package/dist/typescript/commonjs/features/fluency/fluency.constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/fluency.helpers.d.ts +1 -2
- package/dist/typescript/commonjs/features/fluency/fluency.helpers.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/fluency.types.d.ts +2 -2
- package/dist/typescript/commonjs/features/fluency/fluency.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/model/FluencySolvingModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency-teacher/assets/PersonIcon.d.ts +4 -0
- package/dist/typescript/commonjs/features/fluency-teacher/assets/PersonIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/assets/SortDefaultIcon.d.ts +4 -0
- package/dist/typescript/commonjs/features/fluency-teacher/assets/SortDefaultIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/FluencyTeacher.d.ts +11 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/FluencyTeacher.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/FluencyTeacherFooter.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/FluencyTeacherFooter.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.d.ts +9 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts +12 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts +9 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerStats.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerStats.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/AverageTimePerStudent.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/AverageTimePerStudent.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/FluencyTeacherHeader.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/FluencyTeacherHeader.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/HardestFact.d.ts +11 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/HardestFact.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/TopHardestFacts.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/TopHardestFacts.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts +14 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixCell.d.ts +11 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixCell.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixRow.d.ts +12 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixRow.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/AverageSortButton.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/AverageSortButton.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/FluencyTeacherFilters.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/FluencyTeacherFilters.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/OperatorBadge.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/OperatorBadge.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.d.ts +13 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRow.d.ts +11 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRow.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts +7 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/context/TeacherFluencyContext.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/context/TeacherFluencyContext.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.constants.d.ts +5 -0
- package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.constants.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.helpers.d.ts +22 -0
- package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.helpers.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.types.d.ts +115 -0
- package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.types.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerGrid.d.ts +15 -0
- package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerGrid.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.d.ts +14 -0
- package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/index.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/index.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyApiModel.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyApiModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyModel.d.ts +13 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyTableModel.d.ts +27 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyTableModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/content/PmContent.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/pmProgress/components/locked/PmStatusOverlay.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/pmProgress/components/standard/StandardTag.d.ts +1 -1
- package/dist/typescript/commonjs/features/pmProgress/components/standard/StandardTag.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/pmProgress/context/PmProgressContext.d.ts +1 -1
- package/dist/typescript/commonjs/features/pmProgress/context/PmProgressContext.d.ts.map +1 -1
- package/dist/typescript/commonjs/index.d.ts +1 -0
- package/dist/typescript/commonjs/index.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/components/matrix/components/MatrixCell.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/components/session-results/FluencySessionResults.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/fluency.constants.d.ts +5 -5
- package/dist/typescript/module/features/fluency/fluency.constants.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/fluency.helpers.d.ts +1 -2
- package/dist/typescript/module/features/fluency/fluency.helpers.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/fluency.types.d.ts +2 -2
- package/dist/typescript/module/features/fluency/fluency.types.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/model/FluencySolvingModel.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency-teacher/assets/PersonIcon.d.ts +4 -0
- package/dist/typescript/module/features/fluency-teacher/assets/PersonIcon.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/assets/SortDefaultIcon.d.ts +4 -0
- package/dist/typescript/module/features/fluency-teacher/assets/SortDefaultIcon.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/FluencyTeacher.d.ts +11 -0
- package/dist/typescript/module/features/fluency-teacher/components/FluencyTeacher.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/FluencyTeacherFooter.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/FluencyTeacherFooter.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerHeader.d.ts +9 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerHeader.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMatrixes.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMatrixes.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts +12 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts +9 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerStats.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerStats.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/AverageTimePerStudent.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/AverageTimePerStudent.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/FluencyTeacherHeader.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/FluencyTeacherHeader.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/HardestFact.d.ts +11 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/HardestFact.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/TopHardestFacts.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/TopHardestFacts.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts +14 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixCell.d.ts +11 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixCell.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixRow.d.ts +12 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixRow.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/AllPupilsTableRow.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/AllPupilsTableRow.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/AverageSortButton.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/AverageSortButton.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/FluencyTeacherFilters.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/FluencyTeacherFilters.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/OperatorBadge.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/OperatorBadge.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/TableColumnSortButton.d.ts +13 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/TableColumnSortButton.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/TableRow.d.ts +11 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/TableRow.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts +7 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/context/TeacherFluencyContext.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/context/TeacherFluencyContext.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.constants.d.ts +5 -0
- package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.constants.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.helpers.d.ts +22 -0
- package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.helpers.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.types.d.ts +115 -0
- package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.types.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerGrid.d.ts +15 -0
- package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerGrid.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerMatrix.d.ts +14 -0
- package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerMatrix.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/index.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/index.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyApiModel.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyApiModel.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyModel.d.ts +13 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyModel.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyTableModel.d.ts +27 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyTableModel.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/content/PmContent.d.ts.map +1 -1
- package/dist/typescript/module/features/pmProgress/components/locked/PmStatusOverlay.d.ts.map +1 -1
- package/dist/typescript/module/features/pmProgress/components/standard/StandardTag.d.ts +1 -1
- package/dist/typescript/module/features/pmProgress/components/standard/StandardTag.d.ts.map +1 -1
- package/dist/typescript/module/features/pmProgress/context/PmProgressContext.d.ts +1 -1
- package/dist/typescript/module/features/pmProgress/context/PmProgressContext.d.ts.map +1 -1
- package/dist/typescript/module/index.d.ts +1 -0
- package/dist/typescript/module/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/fluency/components/matrix/components/MatrixCell.tsx +11 -11
- package/src/features/fluency/components/session-results/FluencySessionResults.tsx +5 -1
- package/src/features/fluency/fluency.constants.ts +5 -5
- package/src/features/fluency/fluency.helpers.ts +8 -9
- package/src/features/fluency/fluency.types.ts +2 -2
- package/src/features/fluency/model/FluencySolvingModel.ts +1 -2
- package/src/features/fluency-teacher/assets/PersonIcon.tsx +16 -0
- package/src/features/fluency-teacher/assets/SortDefaultIcon.tsx +10 -0
- package/src/features/fluency-teacher/components/FluencyTeacher.tsx +41 -0
- package/src/features/fluency-teacher/components/FluencyTeacherFooter.tsx +38 -0
- package/src/features/fluency-teacher/components/drawer/DrawerHeader.tsx +87 -0
- package/src/features/fluency-teacher/components/drawer/DrawerMasteryLegend.tsx +53 -0
- package/src/features/fluency-teacher/components/drawer/DrawerMatrixes.tsx +48 -0
- package/src/features/fluency-teacher/components/drawer/DrawerOperatorBox.tsx +99 -0
- package/src/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.tsx +65 -0
- package/src/features/fluency-teacher/components/drawer/DrawerStats.tsx +47 -0
- package/src/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.tsx +89 -0
- package/src/features/fluency-teacher/components/header/AverageTimePerStudent.tsx +120 -0
- package/src/features/fluency-teacher/components/header/FluencyTeacherHeader.tsx +28 -0
- package/src/features/fluency-teacher/components/header/HardestFact.tsx +98 -0
- package/src/features/fluency-teacher/components/header/TopHardestFacts.tsx +98 -0
- package/src/features/fluency-teacher/components/matrix/DrawerMatrix.tsx +54 -0
- package/src/features/fluency-teacher/components/matrix/MatrixCell.tsx +38 -0
- package/src/features/fluency-teacher/components/matrix/MatrixHeaderRow.tsx +37 -0
- package/src/features/fluency-teacher/components/matrix/MatrixRow.tsx +57 -0
- package/src/features/fluency-teacher/components/table/AllPupilsTableRow.tsx +96 -0
- package/src/features/fluency-teacher/components/table/AverageSortButton.tsx +72 -0
- package/src/features/fluency-teacher/components/table/FluencyTeacherFilters.tsx +23 -0
- package/src/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.tsx +134 -0
- package/src/features/fluency-teacher/components/table/OperatorBadge.tsx +29 -0
- package/src/features/fluency-teacher/components/table/TableColumnSortButton.tsx +87 -0
- package/src/features/fluency-teacher/components/table/TableRow.tsx +114 -0
- package/src/features/fluency-teacher/components/table/TableRowAverageProgress.tsx +65 -0
- package/src/features/fluency-teacher/context/TeacherFluencyContext.ts +16 -0
- package/src/features/fluency-teacher/fluencyTeacher.constants.ts +62 -0
- package/src/features/fluency-teacher/fluencyTeacher.helpers.ts +72 -0
- package/src/features/fluency-teacher/fluencyTeacher.types.ts +135 -0
- package/src/features/fluency-teacher/hooks/useDrawerGrid.ts +58 -0
- package/src/features/fluency-teacher/hooks/useDrawerMatrix.ts +45 -0
- package/src/features/fluency-teacher/index.ts +2 -0
- package/src/features/fluency-teacher/model/TeacherFluencyApiModel.ts +18 -0
- package/src/features/fluency-teacher/model/TeacherFluencyFiltersModel.ts +17 -0
- package/src/features/fluency-teacher/model/TeacherFluencyModel.ts +36 -0
- package/src/features/fluency-teacher/model/TeacherFluencyTableModel.ts +46 -0
- package/src/features/pmProgress/components/content/PmContent.tsx +0 -1
- package/src/features/pmProgress/components/header/PmProgressHeader.tsx +1 -1
- package/src/features/pmProgress/components/locked/PmStatusOverlay.tsx +8 -1
- package/src/features/pmProgress/components/standard/StandardTag.tsx +1 -1
- package/src/features/pmProgress/context/PmProgressContext.tsx +1 -1
- package/src/index.ts +1 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { StyleSheet, View } from 'react-native'
|
|
3
|
+
import { COLORS, HeadingVariants, SPACING, StudentsIcon, Typography } from '@magmamath/react-native-ui'
|
|
4
|
+
import { useUnit } from 'effector-react'
|
|
5
|
+
import { useTeacherFluency } from '../../context/TeacherFluencyContext'
|
|
6
|
+
import { FluencyOperator } from '../../fluencyTeacher.types'
|
|
7
|
+
import { toAverageLabel } from '../../fluencyTeacher.helpers'
|
|
8
|
+
import { TABLE_OPERATOR_COLUMNS } from '../../fluencyTeacher.constants'
|
|
9
|
+
import { TableRowAverageProgress } from './TableRowAverageProgress'
|
|
10
|
+
import { OperatorBadge } from './OperatorBadge'
|
|
11
|
+
|
|
12
|
+
export const AllPupilsTableRow = () => {
|
|
13
|
+
const { model } = useTeacherFluency()
|
|
14
|
+
const stats = useUnit(model.table.$stats)
|
|
15
|
+
|
|
16
|
+
if (!stats) return null
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<View style={styles.row}>
|
|
20
|
+
<View style={styles.name}>
|
|
21
|
+
<View style={styles.icon}>
|
|
22
|
+
<StudentsIcon size={25} color={COLORS.NEUTRAL_7} />
|
|
23
|
+
</View>
|
|
24
|
+
<Typography variant={HeadingVariants.H7} style={styles.nameText} numberOfLines={1}>
|
|
25
|
+
All pupils
|
|
26
|
+
</Typography>
|
|
27
|
+
</View>
|
|
28
|
+
|
|
29
|
+
<View style={styles.average}>
|
|
30
|
+
<TableRowAverageProgress
|
|
31
|
+
percent={stats.classAverage}
|
|
32
|
+
label={toAverageLabel(stats.classAverage / 100)}
|
|
33
|
+
/>
|
|
34
|
+
</View>
|
|
35
|
+
|
|
36
|
+
<View style={styles.operators}>
|
|
37
|
+
{TABLE_OPERATOR_COLUMNS.map(({ operator, badgeBg, badgeText }) => (
|
|
38
|
+
<View key={operator} style={styles.operator}>
|
|
39
|
+
<OperatorBadge
|
|
40
|
+
value={stats.operatorAverages[operator as FluencyOperator]}
|
|
41
|
+
bgColor={badgeBg}
|
|
42
|
+
textColor={badgeText}
|
|
43
|
+
/>
|
|
44
|
+
</View>
|
|
45
|
+
))}
|
|
46
|
+
</View>
|
|
47
|
+
</View>
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const styles = StyleSheet.create({
|
|
52
|
+
row: {
|
|
53
|
+
flexDirection: 'row',
|
|
54
|
+
alignItems: 'center',
|
|
55
|
+
paddingHorizontal: SPACING[400],
|
|
56
|
+
paddingVertical: SPACING[200],
|
|
57
|
+
gap: SPACING[400],
|
|
58
|
+
backgroundColor: COLORS.NEUTRAL_2,
|
|
59
|
+
borderBottomWidth: 1,
|
|
60
|
+
borderBottomColor: COLORS.NEUTRAL_4,
|
|
61
|
+
},
|
|
62
|
+
name: {
|
|
63
|
+
width: 137,
|
|
64
|
+
height: 40,
|
|
65
|
+
flexDirection: 'row',
|
|
66
|
+
alignItems: 'center',
|
|
67
|
+
gap: 12,
|
|
68
|
+
},
|
|
69
|
+
icon: {
|
|
70
|
+
width: 25,
|
|
71
|
+
height: 25,
|
|
72
|
+
alignItems: 'center',
|
|
73
|
+
justifyContent: 'center',
|
|
74
|
+
},
|
|
75
|
+
nameText: {
|
|
76
|
+
width: 100,
|
|
77
|
+
color: COLORS.NEUTRAL_9,
|
|
78
|
+
},
|
|
79
|
+
average: {
|
|
80
|
+
width: 145,
|
|
81
|
+
height: 40,
|
|
82
|
+
paddingHorizontal: 12,
|
|
83
|
+
justifyContent: 'center',
|
|
84
|
+
},
|
|
85
|
+
operators: {
|
|
86
|
+
flex: 1,
|
|
87
|
+
height: 40,
|
|
88
|
+
flexDirection: 'row',
|
|
89
|
+
alignItems: 'center',
|
|
90
|
+
paddingHorizontal: SPACING[800],
|
|
91
|
+
},
|
|
92
|
+
operator: {
|
|
93
|
+
flex: 1,
|
|
94
|
+
alignItems: 'center',
|
|
95
|
+
},
|
|
96
|
+
})
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { Pressable, StyleSheet, Text, View } from 'react-native'
|
|
3
|
+
import {
|
|
4
|
+
CaretDownIcon,
|
|
5
|
+
CaretUpIcon,
|
|
6
|
+
COLORS,
|
|
7
|
+
FONT_FAMILY,
|
|
8
|
+
SHADOWS,
|
|
9
|
+
SPACING,
|
|
10
|
+
StudentsIcon,
|
|
11
|
+
} from '@magmamath/react-native-ui'
|
|
12
|
+
import { SortDefaultIcon } from '../../assets/SortDefaultIcon'
|
|
13
|
+
import type { SortState } from '../../fluencyTeacher.types'
|
|
14
|
+
|
|
15
|
+
export type AverageSortButtonProps = {
|
|
16
|
+
sort: SortState
|
|
17
|
+
onPress: () => void
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const AverageSortButton = ({ sort, onPress }: AverageSortButtonProps) => {
|
|
21
|
+
const isActive = sort.column === 'average'
|
|
22
|
+
const color = isActive ? COLORS.NEUTRAL_1 : COLORS.NEUTRAL_7
|
|
23
|
+
|
|
24
|
+
const ActiveSortIcon = (() => {
|
|
25
|
+
return sort.direction === 'desc' ? (
|
|
26
|
+
<CaretUpIcon size={12} color={color} />
|
|
27
|
+
) : (
|
|
28
|
+
<CaretDownIcon size={12} color={color} />
|
|
29
|
+
)
|
|
30
|
+
})()
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<Pressable onPress={onPress} style={[styles.button, isActive && styles.buttonActive]}>
|
|
34
|
+
<View style={styles.iconWrapper}>
|
|
35
|
+
<StudentsIcon size={16} color={color} />
|
|
36
|
+
</View>
|
|
37
|
+
<Text selectable={false} style={[styles.label, { color }]}>
|
|
38
|
+
Average
|
|
39
|
+
</Text>
|
|
40
|
+
{isActive ? ActiveSortIcon : <SortDefaultIcon size={10} color={color} />}
|
|
41
|
+
</Pressable>
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const styles = StyleSheet.create({
|
|
46
|
+
button: {
|
|
47
|
+
flexDirection: 'row',
|
|
48
|
+
alignItems: 'center',
|
|
49
|
+
gap: SPACING[100],
|
|
50
|
+
paddingLeft: 6,
|
|
51
|
+
paddingRight: SPACING[200],
|
|
52
|
+
paddingVertical: SPACING[100],
|
|
53
|
+
borderRadius: 6,
|
|
54
|
+
borderWidth: 0.5,
|
|
55
|
+
borderColor: COLORS.NEUTRAL_3,
|
|
56
|
+
backgroundColor: COLORS.NEUTRAL_1,
|
|
57
|
+
...SHADOWS[2],
|
|
58
|
+
},
|
|
59
|
+
buttonActive: {
|
|
60
|
+
backgroundColor: COLORS.PRIMARY_YELLOW,
|
|
61
|
+
borderColor: COLORS.PRIMARY_YELLOW,
|
|
62
|
+
},
|
|
63
|
+
iconWrapper: {
|
|
64
|
+
marginHorizontal: SPACING[100],
|
|
65
|
+
},
|
|
66
|
+
label: {
|
|
67
|
+
fontFamily: FONT_FAMILY.buenosAiresBold,
|
|
68
|
+
fontSize: 12,
|
|
69
|
+
letterSpacing: 0.24,
|
|
70
|
+
textTransform: 'uppercase',
|
|
71
|
+
},
|
|
72
|
+
})
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { View, StyleSheet } from 'react-native'
|
|
3
|
+
import { useUnit } from 'effector-react'
|
|
4
|
+
import { Search, SPACING } from '@magmamath/react-native-ui'
|
|
5
|
+
import { useTeacherFluency } from '../../context/TeacherFluencyContext'
|
|
6
|
+
|
|
7
|
+
export const FluencyTeacherFilters = () => {
|
|
8
|
+
const { model } = useTeacherFluency()
|
|
9
|
+
const searchValue = useUnit(model.filters.$search)
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<View style={styles.container}>
|
|
13
|
+
<Search placeholder="Search" onChangeText={model.filters.setSearch} value={searchValue} />
|
|
14
|
+
</View>
|
|
15
|
+
)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const styles = StyleSheet.create({
|
|
19
|
+
container: {
|
|
20
|
+
gap: SPACING[400],
|
|
21
|
+
width: 250,
|
|
22
|
+
},
|
|
23
|
+
})
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { ActivityIndicator, FlatList, StyleSheet, View } from 'react-native'
|
|
3
|
+
import { useStoreMap, useUnit } from 'effector-react'
|
|
4
|
+
import { BORDER_RADIUS, COLORS, SHADOWS, SPACING } from '@magmamath/react-native-ui'
|
|
5
|
+
import { useTeacherFluency } from '../../context/TeacherFluencyContext'
|
|
6
|
+
import { TableRow } from './TableRow'
|
|
7
|
+
import { TABLE_OPERATOR_COLUMNS } from '../../fluencyTeacher.constants'
|
|
8
|
+
import { TableColumnSortButton } from './TableColumnSortButton'
|
|
9
|
+
import { AllPupilsTableRow } from './AllPupilsTableRow'
|
|
10
|
+
import { AverageSortButton } from './AverageSortButton'
|
|
11
|
+
|
|
12
|
+
export const FluencyTeacherStudentsTable = () => {
|
|
13
|
+
const { model } = useTeacherFluency()
|
|
14
|
+
const { sort, search, isLoading } = useUnit({
|
|
15
|
+
sort: model.filters.$sort,
|
|
16
|
+
search: model.filters.$search,
|
|
17
|
+
isLoading: model.api.getClassSummaryFx.pending,
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
const sortedStudents = useStoreMap({
|
|
21
|
+
store: model.table.$table,
|
|
22
|
+
keys: [search, sort] as const,
|
|
23
|
+
fn: (students, [searchTerm, sortState]) => {
|
|
24
|
+
const filtered = searchTerm
|
|
25
|
+
? students.filter((s) => s.name.toLowerCase().includes(searchTerm.toLowerCase()))
|
|
26
|
+
: students
|
|
27
|
+
return [...filtered].sort((a, b) => {
|
|
28
|
+
const aVal = sortState.column === 'average' ? a.averagePercent : a.scores[sortState.column]
|
|
29
|
+
const bVal = sortState.column === 'average' ? b.averagePercent : b.scores[sortState.column]
|
|
30
|
+
return sortState.direction === 'desc' ? bVal - aVal : aVal - bVal
|
|
31
|
+
})
|
|
32
|
+
},
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<View style={styles.container}>
|
|
37
|
+
<View style={[styles.row, styles.headerRow]}>
|
|
38
|
+
<View style={styles.nameCell} />
|
|
39
|
+
|
|
40
|
+
<View style={styles.average}>
|
|
41
|
+
<AverageSortButton sort={sort} onPress={() => model.filters.toggleSort('average')} />
|
|
42
|
+
</View>
|
|
43
|
+
|
|
44
|
+
<View style={styles.operators}>
|
|
45
|
+
{TABLE_OPERATOR_COLUMNS.map(({ operator, label, symbol, badgeBg, badgeText }) => (
|
|
46
|
+
<View key={operator} style={styles.operator}>
|
|
47
|
+
<TableColumnSortButton
|
|
48
|
+
symbol={symbol}
|
|
49
|
+
label={label}
|
|
50
|
+
isActive={sort.column === operator}
|
|
51
|
+
direction={sort.direction}
|
|
52
|
+
activeBg={badgeBg}
|
|
53
|
+
activeText={badgeText}
|
|
54
|
+
onPress={() => model.filters.toggleSort(operator)}
|
|
55
|
+
/>
|
|
56
|
+
</View>
|
|
57
|
+
))}
|
|
58
|
+
</View>
|
|
59
|
+
</View>
|
|
60
|
+
|
|
61
|
+
{isLoading ? (
|
|
62
|
+
<View style={styles.loader}>
|
|
63
|
+
<ActivityIndicator size="large" color={COLORS.PRIMARY_BLUE} />
|
|
64
|
+
</View>
|
|
65
|
+
) : (
|
|
66
|
+
<>
|
|
67
|
+
<AllPupilsTableRow />
|
|
68
|
+
<FlatList
|
|
69
|
+
data={sortedStudents}
|
|
70
|
+
keyExtractor={(student) => student.id}
|
|
71
|
+
renderItem={({ item: student }) => (
|
|
72
|
+
<TableRow
|
|
73
|
+
name={student.name}
|
|
74
|
+
onPress={() => model.table.setStudentInfoDrawer(student)}
|
|
75
|
+
averagePercent={student.averagePercent}
|
|
76
|
+
averageLabel={student.averageLabel}
|
|
77
|
+
scores={student.scores}
|
|
78
|
+
/>
|
|
79
|
+
)}
|
|
80
|
+
/>
|
|
81
|
+
</>
|
|
82
|
+
)}
|
|
83
|
+
</View>
|
|
84
|
+
)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const styles = StyleSheet.create({
|
|
88
|
+
container: {
|
|
89
|
+
flex: 1,
|
|
90
|
+
borderRadius: BORDER_RADIUS[300],
|
|
91
|
+
overflow: 'hidden',
|
|
92
|
+
...SHADOWS[1],
|
|
93
|
+
},
|
|
94
|
+
loader: {
|
|
95
|
+
flex: 1,
|
|
96
|
+
justifyContent: 'center',
|
|
97
|
+
alignItems: 'center',
|
|
98
|
+
},
|
|
99
|
+
row: {
|
|
100
|
+
flexDirection: 'row',
|
|
101
|
+
alignItems: 'center',
|
|
102
|
+
paddingHorizontal: SPACING[400],
|
|
103
|
+
paddingVertical: SPACING[200],
|
|
104
|
+
gap: SPACING[400],
|
|
105
|
+
backgroundColor: COLORS.NEUTRAL_1,
|
|
106
|
+
borderBottomWidth: 1,
|
|
107
|
+
borderBottomColor: COLORS.NEUTRAL_4,
|
|
108
|
+
},
|
|
109
|
+
headerRow: {
|
|
110
|
+
paddingVertical: SPACING[100],
|
|
111
|
+
backgroundColor: COLORS.NEUTRAL_2,
|
|
112
|
+
},
|
|
113
|
+
nameCell: {
|
|
114
|
+
width: 137,
|
|
115
|
+
height: 40,
|
|
116
|
+
},
|
|
117
|
+
average: {
|
|
118
|
+
width: 145,
|
|
119
|
+
height: 40,
|
|
120
|
+
paddingHorizontal: 12,
|
|
121
|
+
justifyContent: 'center',
|
|
122
|
+
},
|
|
123
|
+
operators: {
|
|
124
|
+
flex: 1,
|
|
125
|
+
height: 40,
|
|
126
|
+
flexDirection: 'row',
|
|
127
|
+
alignItems: 'center',
|
|
128
|
+
paddingHorizontal: SPACING[800],
|
|
129
|
+
},
|
|
130
|
+
operator: {
|
|
131
|
+
flex: 1,
|
|
132
|
+
alignItems: 'center',
|
|
133
|
+
},
|
|
134
|
+
})
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { StyleSheet, View } from 'react-native'
|
|
3
|
+
import { BORDER_RADIUS, HeadingVariants, SPACING, Typography } from '@magmamath/react-native-ui'
|
|
4
|
+
|
|
5
|
+
export type OperatorBadgeProps = {
|
|
6
|
+
value: number
|
|
7
|
+
bgColor: string
|
|
8
|
+
textColor: string
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const OperatorBadge = ({ value, bgColor, textColor }: OperatorBadgeProps) => (
|
|
12
|
+
<View style={[styles.badge, { backgroundColor: bgColor }]}>
|
|
13
|
+
<Typography variant={HeadingVariants.H9} style={[styles.badgeText, { color: textColor }]}>
|
|
14
|
+
{value}%
|
|
15
|
+
</Typography>
|
|
16
|
+
</View>
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
const styles = StyleSheet.create({
|
|
20
|
+
badge: {
|
|
21
|
+
width: 90,
|
|
22
|
+
paddingVertical: SPACING[200],
|
|
23
|
+
borderRadius: BORDER_RADIUS[200],
|
|
24
|
+
alignItems: 'center',
|
|
25
|
+
},
|
|
26
|
+
badgeText: {
|
|
27
|
+
textAlign: 'center',
|
|
28
|
+
},
|
|
29
|
+
})
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { Pressable, StyleSheet, Text } from 'react-native'
|
|
3
|
+
import {
|
|
4
|
+
CaretDownIcon,
|
|
5
|
+
CaretUpIcon,
|
|
6
|
+
COLORS,
|
|
7
|
+
FONT_FAMILY,
|
|
8
|
+
SHADOWS,
|
|
9
|
+
SPACING,
|
|
10
|
+
} from '@magmamath/react-native-ui'
|
|
11
|
+
import { SortDefaultIcon } from '../../assets/SortDefaultIcon'
|
|
12
|
+
import type { SortDirection } from '../../fluencyTeacher.types'
|
|
13
|
+
|
|
14
|
+
export type TableColumnSortButtonProps = {
|
|
15
|
+
symbol: string
|
|
16
|
+
label: string
|
|
17
|
+
isActive: boolean
|
|
18
|
+
direction: SortDirection
|
|
19
|
+
activeBg: string
|
|
20
|
+
activeText: string
|
|
21
|
+
onPress: () => void
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export const TableColumnSortButton = ({
|
|
25
|
+
symbol,
|
|
26
|
+
label,
|
|
27
|
+
isActive,
|
|
28
|
+
direction,
|
|
29
|
+
activeBg,
|
|
30
|
+
activeText,
|
|
31
|
+
onPress,
|
|
32
|
+
}: TableColumnSortButtonProps) => {
|
|
33
|
+
const contentColor = isActive ? activeText : COLORS.NEUTRAL_7
|
|
34
|
+
return (
|
|
35
|
+
<Pressable
|
|
36
|
+
onPress={onPress}
|
|
37
|
+
style={[styles.sortButton, isActive && { backgroundColor: activeBg, borderColor: activeBg }]}
|
|
38
|
+
>
|
|
39
|
+
<Text selectable={false} style={[styles.sortButtonSymbol, { color: contentColor }]}>
|
|
40
|
+
{symbol}
|
|
41
|
+
</Text>
|
|
42
|
+
<Text selectable={false} style={[styles.sortButtonLabel, { color: contentColor }]}>
|
|
43
|
+
{label}
|
|
44
|
+
</Text>
|
|
45
|
+
{isActive ? (
|
|
46
|
+
direction === 'desc' ? (
|
|
47
|
+
<CaretDownIcon size={12} color={contentColor} />
|
|
48
|
+
) : (
|
|
49
|
+
<CaretUpIcon size={12} color={contentColor} />
|
|
50
|
+
)
|
|
51
|
+
) : (
|
|
52
|
+
<SortDefaultIcon size={10} color={contentColor} />
|
|
53
|
+
)}
|
|
54
|
+
</Pressable>
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const styles = StyleSheet.create({
|
|
59
|
+
sortButton: {
|
|
60
|
+
flexDirection: 'row',
|
|
61
|
+
alignItems: 'center',
|
|
62
|
+
gap: SPACING[100],
|
|
63
|
+
paddingLeft: 6,
|
|
64
|
+
paddingRight: SPACING[200],
|
|
65
|
+
paddingVertical: SPACING[100],
|
|
66
|
+
borderRadius: 6,
|
|
67
|
+
borderWidth: 0.5,
|
|
68
|
+
borderColor: COLORS.NEUTRAL_3,
|
|
69
|
+
backgroundColor: COLORS.NEUTRAL_1,
|
|
70
|
+
...SHADOWS[2],
|
|
71
|
+
},
|
|
72
|
+
sortButtonSymbol: {
|
|
73
|
+
width: 12,
|
|
74
|
+
height: 12,
|
|
75
|
+
lineHeight: 10,
|
|
76
|
+
marginHorizontal: SPACING[100],
|
|
77
|
+
textAlign: 'center',
|
|
78
|
+
fontFamily: FONT_FAMILY.buenosAiresBold,
|
|
79
|
+
fontSize: 24,
|
|
80
|
+
},
|
|
81
|
+
sortButtonLabel: {
|
|
82
|
+
fontFamily: FONT_FAMILY.buenosAiresBold,
|
|
83
|
+
fontSize: 12,
|
|
84
|
+
letterSpacing: 0.24,
|
|
85
|
+
textTransform: 'uppercase',
|
|
86
|
+
},
|
|
87
|
+
})
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import React, { useRef } from 'react'
|
|
2
|
+
import { Animated, Pressable, StyleSheet, View } from 'react-native'
|
|
3
|
+
import { COLORS, HeadingVariants, SPACING, Typography } from '@magmamath/react-native-ui'
|
|
4
|
+
import { TABLE_OPERATOR_COLUMNS } from '../../fluencyTeacher.constants'
|
|
5
|
+
import { OperatorBadge } from './OperatorBadge'
|
|
6
|
+
import { TableRowAverageProgress } from './TableRowAverageProgress'
|
|
7
|
+
import type { StudentOperatorScores } from '../../fluencyTeacher.types'
|
|
8
|
+
|
|
9
|
+
export type TableRowProps = {
|
|
10
|
+
name: string
|
|
11
|
+
scores: StudentOperatorScores
|
|
12
|
+
averagePercent?: number
|
|
13
|
+
averageLabel?: string
|
|
14
|
+
onPress?: () => void
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const AnimatedPressable = Animated.createAnimatedComponent(Pressable)
|
|
18
|
+
|
|
19
|
+
export const TableRow = ({
|
|
20
|
+
name,
|
|
21
|
+
scores,
|
|
22
|
+
averagePercent = 0,
|
|
23
|
+
averageLabel = '',
|
|
24
|
+
onPress,
|
|
25
|
+
}: TableRowProps) => {
|
|
26
|
+
const hoverProgress = useRef(new Animated.Value(0)).current
|
|
27
|
+
|
|
28
|
+
const fadeIn = () => {
|
|
29
|
+
Animated.timing(hoverProgress, { toValue: 1, duration: 150, useNativeDriver: false }).start()
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const fadeOut = () => {
|
|
33
|
+
Animated.timing(hoverProgress, { toValue: 0, duration: 150, useNativeDriver: false }).start()
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const backgroundColor = hoverProgress.interpolate({
|
|
37
|
+
inputRange: [0, 1],
|
|
38
|
+
outputRange: [COLORS.NEUTRAL_1, COLORS.NEUTRAL_2],
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<AnimatedPressable
|
|
43
|
+
onHoverIn={fadeIn}
|
|
44
|
+
onHoverOut={fadeOut}
|
|
45
|
+
onPress={onPress}
|
|
46
|
+
style={[styles.row, { backgroundColor }]}
|
|
47
|
+
>
|
|
48
|
+
<View style={styles.name}>
|
|
49
|
+
<Typography variant={HeadingVariants.H7} style={styles.nameText} numberOfLines={1}>
|
|
50
|
+
{name}
|
|
51
|
+
</Typography>
|
|
52
|
+
</View>
|
|
53
|
+
|
|
54
|
+
<View style={styles.average}>
|
|
55
|
+
<TableRowAverageProgress percent={averagePercent} label={averageLabel} />
|
|
56
|
+
</View>
|
|
57
|
+
|
|
58
|
+
<View style={styles.operators}>
|
|
59
|
+
{TABLE_OPERATOR_COLUMNS.map(({ operator, badgeBg, badgeText }) => (
|
|
60
|
+
<View key={operator} style={styles.operator}>
|
|
61
|
+
<OperatorBadge value={scores[operator]} bgColor={badgeBg} textColor={badgeText} />
|
|
62
|
+
</View>
|
|
63
|
+
))}
|
|
64
|
+
</View>
|
|
65
|
+
</AnimatedPressable>
|
|
66
|
+
)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const styles = StyleSheet.create({
|
|
70
|
+
row: {
|
|
71
|
+
flexDirection: 'row',
|
|
72
|
+
alignItems: 'center',
|
|
73
|
+
paddingHorizontal: SPACING[400],
|
|
74
|
+
paddingVertical: SPACING[200],
|
|
75
|
+
gap: SPACING[400],
|
|
76
|
+
backgroundColor: COLORS.NEUTRAL_1,
|
|
77
|
+
borderBottomWidth: 1,
|
|
78
|
+
borderBottomColor: COLORS.NEUTRAL_4,
|
|
79
|
+
},
|
|
80
|
+
name: {
|
|
81
|
+
width: 137,
|
|
82
|
+
height: 40,
|
|
83
|
+
flexDirection: 'row',
|
|
84
|
+
alignItems: 'center',
|
|
85
|
+
gap: 12,
|
|
86
|
+
},
|
|
87
|
+
icon: {
|
|
88
|
+
width: 25,
|
|
89
|
+
height: 25,
|
|
90
|
+
alignItems: 'center',
|
|
91
|
+
justifyContent: 'center',
|
|
92
|
+
},
|
|
93
|
+
nameText: {
|
|
94
|
+
width: 100,
|
|
95
|
+
color: COLORS.NEUTRAL_9,
|
|
96
|
+
},
|
|
97
|
+
average: {
|
|
98
|
+
width: 145,
|
|
99
|
+
height: 40,
|
|
100
|
+
paddingHorizontal: 12,
|
|
101
|
+
justifyContent: 'center',
|
|
102
|
+
},
|
|
103
|
+
operators: {
|
|
104
|
+
flex: 1,
|
|
105
|
+
height: 40,
|
|
106
|
+
flexDirection: 'row',
|
|
107
|
+
alignItems: 'center',
|
|
108
|
+
paddingHorizontal: SPACING[800],
|
|
109
|
+
},
|
|
110
|
+
operator: {
|
|
111
|
+
flex: 1,
|
|
112
|
+
alignItems: 'center',
|
|
113
|
+
},
|
|
114
|
+
})
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { StyleSheet, Text, View } from 'react-native'
|
|
3
|
+
import {
|
|
4
|
+
COLORS,
|
|
5
|
+
FONT_FAMILY,
|
|
6
|
+
HeadingVariants,
|
|
7
|
+
SPACING,
|
|
8
|
+
Typography,
|
|
9
|
+
} from '@magmamath/react-native-ui'
|
|
10
|
+
|
|
11
|
+
export type TableRowAverageProgressProps = {
|
|
12
|
+
percent: number
|
|
13
|
+
label: string
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const TableRowAverageProgress = ({ percent, label }: TableRowAverageProgressProps) => (
|
|
17
|
+
<View style={styles.progressTrack}>
|
|
18
|
+
<View style={[styles.progressFill, { width: `${percent}%` }]} />
|
|
19
|
+
<View style={styles.progressOverlay}>
|
|
20
|
+
<Typography variant={HeadingVariants.H9} style={styles.progressPercent}>
|
|
21
|
+
{percent}%
|
|
22
|
+
</Typography>
|
|
23
|
+
<Text style={styles.progressLabel} numberOfLines={1}>
|
|
24
|
+
{label}
|
|
25
|
+
</Text>
|
|
26
|
+
</View>
|
|
27
|
+
</View>
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
const styles = StyleSheet.create({
|
|
31
|
+
progressTrack: {
|
|
32
|
+
height: 16,
|
|
33
|
+
borderRadius: 36,
|
|
34
|
+
backgroundColor: COLORS.NEUTRAL_3,
|
|
35
|
+
overflow: 'hidden',
|
|
36
|
+
},
|
|
37
|
+
progressFill: {
|
|
38
|
+
position: 'absolute',
|
|
39
|
+
top: 0,
|
|
40
|
+
bottom: 0,
|
|
41
|
+
left: 0,
|
|
42
|
+
borderRadius: 36,
|
|
43
|
+
backgroundColor: COLORS.YELLOW_4,
|
|
44
|
+
},
|
|
45
|
+
progressOverlay: {
|
|
46
|
+
position: 'absolute',
|
|
47
|
+
top: 0,
|
|
48
|
+
bottom: 0,
|
|
49
|
+
left: 0,
|
|
50
|
+
right: 0,
|
|
51
|
+
flexDirection: 'row',
|
|
52
|
+
alignItems: 'center',
|
|
53
|
+
justifyContent: 'space-between',
|
|
54
|
+
paddingHorizontal: SPACING[200],
|
|
55
|
+
},
|
|
56
|
+
progressPercent: {
|
|
57
|
+
color: COLORS.NEUTRAL_9,
|
|
58
|
+
},
|
|
59
|
+
progressLabel: {
|
|
60
|
+
fontFamily: FONT_FAMILY.buenosAiresSemiBold,
|
|
61
|
+
fontSize: 10,
|
|
62
|
+
color: COLORS.NEUTRAL_9,
|
|
63
|
+
textTransform: 'uppercase',
|
|
64
|
+
},
|
|
65
|
+
})
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react'
|
|
2
|
+
import type { TeacherFluencyModel } from '../model/TeacherFluencyModel'
|
|
3
|
+
|
|
4
|
+
type TeacherFluencyContextValue = {
|
|
5
|
+
model: TeacherFluencyModel
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const TeacherFluencyContext = createContext<TeacherFluencyContextValue | null>(null)
|
|
9
|
+
|
|
10
|
+
export const useTeacherFluency = (): TeacherFluencyContextValue => {
|
|
11
|
+
const value = useContext(TeacherFluencyContext)
|
|
12
|
+
if (!value) throw new Error('useTeacherFluency must be used within TeacherFluencyProvider')
|
|
13
|
+
return value
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const TeacherFluencyProvider = TeacherFluencyContext.Provider
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { COLORS } from '@magmamath/react-native-ui'
|
|
2
|
+
import { FluencyMathOperatorSymbol, FluencyOperator, type OperatorColumnConfig } from './fluencyTeacher.types'
|
|
3
|
+
|
|
4
|
+
export const TEACHER_FLUENCY_GOAL_MINUTES = 25
|
|
5
|
+
|
|
6
|
+
export const MATRIX_CELL_COLORS: Record<FluencyOperator, Record<number, string>> = {
|
|
7
|
+
[FluencyOperator.ADDITION]: {
|
|
8
|
+
1: COLORS.GREEN_2,
|
|
9
|
+
2: COLORS.GREEN_3,
|
|
10
|
+
3: COLORS.PRIMARY_GREEN,
|
|
11
|
+
4: COLORS.GREEN_6,
|
|
12
|
+
},
|
|
13
|
+
[FluencyOperator.SUBTRACTION]: {
|
|
14
|
+
1: COLORS.ORANGE_2,
|
|
15
|
+
2: COLORS.ORANGE_3,
|
|
16
|
+
3: COLORS.PRIMARY_ORANGE,
|
|
17
|
+
4: COLORS.ORANGE_6,
|
|
18
|
+
},
|
|
19
|
+
[FluencyOperator.MULTIPLICATION]: {
|
|
20
|
+
1: COLORS.BLUE_2,
|
|
21
|
+
2: COLORS.BLUE_3,
|
|
22
|
+
3: COLORS.PRIMARY_BLUE,
|
|
23
|
+
4: COLORS.BLUE_6,
|
|
24
|
+
},
|
|
25
|
+
[FluencyOperator.DIVISION]: {
|
|
26
|
+
1: COLORS.PURPLE_2,
|
|
27
|
+
2: COLORS.PURPLE_3,
|
|
28
|
+
3: COLORS.PRIMARY_PURPLE,
|
|
29
|
+
4: COLORS.PURPLE_6,
|
|
30
|
+
},
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export const TABLE_OPERATOR_COLUMNS: readonly OperatorColumnConfig[] = [
|
|
34
|
+
{
|
|
35
|
+
operator: FluencyOperator.ADDITION,
|
|
36
|
+
label: 'Addition',
|
|
37
|
+
symbol: FluencyMathOperatorSymbol.ADDITION,
|
|
38
|
+
badgeBg: COLORS.GREEN_3,
|
|
39
|
+
badgeText: COLORS.GREEN_8,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
operator: FluencyOperator.SUBTRACTION,
|
|
43
|
+
label: 'Subtraction',
|
|
44
|
+
symbol: FluencyMathOperatorSymbol.SUBTRACTION,
|
|
45
|
+
badgeBg: COLORS.ORANGE_3,
|
|
46
|
+
badgeText: COLORS.ORANGE_8,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
operator: FluencyOperator.DIVISION,
|
|
50
|
+
label: 'Division',
|
|
51
|
+
symbol: FluencyMathOperatorSymbol.DIVISION,
|
|
52
|
+
badgeBg: COLORS.BLUE_3,
|
|
53
|
+
badgeText: COLORS.BLUE_8,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
operator: FluencyOperator.MULTIPLICATION,
|
|
57
|
+
label: 'Multiplication',
|
|
58
|
+
symbol: FluencyMathOperatorSymbol.MULTIPLICATION,
|
|
59
|
+
badgeBg: COLORS.PURPLE_2,
|
|
60
|
+
badgeText: COLORS.PURPLE_8,
|
|
61
|
+
},
|
|
62
|
+
]
|