Files
edbridge-scholars/src/components/FetchLessonPage.tsx

179 lines
5.2 KiB
TypeScript

// lessonRegistry.tsx
import { lazy, type ComponentType } from "react";
// lessonTypes.ts
export type LessonId =
// ---- EBRW ----
| "ebrw-words-in-context"
| "ebrw-text-structure-purpose"
| "ebrw-cross-text-connections"
| "ebrw-central-ideas-details"
| "ebrw-inferences"
| "ebrw-command-of-evidence"
| "ebrw-boundaries"
| "ebrw-form-structure-sense"
| "ebrw-transitions"
| "ebrw-rhetorical-synthesis"
// ---- MATH ----
| "alg-linear-eq-1var"
| "alg-linear-eq-2var"
| "alg-linear-functions"
| "alg-systems"
| "alg-linear-inequalities"
| "adv-equivalent-expr"
| "adv-nonlinear-eq"
| "adv-systems-2var"
| "adv-nonlinear-func"
| "data-ratios-rates"
| "data-percentages"
| "data-one-var"
| "data-two-var"
| "data-probability"
| "data-sample-stats"
| "data-eval-claims"
| "geom-area-volume"
| "geom-lines-angles"
| "geom-right-tri-trig"
| "geom-circles";
// ---- EBRW ----
const EBRWWordsInContext = lazy(
() => import("../pages/student/lessons/EBRWWordsInContextLesson"),
);
const EBRWTextStructurePurpose = lazy(
() => import("../pages/student/lessons/EBRWTextStructurePurposeLesson"),
);
const EBRWCrossText = lazy(
() => import("../pages/student/lessons/EBRWCrossTextLesson"),
);
const EBRWCentralIdeas = lazy(
() => import("../pages/student/lessons/EBRWCentralIdeasLesson"),
);
const EBRWInferences = lazy(
() => import("../pages/student/lessons/EBRWInferencesLesson"),
);
const EBRWCommandEvidence = lazy(
() => import("../pages/student/lessons/EBRWCommandEvidenceLesson"),
);
const EBRWBoundaries = lazy(
() => import("../pages/student/lessons/EBRWBoundariesLesson"),
);
const EBRWFormStructureSense = lazy(
() => import("../pages/student/lessons/EBRWFormStructureSenseLesson"),
);
const EBRWTransitions = lazy(
() => import("../pages/student/lessons/EBRWTransitionsLesson"),
);
const EBRWRhetoricalSynthesis = lazy(
() => import("../pages/student/lessons/EBRWRhetoricalSynthesisLesson"),
);
// ---- MATH ----
const AlgLinearEq1Var = lazy(
() => import("../pages/student/lessons/LinearEq1VarLesson"),
);
const AlgLinearEq2Var = lazy(
() => import("../pages/student/lessons/LinearEq2VarLesson"),
);
const AlgLinearFunctions = lazy(
() => import("../pages/student/lessons/LinearFunctionsLesson"),
);
const AlgSystems = lazy(
() => import("../pages/student/lessons/SystemsEquationsLesson"),
);
const AlgLinearInequalities = lazy(
() => import("../pages/student/lessons/LinearInequalitiesLesson"),
);
const AdvEquivalentExpr = lazy(
() => import("../pages/student/lessons/EquivalentExpressionsLesson"),
);
const AdvNonlinearEq = lazy(
() => import("../pages/student/lessons/NonlinearEq1VarLesson"),
);
const AdvSystems2Var = lazy(
() => import("../pages/student/lessons/SystemsEq2VarLesson"),
);
const AdvNonlinearFunc = lazy(
() => import("../pages/student/lessons/NonlinearFunctionsLesson"),
);
const DataRatiosRates = lazy(
() => import("../pages/student/lessons/RatiosRatesLesson"),
);
const DataPercentages = lazy(
() => import("../pages/student/lessons/PercentagesLesson"),
);
const DataOneVar = lazy(
() => import("../pages/student/lessons/OneVariableDataLesson"),
);
const DataTwoVar = lazy(
() => import("../pages/student/lessons/TwoVariableDataLesson"),
);
const DataProbability = lazy(
() => import("../pages/student/lessons/ProbabilityLesson"),
);
const DataSampleStats = lazy(
() => import("../pages/student/lessons/SampleStatsLesson"),
);
const DataEvalClaims = lazy(
() => import("../pages/student/lessons/EvalStatisticalClaimsLesson"),
);
const GeomAreaVolume = lazy(
() => import("../pages/student/lessons/AreaVolumeLesson"),
);
const GeomLinesAngles = lazy(
() => import("../pages/student/lessons/LinesAnglesLesson"),
);
const GeomRightTriTrig = lazy(
() => import("../pages/student/lessons/RightTrianglesTrigLesson"),
);
const GeomCircles = lazy(
() => import("../pages/student/lessons/CirclesLesson"),
);
// ---- Registry Map ----
export const LESSON_COMPONENT_MAP: Record<LessonId, ComponentType> = {
// ---- EBRW ----
"ebrw-words-in-context": EBRWWordsInContext,
"ebrw-text-structure-purpose": EBRWTextStructurePurpose,
"ebrw-cross-text-connections": EBRWCrossText,
"ebrw-central-ideas-details": EBRWCentralIdeas,
"ebrw-inferences": EBRWInferences,
"ebrw-command-of-evidence": EBRWCommandEvidence,
"ebrw-boundaries": EBRWBoundaries,
"ebrw-form-structure-sense": EBRWFormStructureSense,
"ebrw-transitions": EBRWTransitions,
"ebrw-rhetorical-synthesis": EBRWRhetoricalSynthesis,
// ---- MATH ----
"alg-linear-eq-1var": AlgLinearEq1Var,
"alg-linear-eq-2var": AlgLinearEq2Var,
"alg-linear-functions": AlgLinearFunctions,
"alg-systems": AlgSystems,
"alg-linear-inequalities": AlgLinearInequalities,
"adv-equivalent-expr": AdvEquivalentExpr,
"adv-nonlinear-eq": AdvNonlinearEq,
"adv-systems-2var": AdvSystems2Var,
"adv-nonlinear-func": AdvNonlinearFunc,
"data-ratios-rates": DataRatiosRates,
"data-percentages": DataPercentages,
"data-one-var": DataOneVar,
"data-two-var": DataTwoVar,
"data-probability": DataProbability,
"data-sample-stats": DataSampleStats,
"data-eval-claims": DataEvalClaims,
"geom-area-volume": GeomAreaVolume,
"geom-lines-angles": GeomLinesAngles,
"geom-right-tri-trig": GeomRightTriTrig,
"geom-circles": GeomCircles,
};