@cuemath/leap 3.0.23 → 3.0.24
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/features/trial-session/comps/school-goals/school-goals-view.js +91 -86
- package/dist/features/trial-session/comps/school-goals/school-goals-view.js.map +1 -1
- package/dist/features/trial-session/comps/school-goals/school-goals.js +57 -51
- package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js +64 -63
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
- package/dist/features/trial-session/trial-session-types.js.map +1 -1
- package/dist/features/worksheet/worksheet-preview/api/get-preview-worksheet.js +3 -3
- package/dist/features/worksheet/worksheet-preview/api/get-preview-worksheet.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/package.json +1 -1
@@ -1,105 +1,110 @@
|
|
1
1
|
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
2
|
-
import { GIF as
|
2
|
+
import { GIF as g } from "../../../../assets/gif/gif.js";
|
3
3
|
import f from "../../../ui/image/image.js";
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
8
|
-
import
|
9
|
-
import
|
10
|
-
import { Container as
|
11
|
-
const
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
/* @__PURE__ */ r(
|
27
|
-
/* @__PURE__ */ e(
|
28
|
-
/* @__PURE__ */
|
29
|
-
|
30
|
-
{
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
4
|
+
import S from "../../../ui/inputs/searchable-select-input/searchable-select-input.js";
|
5
|
+
import n from "../../../ui/inputs/select-input/select-input.js";
|
6
|
+
import b from "../../../ui/inputs/text-input/text-input.js";
|
7
|
+
import x from "../../../ui/layout/flex-view.js";
|
8
|
+
import $ from "../../../ui/separator/separator.js";
|
9
|
+
import G from "../slide-header/index.js";
|
10
|
+
import { Container as L, ContentWrapper as w, ImageWrapper as I, InputContainer as y } from "./school-goals-styled.js";
|
11
|
+
const _ = (o) => {
|
12
|
+
const {
|
13
|
+
name: i,
|
14
|
+
grade: a,
|
15
|
+
grades: s,
|
16
|
+
goalsList: l,
|
17
|
+
curriculum: t,
|
18
|
+
selectedGoal: m,
|
19
|
+
numberInNameError: d,
|
20
|
+
curriculumStandards: p,
|
21
|
+
onNameChange: u,
|
22
|
+
onGoalChange: h,
|
23
|
+
onGradeChange: c,
|
24
|
+
onCurriculumChange: C
|
25
|
+
} = o;
|
26
|
+
return /* @__PURE__ */ r(L, { children: [
|
27
|
+
/* @__PURE__ */ e($, { height: 60 }),
|
28
|
+
/* @__PURE__ */ e(G, {}),
|
29
|
+
/* @__PURE__ */ r(w, { $flexDirection: "row", $justifyContent: "center", children: [
|
30
|
+
/* @__PURE__ */ e(I, { children: /* @__PURE__ */ e(f, { withLoader: !0, height: 402, width: 302, src: g.SCHOOL_SUCCESS, className: "image" }) }),
|
31
|
+
/* @__PURE__ */ r(
|
32
|
+
y,
|
33
|
+
{
|
34
|
+
$flexGap: 24,
|
35
|
+
$justifyContent: "center",
|
36
|
+
$background: "PURPLE_1",
|
37
|
+
$borderColor: "BLACK_1",
|
38
|
+
$gapX: 2.5,
|
39
|
+
$gutterX: 2.5,
|
40
|
+
children: [
|
41
|
+
/* @__PURE__ */ r(x, { $flexDirection: "row", $flexColumnGapX: 1.5, children: [
|
42
|
+
/* @__PURE__ */ e(
|
43
|
+
b,
|
44
|
+
{
|
45
|
+
renderAs: "primary",
|
46
|
+
label: "Student name",
|
47
|
+
value: i,
|
48
|
+
type: "text",
|
49
|
+
name: "name",
|
50
|
+
shape: "borderLess",
|
51
|
+
onChange: u,
|
52
|
+
width: "100%",
|
53
|
+
isTransparent: !0,
|
54
|
+
errorMessage: d ? "Please enter a valid name" : void 0
|
55
|
+
}
|
56
|
+
),
|
57
|
+
/* @__PURE__ */ e(
|
58
|
+
n,
|
59
|
+
{
|
60
|
+
renderAs: "primary",
|
61
|
+
label: "Select Grade",
|
62
|
+
value: a,
|
63
|
+
options: s,
|
64
|
+
shape: "borderLess",
|
65
|
+
onChange: c,
|
66
|
+
theme: "dark",
|
67
|
+
widthX: 10,
|
68
|
+
isTransparent: !0
|
69
|
+
}
|
70
|
+
)
|
71
|
+
] }),
|
39
72
|
/* @__PURE__ */ e(
|
40
|
-
|
73
|
+
n,
|
41
74
|
{
|
42
75
|
renderAs: "primary",
|
43
|
-
label: "
|
44
|
-
value:
|
45
|
-
|
46
|
-
|
76
|
+
label: "Select Curriculum",
|
77
|
+
value: t,
|
78
|
+
options: p,
|
79
|
+
disabled: !a,
|
47
80
|
shape: "borderLess",
|
48
|
-
|
49
|
-
|
81
|
+
renderOptionsAs: "section-list",
|
82
|
+
theme: "dark",
|
83
|
+
onChange: C,
|
50
84
|
isTransparent: !0
|
51
85
|
}
|
52
86
|
),
|
53
87
|
/* @__PURE__ */ e(
|
54
|
-
|
88
|
+
S,
|
55
89
|
{
|
56
90
|
renderAs: "primary",
|
57
|
-
label: "Select
|
58
|
-
value:
|
59
|
-
options:
|
91
|
+
label: "Select a Goal",
|
92
|
+
value: m,
|
93
|
+
options: l,
|
60
94
|
shape: "borderLess",
|
61
|
-
onChange: p,
|
62
95
|
theme: "dark",
|
63
|
-
|
64
|
-
isTransparent: !0
|
96
|
+
onChange: h,
|
97
|
+
isTransparent: !0,
|
98
|
+
disabled: !a || !t
|
65
99
|
}
|
66
100
|
)
|
67
|
-
]
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
value: a,
|
74
|
-
options: l,
|
75
|
-
disabled: !t,
|
76
|
-
shape: "borderLess",
|
77
|
-
renderOptionsAs: "section-list",
|
78
|
-
theme: "dark",
|
79
|
-
onChange: m,
|
80
|
-
isTransparent: !0
|
81
|
-
}
|
82
|
-
),
|
83
|
-
/* @__PURE__ */ e(
|
84
|
-
C,
|
85
|
-
{
|
86
|
-
renderAs: "primary",
|
87
|
-
label: "Select a Goal",
|
88
|
-
value: d,
|
89
|
-
options: h,
|
90
|
-
shape: "borderLess",
|
91
|
-
theme: "dark",
|
92
|
-
onChange: u,
|
93
|
-
isTransparent: !0,
|
94
|
-
disabled: !t || !a
|
95
|
-
}
|
96
|
-
)
|
97
|
-
]
|
98
|
-
}
|
99
|
-
)
|
100
|
-
] })
|
101
|
-
] });
|
101
|
+
]
|
102
|
+
}
|
103
|
+
)
|
104
|
+
] })
|
105
|
+
] });
|
106
|
+
};
|
102
107
|
export {
|
103
|
-
|
108
|
+
_ as default
|
104
109
|
};
|
105
110
|
//# sourceMappingURL=school-goals-view.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"school-goals-view.js","sources":["../../../../../src/features/trial-session/comps/school-goals/school-goals-view.tsx"],"sourcesContent":["import type { TCurriculumStandardOption } from '../../../milestone/create/milestone-create-types';\nimport type { ISelectOption } from '../../../ui/inputs/base-select-input/base-select-input-types';\nimport type { ISectionOption } from '../../../ui/section-list/section-list-types';\n\nimport { GIF } from '../../../../assets/gif/gif';\nimport Image from '../../../ui/image/image';\nimport SearchableSelectInput from '../../../ui/inputs/searchable-select-input/searchable-select-input';\nimport SelectInput from '../../../ui/inputs/select-input/select-input';\nimport TextInput from '../../../ui/inputs/text-input/text-input';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport SlideHeader from '../slide-header';\nimport * as Styled from './school-goals-styled';\n\ninterface ISchoolGoals {\n header?: string;\n name?: string;\n grade?: string;\n curriculum?: string;\n grades: ISelectOption<string>[];\n curriculumStandards: ISectionOption<TCurriculumStandardOption>[];\n goalsList: ISelectOption<string>[];\n selectedGoal?: string;\n onNameChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onGradeChange: (value: string) => void;\n onCurriculumChange: (value: string) => void;\n onGoalChange: (value: string, option: ISelectOption<string | number>) => void;\n}\n\nconst SchoolGoalsView = ({\n name,\n
|
1
|
+
{"version":3,"file":"school-goals-view.js","sources":["../../../../../src/features/trial-session/comps/school-goals/school-goals-view.tsx"],"sourcesContent":["import type { TCurriculumStandardOption } from '../../../milestone/create/milestone-create-types';\nimport type { ISelectOption } from '../../../ui/inputs/base-select-input/base-select-input-types';\nimport type { ISectionOption } from '../../../ui/section-list/section-list-types';\n\nimport { GIF } from '../../../../assets/gif/gif';\nimport Image from '../../../ui/image/image';\nimport SearchableSelectInput from '../../../ui/inputs/searchable-select-input/searchable-select-input';\nimport SelectInput from '../../../ui/inputs/select-input/select-input';\nimport TextInput from '../../../ui/inputs/text-input/text-input';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport SlideHeader from '../slide-header';\nimport * as Styled from './school-goals-styled';\n\ninterface ISchoolGoals {\n header?: string;\n name?: string;\n grade?: string;\n curriculum?: string;\n grades: ISelectOption<string>[];\n curriculumStandards: ISectionOption<TCurriculumStandardOption>[];\n goalsList: ISelectOption<string>[];\n selectedGoal?: string;\n numberInNameError?: boolean;\n onNameChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onGradeChange: (value: string) => void;\n onCurriculumChange: (value: string) => void;\n onGoalChange: (value: string, option: ISelectOption<string | number>) => void;\n}\n\nconst SchoolGoalsView = (props: ISchoolGoals) => {\n const {\n name,\n grade,\n grades,\n goalsList,\n curriculum,\n selectedGoal,\n numberInNameError,\n curriculumStandards,\n onNameChange,\n onGoalChange,\n onGradeChange,\n onCurriculumChange,\n } = props;\n\n return (\n <Styled.Container>\n <Separator height={60} />\n <SlideHeader />\n <Styled.ContentWrapper $flexDirection=\"row\" $justifyContent=\"center\">\n <Styled.ImageWrapper>\n <Image withLoader height={402} width={302} src={GIF.SCHOOL_SUCCESS} className=\"image\" />\n </Styled.ImageWrapper>\n <Styled.InputContainer\n $flexGap={24}\n $justifyContent=\"center\"\n $background=\"PURPLE_1\"\n $borderColor=\"BLACK_1\"\n $gapX={2.5}\n $gutterX={2.5}\n >\n <FlexView $flexDirection=\"row\" $flexColumnGapX={1.5}>\n <TextInput\n renderAs=\"primary\"\n label=\"Student name\"\n value={name}\n type=\"text\"\n name=\"name\"\n shape=\"borderLess\"\n onChange={onNameChange}\n width=\"100%\"\n isTransparent\n errorMessage={numberInNameError ? 'Please enter a valid name' : undefined}\n />\n <SelectInput\n renderAs=\"primary\"\n label=\"Select Grade\"\n value={grade}\n options={grades}\n shape=\"borderLess\"\n onChange={onGradeChange}\n theme=\"dark\"\n widthX={10}\n isTransparent\n />\n </FlexView>\n <SelectInput\n renderAs=\"primary\"\n label=\"Select Curriculum\"\n value={curriculum}\n options={curriculumStandards}\n disabled={!grade}\n shape=\"borderLess\"\n renderOptionsAs=\"section-list\"\n theme=\"dark\"\n onChange={onCurriculumChange}\n isTransparent\n />\n <SearchableSelectInput\n renderAs=\"primary\"\n label=\"Select a Goal\"\n value={selectedGoal}\n options={goalsList}\n shape=\"borderLess\"\n theme=\"dark\"\n onChange={onGoalChange}\n isTransparent\n disabled={!grade || !curriculum}\n />\n </Styled.InputContainer>\n </Styled.ContentWrapper>\n </Styled.Container>\n );\n};\n\nexport default SchoolGoalsView;\n"],"names":["SchoolGoalsView","props","name","grade","grades","goalsList","curriculum","selectedGoal","numberInNameError","curriculumStandards","onNameChange","onGoalChange","onGradeChange","onCurriculumChange","jsxs","Styled.Container","jsx","Separator","SlideHeader","Styled.ContentWrapper","Styled.ImageWrapper","Image","GIF","Styled.InputContainer","FlexView","TextInput","SelectInput","SearchableSelectInput"],"mappings":";;;;;;;;;;AA8BM,MAAAA,IAAkB,CAACC,MAAwB;AACzC,QAAA;AAAA,IACJ,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,oBAAAC;AAAA,EACE,IAAAZ;AAGF,SAAA,gBAAAa,EAACC,GAAA,EACC,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAU,QAAQ,GAAI,CAAA;AAAA,sBACtBC,GAAY,EAAA;AAAA,sBACZC,GAAA,EAAsB,gBAAe,OAAM,iBAAgB,UAC1D,UAAA;AAAA,MAAA,gBAAAH,EAACI,GAAA,EACC,UAAC,gBAAAJ,EAAAK,GAAA,EAAM,YAAU,IAAC,QAAQ,KAAK,OAAO,KAAK,KAAKC,EAAI,gBAAgB,WAAU,QAAQ,CAAA,GACxF;AAAA,MACA,gBAAAR;AAAA,QAACS;AAAAA,QAAA;AAAA,UACC,UAAU;AAAA,UACV,iBAAgB;AAAA,UAChB,aAAY;AAAA,UACZ,cAAa;AAAA,UACb,OAAO;AAAA,UACP,UAAU;AAAA,UAEV,UAAA;AAAA,YAAA,gBAAAT,EAACU,GAAS,EAAA,gBAAe,OAAM,iBAAiB,KAC9C,UAAA;AAAA,cAAA,gBAAAR;AAAA,gBAACS;AAAA,gBAAA;AAAA,kBACC,UAAS;AAAA,kBACT,OAAM;AAAA,kBACN,OAAOvB;AAAA,kBACP,MAAK;AAAA,kBACL,MAAK;AAAA,kBACL,OAAM;AAAA,kBACN,UAAUQ;AAAA,kBACV,OAAM;AAAA,kBACN,eAAa;AAAA,kBACb,cAAcF,IAAoB,8BAA8B;AAAA,gBAAA;AAAA,cAClE;AAAA,cACA,gBAAAQ;AAAA,gBAACU;AAAA,gBAAA;AAAA,kBACC,UAAS;AAAA,kBACT,OAAM;AAAA,kBACN,OAAOvB;AAAA,kBACP,SAASC;AAAA,kBACT,OAAM;AAAA,kBACN,UAAUQ;AAAA,kBACV,OAAM;AAAA,kBACN,QAAQ;AAAA,kBACR,eAAa;AAAA,gBAAA;AAAA,cACf;AAAA,YAAA,GACF;AAAA,YACA,gBAAAI;AAAA,cAACU;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,OAAM;AAAA,gBACN,OAAOpB;AAAA,gBACP,SAASG;AAAA,gBACT,UAAU,CAACN;AAAA,gBACX,OAAM;AAAA,gBACN,iBAAgB;AAAA,gBAChB,OAAM;AAAA,gBACN,UAAUU;AAAA,gBACV,eAAa;AAAA,cAAA;AAAA,YACf;AAAA,YACA,gBAAAG;AAAA,cAACW;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,OAAM;AAAA,gBACN,OAAOpB;AAAA,gBACP,SAASF;AAAA,gBACT,OAAM;AAAA,gBACN,OAAM;AAAA,gBACN,UAAUM;AAAA,gBACV,eAAa;AAAA,gBACb,UAAU,CAACR,KAAS,CAACG;AAAA,cAAA;AAAA,YACvB;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
|
@@ -1,68 +1,73 @@
|
|
1
|
-
import { jsx as
|
2
|
-
import { memo as
|
3
|
-
import { GOAL_CATEGORY as
|
4
|
-
import { getCategorizedCurriculumStandards as
|
5
|
-
import { getGradesFromConfig as
|
1
|
+
import { jsx as B } from "react/jsx-runtime";
|
2
|
+
import { memo as Y, useMemo as C, useCallback as m, useEffect as S } from "react";
|
3
|
+
import { GOAL_CATEGORY as s } from "../../../milestone/constants.js";
|
4
|
+
import { getCategorizedCurriculumStandards as j } from "../../../milestone/create/comps/class-details-step/class-details-utils.js";
|
5
|
+
import { getGradesFromConfig as q, getGoalsFromConfig as v } from "../../../milestone/create/milestone-create-helpers.js";
|
6
6
|
import { epochTimestampAfterOneYear as G } from "../../../utils/utils.js";
|
7
|
-
import { useTrialSessionContext as
|
7
|
+
import { useTrialSessionContext as w } from "../../context/use-trial-session-context.js";
|
8
8
|
import { updateGoalInFormData as O } from "../../helper.js";
|
9
|
-
import
|
10
|
-
const
|
9
|
+
import z from "./school-goals-view.js";
|
10
|
+
const Z = Y(() => {
|
11
11
|
const {
|
12
|
-
milestoneConfig:
|
13
|
-
formData:
|
14
|
-
updateSlideConfig:
|
12
|
+
milestoneConfig: n,
|
13
|
+
formData: E,
|
14
|
+
updateSlideConfig: a,
|
15
15
|
updateButtonState: f,
|
16
16
|
onRemoveOptionalSlides: g,
|
17
|
-
trialHomeData:
|
18
|
-
} =
|
19
|
-
() =>
|
20
|
-
countryCode:
|
17
|
+
trialHomeData: L
|
18
|
+
} = w(), { name: p, grade: e, goals: t, curriculum: i, numberInNameError: N } = E || {}, { demo_info: I } = L, { stream: u, region_data: U } = I || {}, { opportunity_country: c = "US" } = U || {}, b = q(n), y = C(
|
19
|
+
() => j(n, {
|
20
|
+
countryCode: c,
|
21
21
|
grade: e ?? "",
|
22
|
-
goalCategory:
|
23
|
-
courseStream:
|
22
|
+
goalCategory: s.SCHOOL_SUCCESS,
|
23
|
+
courseStream: u,
|
24
24
|
enrollmentType: "ONLINE"
|
25
25
|
}),
|
26
|
-
[
|
26
|
+
[n, c, e, u]
|
27
27
|
), d = C(
|
28
|
-
() =>
|
29
|
-
countryCode:
|
28
|
+
() => v(n, {
|
29
|
+
countryCode: c,
|
30
30
|
grade: e ?? "",
|
31
|
-
goalCategory:
|
32
|
-
courseStream:
|
31
|
+
goalCategory: s.SCHOOL_SUCCESS,
|
32
|
+
courseStream: u,
|
33
33
|
curriculumStandard: i,
|
34
34
|
enrollmentType: "ONLINE"
|
35
35
|
}),
|
36
|
-
[
|
36
|
+
[n, c, e, u, i]
|
37
37
|
), { goal_code: _ } = C(
|
38
|
-
() => (
|
39
|
-
[
|
40
|
-
), h = !!(p && e && i && _),
|
38
|
+
() => (t == null ? void 0 : t.find((o) => o.goal_category === s.SCHOOL_SUCCESS)) ?? {},
|
39
|
+
[t]
|
40
|
+
), h = !!(p && e && i && _), r = m(
|
41
41
|
(o, l) => {
|
42
|
-
|
42
|
+
a({
|
43
43
|
[o]: l,
|
44
44
|
...o === "grade" || o === "curriculum" ? { goals: [] } : {}
|
45
45
|
});
|
46
46
|
},
|
47
|
-
[
|
48
|
-
),
|
47
|
+
[a]
|
48
|
+
), H = m(
|
49
|
+
(o) => {
|
50
|
+
a({ numberInNameError: !1 }), r("name", o.target.value);
|
51
|
+
},
|
52
|
+
[a, r]
|
53
|
+
), T = m(
|
49
54
|
(o, l) => {
|
50
|
-
const { label:
|
55
|
+
const { label: x } = l, A = O(t, s.SCHOOL_SUCCESS, {
|
51
56
|
goal_code: o,
|
52
|
-
milestone_name:
|
57
|
+
milestone_name: x,
|
53
58
|
milestone_date_ts: G()
|
54
59
|
});
|
55
|
-
|
60
|
+
a({ goals: A });
|
56
61
|
},
|
57
|
-
[
|
58
|
-
),
|
59
|
-
(o) =>
|
60
|
-
[
|
61
|
-
),
|
62
|
+
[t, a]
|
63
|
+
), D = m(
|
64
|
+
(o) => r("curriculum", o),
|
65
|
+
[r]
|
66
|
+
), F = m(
|
62
67
|
(o) => {
|
63
|
-
|
68
|
+
r("grade", o), r("curriculum", "");
|
64
69
|
},
|
65
|
-
[
|
70
|
+
[r]
|
66
71
|
);
|
67
72
|
return S(() => {
|
68
73
|
f("right", { isDisabled: !h, isLoading: !1 });
|
@@ -71,31 +76,32 @@ const X = B(() => {
|
|
71
76
|
}, [e]), S(() => {
|
72
77
|
const o = d.length === 1 ? d[0] : void 0;
|
73
78
|
if (o) {
|
74
|
-
const l = O(
|
79
|
+
const l = O(t, s.SCHOOL_SUCCESS, {
|
75
80
|
goal_code: o.id ?? "",
|
76
81
|
milestone_name: o.label ?? "",
|
77
82
|
milestone_date_ts: G()
|
78
83
|
});
|
79
|
-
|
84
|
+
a({ goals: l });
|
80
85
|
}
|
81
|
-
}, [d]), /* @__PURE__ */
|
82
|
-
|
86
|
+
}, [d]), /* @__PURE__ */ B(
|
87
|
+
z,
|
83
88
|
{
|
84
89
|
name: p,
|
85
90
|
grade: e,
|
86
|
-
|
87
|
-
grades: H,
|
88
|
-
curriculumStandards: N,
|
91
|
+
grades: b,
|
89
92
|
goalsList: d,
|
93
|
+
curriculum: i,
|
90
94
|
selectedGoal: _,
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
+
numberInNameError: N,
|
96
|
+
curriculumStandards: y,
|
97
|
+
onNameChange: H,
|
98
|
+
onGoalChange: T,
|
99
|
+
onGradeChange: F,
|
100
|
+
onCurriculumChange: D
|
95
101
|
}
|
96
102
|
);
|
97
103
|
});
|
98
104
|
export {
|
99
|
-
|
105
|
+
Z as default
|
100
106
|
};
|
101
107
|
//# sourceMappingURL=school-goals.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"school-goals.js","sources":["../../../../../src/features/trial-session/comps/school-goals/school-goals.tsx"],"sourcesContent":["import type { ISelectOption } from '../../../ui/inputs/base-select-input/base-select-input-types';\n\nimport { memo, useCallback, useEffect, useMemo } from 'react';\n\nimport { GOAL_CATEGORY } from '../../../milestone/constants';\nimport { getCategorizedCurriculumStandards } from '../../../milestone/create/comps/class-details-step/class-details-utils';\nimport {\n getGoalsFromConfig,\n getGradesFromConfig,\n} from '../../../milestone/create/milestone-create-helpers';\nimport { epochTimestampAfterOneYear } from '../../../utils/utils';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { updateGoalInFormData } from '../../helper';\nimport SchoolGoalsView from './school-goals-view';\n\nconst SchoolGoals = memo(() => {\n const {\n milestoneConfig,\n formData,\n updateSlideConfig,\n updateButtonState,\n onRemoveOptionalSlides,\n trialHomeData,\n } = useTrialSessionContext();\n const { name, grade, goals, curriculum } = formData || {};\n\n const { demo_info: demoInfo } = trialHomeData;\n const { stream, region_data: regionData } = demoInfo || {};\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n const grades = getGradesFromConfig(milestoneConfig);\n\n const curriculumStandards = useMemo(\n () =>\n getCategorizedCurriculumStandards(milestoneConfig, {\n countryCode,\n grade: grade ?? '',\n goalCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream: stream,\n enrollmentType: 'ONLINE',\n }),\n [milestoneConfig, countryCode, grade, stream],\n );\n\n const goalsList = useMemo(\n () =>\n getGoalsFromConfig(milestoneConfig, {\n countryCode,\n grade: grade ?? '',\n goalCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream: stream,\n curriculumStandard: curriculum,\n enrollmentType: 'ONLINE',\n }),\n [milestoneConfig, countryCode, grade, stream, curriculum],\n );\n\n const { goal_code: selectedGoal } = useMemo(\n () => goals?.find(goal => goal.goal_category === GOAL_CATEGORY.SCHOOL_SUCCESS) ?? {},\n [goals],\n );\n\n const hasRequiredFields = Boolean(name && grade && curriculum && selectedGoal);\n\n const updateStudentInformation = useCallback(\n (key: string, value: string) => {\n updateSlideConfig({\n [key]: value,\n ...(key === 'grade' || key === 'curriculum' ? { goals: [] } : {}),\n });\n },\n [updateSlideConfig],\n );\n\n const handleNameChange = useCallback<\n NonNullable<React.InputHTMLAttributes<HTMLInputElement>['onChange']>\n >(event => updateStudentInformation('name', event.target.value),
|
1
|
+
{"version":3,"file":"school-goals.js","sources":["../../../../../src/features/trial-session/comps/school-goals/school-goals.tsx"],"sourcesContent":["import type { ISelectOption } from '../../../ui/inputs/base-select-input/base-select-input-types';\n\nimport { memo, useCallback, useEffect, useMemo } from 'react';\n\nimport { GOAL_CATEGORY } from '../../../milestone/constants';\nimport { getCategorizedCurriculumStandards } from '../../../milestone/create/comps/class-details-step/class-details-utils';\nimport {\n getGoalsFromConfig,\n getGradesFromConfig,\n} from '../../../milestone/create/milestone-create-helpers';\nimport { epochTimestampAfterOneYear } from '../../../utils/utils';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { updateGoalInFormData } from '../../helper';\nimport SchoolGoalsView from './school-goals-view';\n\nconst SchoolGoals = memo(() => {\n const {\n milestoneConfig,\n formData,\n updateSlideConfig,\n updateButtonState,\n onRemoveOptionalSlides,\n trialHomeData,\n } = useTrialSessionContext();\n const { name, grade, goals, curriculum, numberInNameError } = formData || {};\n\n const { demo_info: demoInfo } = trialHomeData;\n const { stream, region_data: regionData } = demoInfo || {};\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n const grades = getGradesFromConfig(milestoneConfig);\n\n const curriculumStandards = useMemo(\n () =>\n getCategorizedCurriculumStandards(milestoneConfig, {\n countryCode,\n grade: grade ?? '',\n goalCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream: stream,\n enrollmentType: 'ONLINE',\n }),\n [milestoneConfig, countryCode, grade, stream],\n );\n\n const goalsList = useMemo(\n () =>\n getGoalsFromConfig(milestoneConfig, {\n countryCode,\n grade: grade ?? '',\n goalCategory: GOAL_CATEGORY.SCHOOL_SUCCESS,\n courseStream: stream,\n curriculumStandard: curriculum,\n enrollmentType: 'ONLINE',\n }),\n [milestoneConfig, countryCode, grade, stream, curriculum],\n );\n\n const { goal_code: selectedGoal } = useMemo(\n () => goals?.find(goal => goal.goal_category === GOAL_CATEGORY.SCHOOL_SUCCESS) ?? {},\n [goals],\n );\n\n const hasRequiredFields = Boolean(name && grade && curriculum && selectedGoal);\n\n const updateStudentInformation = useCallback(\n (key: string, value: string) => {\n updateSlideConfig({\n [key]: value,\n ...(key === 'grade' || key === 'curriculum' ? { goals: [] } : {}),\n });\n },\n [updateSlideConfig],\n );\n\n const handleNameChange = useCallback<\n NonNullable<React.InputHTMLAttributes<HTMLInputElement>['onChange']>\n >(\n event => {\n updateSlideConfig({ numberInNameError: false });\n updateStudentInformation('name', event.target.value);\n },\n [updateSlideConfig, updateStudentInformation],\n );\n\n const handleGoalChange = useCallback(\n (value: string, option: ISelectOption<string | number>) => {\n const { label } = option;\n\n const updatedGoals = updateGoalInFormData(goals, GOAL_CATEGORY.SCHOOL_SUCCESS, {\n goal_code: value,\n milestone_name: label,\n milestone_date_ts: epochTimestampAfterOneYear(),\n });\n\n updateSlideConfig({ goals: updatedGoals });\n },\n [goals, updateSlideConfig],\n );\n\n const handleCurriculumChange = useCallback(\n (value: string) => updateStudentInformation('curriculum', value),\n [updateStudentInformation],\n );\n\n const handleGradeChange = useCallback(\n (value: string) => {\n updateStudentInformation('grade', value);\n updateStudentInformation('curriculum', '');\n },\n [updateStudentInformation],\n );\n\n useEffect(() => {\n updateButtonState('right', { isDisabled: !hasRequiredFields, isLoading: false });\n }, [hasRequiredFields, updateButtonState]);\n\n useEffect(() => {\n if (grade) {\n onRemoveOptionalSlides?.(grade);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [grade]);\n\n useEffect(() => {\n // If there is only one goal in the list, set it as the selected goal\n // and update the form data with the goal code, milestone name, and date\n const defaultGoal = goalsList.length === 1 ? goalsList[0] : undefined;\n\n if (defaultGoal) {\n const goalToUpdate = updateGoalInFormData(goals, GOAL_CATEGORY.SCHOOL_SUCCESS, {\n goal_code: defaultGoal.id ?? '',\n milestone_name: defaultGoal.label ?? '',\n milestone_date_ts: epochTimestampAfterOneYear(),\n });\n\n updateSlideConfig({ goals: goalToUpdate });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [goalsList]);\n\n return (\n <SchoolGoalsView\n name={name}\n grade={grade}\n grades={grades}\n goalsList={goalsList}\n curriculum={curriculum}\n selectedGoal={selectedGoal}\n numberInNameError={numberInNameError}\n curriculumStandards={curriculumStandards}\n onNameChange={handleNameChange}\n onGoalChange={handleGoalChange}\n onGradeChange={handleGradeChange}\n onCurriculumChange={handleCurriculumChange}\n />\n );\n});\n\nexport default SchoolGoals;\n"],"names":["SchoolGoals","memo","milestoneConfig","formData","updateSlideConfig","updateButtonState","onRemoveOptionalSlides","trialHomeData","useTrialSessionContext","name","grade","goals","curriculum","numberInNameError","demoInfo","stream","regionData","countryCode","grades","getGradesFromConfig","curriculumStandards","useMemo","getCategorizedCurriculumStandards","GOAL_CATEGORY","goalsList","getGoalsFromConfig","selectedGoal","goal","hasRequiredFields","updateStudentInformation","useCallback","key","value","handleNameChange","event","handleGoalChange","option","label","updatedGoals","updateGoalInFormData","epochTimestampAfterOneYear","handleCurriculumChange","handleGradeChange","useEffect","defaultGoal","goalToUpdate","jsx","SchoolGoalsView"],"mappings":"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"}
|
@@ -13,60 +13,61 @@ const ue = () => {
|
|
13
13
|
updateSlideConfig: s,
|
14
14
|
slideConfig: B,
|
15
15
|
formData: H,
|
16
|
-
updateButtonState:
|
16
|
+
updateButtonState: n,
|
17
17
|
teacherId: l,
|
18
|
-
studentId:
|
19
|
-
milestoneConfig:
|
20
|
-
onTrialInformationUpdate:
|
21
|
-
trialHomeData:
|
22
|
-
worksheetNavigationPanel:
|
23
|
-
} = $(), { nextPage:
|
24
|
-
name:
|
18
|
+
studentId: a,
|
19
|
+
milestoneConfig: L,
|
20
|
+
onTrialInformationUpdate: I,
|
21
|
+
trialHomeData: w,
|
22
|
+
worksheetNavigationPanel: N
|
23
|
+
} = $(), { nextPage: Z, id: r } = B || {}, { demo_info: K } = w, { stream: P, region_data: W } = K, { opportunity_country: C = "US" } = W || {}, { pageId: i } = Z || {}, {
|
24
|
+
name: m,
|
25
25
|
grade: p,
|
26
26
|
goals: g,
|
27
|
-
curriculum:
|
27
|
+
curriculum: E,
|
28
28
|
studentTimezone: T,
|
29
29
|
preferences: A = [],
|
30
30
|
personalizedLevel: R = [],
|
31
|
-
personalizedFocus:
|
32
|
-
personalizedBehaviors:
|
31
|
+
personalizedFocus: b = [],
|
32
|
+
personalizedBehaviors: O = []
|
33
33
|
} = H || {}, c = d(() => {
|
34
|
-
|
34
|
+
n("both", {
|
35
35
|
left: { isDisabled: !0, isLoading: !1 },
|
36
36
|
right: { isDisabled: !0, isLoading: !0 }
|
37
37
|
});
|
38
|
-
}, [
|
38
|
+
}, [n]), _ = (o) => {
|
39
39
|
if (!o) {
|
40
40
|
const t = {};
|
41
41
|
(i === e.CIRCLE_GAME || i === e.CIRCLE_PUZZLE || i === e.CIRCLE_SKILL) && (t.matchmakingId = z(), t.showCircleGameScreen = !0), s({ id: i, ...t });
|
42
42
|
}
|
43
|
-
|
44
|
-
}, { patch: v } = Y({ onComplete:
|
45
|
-
onComplete:
|
43
|
+
n("both", S), (r === e.STUDENT_INFORMATION || r === e.SCHOOL_GOALS) && (I == null || I());
|
44
|
+
}, { patch: v } = Y({ onComplete: _ }), { patch: k } = X({
|
45
|
+
onComplete: _
|
46
46
|
}), { post: D } = J({
|
47
|
-
onComplete:
|
47
|
+
onComplete: _
|
48
48
|
}), { post: G } = Q({
|
49
|
-
onComplete:
|
49
|
+
onComplete: _
|
50
50
|
}), M = d(() => {
|
51
|
-
const [o, t] = (
|
51
|
+
const [o, t] = (m == null ? void 0 : m.split(" ")) || [], u = {
|
52
52
|
first_name: o,
|
53
53
|
last_name: t,
|
54
54
|
grade: p,
|
55
|
-
board:
|
55
|
+
board: E,
|
56
56
|
demo_type: "TRIAL_V3",
|
57
57
|
teacher_id: l,
|
58
58
|
country_alpha_2: C
|
59
59
|
};
|
60
|
-
c(), k(
|
60
|
+
/\d/.test(m || "") ? s({ numberInNameError: !0 }) : (c(), k(a, u));
|
61
61
|
}, [
|
62
|
-
|
62
|
+
m,
|
63
63
|
p,
|
64
|
-
|
64
|
+
E,
|
65
65
|
l,
|
66
66
|
C,
|
67
67
|
c,
|
68
|
+
s,
|
68
69
|
k,
|
69
|
-
|
70
|
+
a
|
70
71
|
]), U = d(() => {
|
71
72
|
const o = ee(A, T);
|
72
73
|
if (o.length > 0) {
|
@@ -79,104 +80,104 @@ const ue = () => {
|
|
79
80
|
action: "UPDATE_DEMO",
|
80
81
|
action_data: t,
|
81
82
|
teacher_id: l,
|
82
|
-
student_id:
|
83
|
+
student_id: a
|
83
84
|
});
|
84
85
|
} else
|
85
|
-
s({ id: i }),
|
86
|
+
s({ id: i }), n("both", S);
|
86
87
|
}, [
|
87
88
|
A,
|
88
89
|
T,
|
89
90
|
c,
|
90
91
|
v,
|
91
92
|
l,
|
92
|
-
|
93
|
+
a,
|
93
94
|
s,
|
94
95
|
i,
|
95
|
-
|
96
|
-
]),
|
96
|
+
n
|
97
|
+
]), x = d(() => {
|
97
98
|
const o = {
|
98
|
-
course_stream:
|
99
|
+
course_stream: P,
|
99
100
|
grade: p,
|
100
101
|
teacher_id: l,
|
101
|
-
board:
|
102
|
+
board: E,
|
102
103
|
goals: g
|
103
104
|
};
|
104
105
|
c(), D(o, {
|
105
|
-
studentId:
|
106
|
+
studentId: a
|
106
107
|
});
|
107
108
|
}, [
|
108
|
-
|
109
|
+
E,
|
109
110
|
c,
|
110
111
|
g,
|
111
112
|
p,
|
112
113
|
D,
|
113
|
-
|
114
|
-
|
114
|
+
P,
|
115
|
+
a,
|
115
116
|
l
|
116
|
-
]),
|
117
|
-
const t = { preferences: te(
|
117
|
+
]), y = d(() => {
|
118
|
+
const t = { preferences: te(L, [
|
118
119
|
...R,
|
119
|
-
...
|
120
|
-
...
|
121
|
-
]) },
|
122
|
-
c(), G(t,
|
120
|
+
...b,
|
121
|
+
...O
|
122
|
+
]) }, u = { stream: q.MATH, studentId: a };
|
123
|
+
c(), G(t, u);
|
123
124
|
}, [
|
124
125
|
c,
|
125
|
-
|
126
|
-
b,
|
126
|
+
L,
|
127
127
|
O,
|
128
|
+
b,
|
128
129
|
R,
|
129
130
|
G,
|
130
|
-
|
131
|
-
]),
|
131
|
+
a
|
132
|
+
]), h = d(
|
132
133
|
(o, t) => {
|
133
134
|
if (!s) return;
|
134
|
-
const
|
135
|
-
if ((t === e.CIRCLE_GAME || t === e.CIRCLE_PUZZLE || t === e.CIRCLE_SKILL) && (
|
135
|
+
const u = r === e.STUDENT_PROFILE, F = r === e.LEARNING_PLAN, f = {};
|
136
|
+
if ((t === e.CIRCLE_GAME || t === e.CIRCLE_PUZZLE || t === e.CIRCLE_SKILL) && (f.matchmakingId = z(), f.showCircleGameScreen = !0), o === "prev" && (s({
|
136
137
|
id: t,
|
137
|
-
...
|
138
|
-
...
|
138
|
+
...u && { studentProfile: void 0 },
|
139
|
+
...F && {
|
139
140
|
chapterId: void 0
|
140
141
|
},
|
141
|
-
...
|
142
|
-
}),
|
142
|
+
...f
|
143
|
+
}), n("both", S)), o === "next")
|
143
144
|
switch (r) {
|
144
145
|
case e.STUDENT_INFORMATION:
|
145
146
|
case e.SCHOOL_GOALS:
|
146
147
|
M();
|
147
148
|
break;
|
148
149
|
case e.LEARNING_WORKSHEET:
|
149
|
-
|
150
|
+
x();
|
150
151
|
break;
|
151
152
|
case e.CLASS_PREFERENCE:
|
152
153
|
U();
|
153
154
|
break;
|
154
155
|
case e.LEARNING_LEVEL:
|
155
156
|
case e.STUDENT_PERSONALIZATION:
|
156
|
-
|
157
|
+
y();
|
157
158
|
break;
|
158
159
|
case e.LEARNING_PLAN:
|
159
|
-
s({ id: t, chapterId: void 0, ...
|
160
|
+
s({ id: t, chapterId: void 0, ...f });
|
160
161
|
break;
|
161
162
|
default:
|
162
|
-
s({ id: t, ...
|
163
|
+
s({ id: t, ...f }), n("both", S);
|
163
164
|
}
|
164
165
|
},
|
165
166
|
[
|
166
167
|
s,
|
167
168
|
r,
|
168
|
-
|
169
|
+
n,
|
169
170
|
M,
|
170
|
-
|
171
|
+
x,
|
171
172
|
U,
|
172
|
-
|
173
|
+
y
|
173
174
|
]
|
174
|
-
),
|
175
|
-
!
|
176
|
-
}, [r,
|
175
|
+
), V = d(() => {
|
176
|
+
!N && r === e.LEARNING_WORKSHEET && h("next", i);
|
177
|
+
}, [r, h, i, N]);
|
177
178
|
return j(() => {
|
178
|
-
|
179
|
-
}, [
|
179
|
+
V();
|
180
|
+
}, [N]), { handleNavigation: h };
|
180
181
|
};
|
181
182
|
export {
|
182
183
|
ue as useTrialSessionNavigation
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-trial-session-navigation.js","sources":["../../../../src/features/trial-session/hooks/use-trial-session-navigation.ts"],"sourcesContent":["import type { ITrialSessionFormFields } from '../trial-session-types';\n\nimport { useCallback, useEffect } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { COURSE_STREAMS } from '../../milestone/constants';\nimport { useMilestoneBulkPost } from '../../milestone/create/api/milestone-bulk';\nimport { usePostStudentPreferences } from '../api/course-stream';\nimport { usePatchStudentInformation } from '../api/student-information';\nimport { usePatchTrialHome } from '../api/trial-home';\nimport { useTrialSessionContext } from '../context/use-trial-session-context';\nimport { getFormattedPreferences, getFormattedStudentPersonalizedPreference } from '../helper';\nimport { DEFAULT_BUTTON_STATE, TrialPageId } from '../trial-session-constants';\n\nconst useTrialSessionNavigation = () => {\n const {\n updateSlideConfig,\n slideConfig,\n formData,\n updateButtonState,\n teacherId,\n studentId,\n milestoneConfig,\n onTrialInformationUpdate,\n trialHomeData,\n worksheetNavigationPanel,\n } = useTrialSessionContext();\n const { nextPage, id: currentPageId } = slideConfig || {};\n const { demo_info: demoInfo } = trialHomeData;\n const { stream, region_data: regionData } = demoInfo;\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n const { pageId: nextPageId } = nextPage || {};\n const {\n name,\n grade,\n goals,\n curriculum,\n studentTimezone,\n preferences = [],\n personalizedLevel = [],\n personalizedFocus = [],\n personalizedBehaviors = [],\n } = formData || {};\n\n const disableNavButtons = useCallback(() => {\n updateButtonState('both', {\n left: { isDisabled: true, isLoading: false },\n right: { isDisabled: true, isLoading: true },\n });\n }, [updateButtonState]);\n\n const onAcknowledge = (errorMessage: string | null) => {\n if (!errorMessage) {\n const overrides: Partial<ITrialSessionFormFields> = {};\n\n if (\n nextPageId === TrialPageId.CIRCLE_GAME ||\n nextPageId === TrialPageId.CIRCLE_PUZZLE ||\n nextPageId === TrialPageId.CIRCLE_SKILL\n ) {\n overrides.matchmakingId = uuidv4();\n overrides.showCircleGameScreen = true;\n }\n\n updateSlideConfig({ id: nextPageId, ...overrides });\n }\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n\n if (\n currentPageId === TrialPageId.STUDENT_INFORMATION ||\n currentPageId === TrialPageId.SCHOOL_GOALS\n ) {\n //TODO: remove TrialPageId.STUDENT_INFORMATION\n onTrialInformationUpdate?.();\n }\n };\n\n // API specifications\n const { patch: patchTrialSession } = usePatchTrialHome({ onComplete: onAcknowledge });\n const { patch: patchStudentInformation } = usePatchStudentInformation({\n onComplete: onAcknowledge,\n });\n const { post: postMilestoneBulk } = useMilestoneBulkPost({\n onComplete: onAcknowledge,\n });\n const { post: postStudentPreferences } = usePostStudentPreferences({\n onComplete: onAcknowledge,\n });\n\n // Function to call API and updates states\n const handleStudentInformation = useCallback(() => {\n const [firstName, lastName] = name?.split(' ') || [];\n const payload = {\n first_name: firstName,\n last_name: lastName,\n grade,\n board: curriculum,\n demo_type: 'TRIAL_V3',\n teacher_id: teacherId,\n country_alpha_2: countryCode,\n };\n\n disableNavButtons();\n patchStudentInformation(studentId, payload);\n }, [\n name,\n grade,\n curriculum,\n teacherId,\n countryCode,\n disableNavButtons,\n patchStudentInformation,\n studentId,\n ]);\n\n const handleClassPreferences = useCallback(() => {\n const selectedRegularSlots = getFormattedPreferences(preferences, studentTimezone);\n\n if (selectedRegularSlots.length > 0) {\n const actionData = {\n trial_details: {\n selected_regular_slots: selectedRegularSlots,\n },\n };\n\n disableNavButtons();\n patchTrialSession('trial-v3-patch', {\n action: 'UPDATE_DEMO',\n action_data: actionData,\n teacher_id: teacherId,\n student_id: studentId,\n });\n } else {\n updateSlideConfig({ id: nextPageId });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n }, [\n preferences,\n studentTimezone,\n disableNavButtons,\n patchTrialSession,\n teacherId,\n studentId,\n updateSlideConfig,\n nextPageId,\n updateButtonState,\n ]);\n\n const handleMileStoneBulkPost = useCallback(() => {\n const payload = {\n course_stream: stream,\n grade,\n teacher_id: teacherId,\n board: curriculum,\n goals,\n };\n\n disableNavButtons();\n postMilestoneBulk(payload, {\n studentId,\n });\n }, [\n curriculum,\n disableNavButtons,\n goals,\n grade,\n postMilestoneBulk,\n stream,\n studentId,\n teacherId,\n ]);\n\n const handleStudentPreferencesPatch = useCallback(() => {\n const personalizedPreferences = getFormattedStudentPersonalizedPreference(milestoneConfig, [\n ...personalizedLevel,\n ...personalizedFocus,\n ...personalizedBehaviors,\n ]);\n\n const payload = { preferences: personalizedPreferences };\n const meta = { stream: COURSE_STREAMS.MATH, studentId };\n\n disableNavButtons();\n postStudentPreferences(payload, meta);\n }, [\n disableNavButtons,\n milestoneConfig,\n personalizedBehaviors,\n personalizedFocus,\n personalizedLevel,\n postStudentPreferences,\n studentId,\n ]);\n\n // Navigation logic\n const handleNavigation = useCallback(\n (dir: string, id?: string) => {\n if (!updateSlideConfig) return;\n\n const isStudentProfilePage = currentPageId === TrialPageId.STUDENT_PROFILE;\n const isLearningPlanSlide = currentPageId === TrialPageId.LEARNING_PLAN;\n const overrides: Partial<ITrialSessionFormFields> = {};\n\n if (\n id === TrialPageId.CIRCLE_GAME ||\n id === TrialPageId.CIRCLE_PUZZLE ||\n id === TrialPageId.CIRCLE_SKILL\n ) {\n overrides.matchmakingId = uuidv4();\n overrides.showCircleGameScreen = true;\n }\n\n if (dir === 'prev') {\n updateSlideConfig({\n id,\n ...(isStudentProfilePage && { studentProfile: undefined }),\n ...(isLearningPlanSlide && {\n chapterId: undefined,\n }),\n ...overrides,\n });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n\n if (dir === 'next') {\n switch (currentPageId) {\n //TODO: remove STUDENT_INFORMATION\n case TrialPageId.STUDENT_INFORMATION:\n case TrialPageId.SCHOOL_GOALS:\n handleStudentInformation();\n break;\n case TrialPageId.LEARNING_WORKSHEET:\n handleMileStoneBulkPost();\n break;\n case TrialPageId.CLASS_PREFERENCE:\n handleClassPreferences();\n break;\n case TrialPageId.LEARNING_LEVEL:\n case TrialPageId.STUDENT_PERSONALIZATION:\n handleStudentPreferencesPatch();\n break;\n case TrialPageId.LEARNING_PLAN:\n updateSlideConfig({ id, chapterId: undefined, ...overrides });\n break;\n default: {\n updateSlideConfig({ id, ...overrides });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n }\n }\n },\n [\n updateSlideConfig,\n currentPageId,\n updateButtonState,\n handleStudentInformation,\n handleMileStoneBulkPost,\n handleClassPreferences,\n handleStudentPreferencesPatch,\n ],\n );\n\n const sessionWorksheetNavigation = useCallback(() => {\n if (!worksheetNavigationPanel && currentPageId === TrialPageId.LEARNING_WORKSHEET) {\n handleNavigation('next', nextPageId);\n }\n }, [currentPageId, handleNavigation, nextPageId, worksheetNavigationPanel]);\n\n useEffect(() => {\n sessionWorksheetNavigation();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [worksheetNavigationPanel]);\n\n return { handleNavigation };\n};\n\nexport { useTrialSessionNavigation };\n"],"names":["useTrialSessionNavigation","updateSlideConfig","slideConfig","formData","updateButtonState","teacherId","studentId","milestoneConfig","onTrialInformationUpdate","trialHomeData","worksheetNavigationPanel","useTrialSessionContext","nextPage","currentPageId","demoInfo","stream","regionData","countryCode","nextPageId","name","grade","goals","curriculum","studentTimezone","preferences","personalizedLevel","personalizedFocus","personalizedBehaviors","disableNavButtons","useCallback","onAcknowledge","errorMessage","overrides","TrialPageId","uuidv4","DEFAULT_BUTTON_STATE","patchTrialSession","usePatchTrialHome","patchStudentInformation","usePatchStudentInformation","postMilestoneBulk","useMilestoneBulkPost","postStudentPreferences","usePostStudentPreferences","handleStudentInformation","firstName","lastName","payload","handleClassPreferences","selectedRegularSlots","getFormattedPreferences","actionData","handleMileStoneBulkPost","handleStudentPreferencesPatch","getFormattedStudentPersonalizedPreference","meta","COURSE_STREAMS","handleNavigation","dir","id","isStudentProfilePage","isLearningPlanSlide","sessionWorksheetNavigation","useEffect"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"use-trial-session-navigation.js","sources":["../../../../src/features/trial-session/hooks/use-trial-session-navigation.ts"],"sourcesContent":["import type { ITrialSessionFormFields } from '../trial-session-types';\n\nimport { useCallback, useEffect } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { COURSE_STREAMS } from '../../milestone/constants';\nimport { useMilestoneBulkPost } from '../../milestone/create/api/milestone-bulk';\nimport { usePostStudentPreferences } from '../api/course-stream';\nimport { usePatchStudentInformation } from '../api/student-information';\nimport { usePatchTrialHome } from '../api/trial-home';\nimport { useTrialSessionContext } from '../context/use-trial-session-context';\nimport { getFormattedPreferences, getFormattedStudentPersonalizedPreference } from '../helper';\nimport { DEFAULT_BUTTON_STATE, TrialPageId } from '../trial-session-constants';\n\nconst useTrialSessionNavigation = () => {\n const {\n updateSlideConfig,\n slideConfig,\n formData,\n updateButtonState,\n teacherId,\n studentId,\n milestoneConfig,\n onTrialInformationUpdate,\n trialHomeData,\n worksheetNavigationPanel,\n } = useTrialSessionContext();\n const { nextPage, id: currentPageId } = slideConfig || {};\n const { demo_info: demoInfo } = trialHomeData;\n const { stream, region_data: regionData } = demoInfo;\n const { opportunity_country: countryCode = 'US' } = regionData || {};\n const { pageId: nextPageId } = nextPage || {};\n const {\n name,\n grade,\n goals,\n curriculum,\n studentTimezone,\n preferences = [],\n personalizedLevel = [],\n personalizedFocus = [],\n personalizedBehaviors = [],\n } = formData || {};\n\n const disableNavButtons = useCallback(() => {\n updateButtonState('both', {\n left: { isDisabled: true, isLoading: false },\n right: { isDisabled: true, isLoading: true },\n });\n }, [updateButtonState]);\n\n const onAcknowledge = (errorMessage: string | null) => {\n if (!errorMessage) {\n const overrides: Partial<ITrialSessionFormFields> = {};\n\n if (\n nextPageId === TrialPageId.CIRCLE_GAME ||\n nextPageId === TrialPageId.CIRCLE_PUZZLE ||\n nextPageId === TrialPageId.CIRCLE_SKILL\n ) {\n overrides.matchmakingId = uuidv4();\n overrides.showCircleGameScreen = true;\n }\n\n updateSlideConfig({ id: nextPageId, ...overrides });\n }\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n\n if (\n currentPageId === TrialPageId.STUDENT_INFORMATION ||\n currentPageId === TrialPageId.SCHOOL_GOALS\n ) {\n //TODO: remove TrialPageId.STUDENT_INFORMATION\n onTrialInformationUpdate?.();\n }\n };\n\n // API specifications\n const { patch: patchTrialSession } = usePatchTrialHome({ onComplete: onAcknowledge });\n const { patch: patchStudentInformation } = usePatchStudentInformation({\n onComplete: onAcknowledge,\n });\n const { post: postMilestoneBulk } = useMilestoneBulkPost({\n onComplete: onAcknowledge,\n });\n const { post: postStudentPreferences } = usePostStudentPreferences({\n onComplete: onAcknowledge,\n });\n\n // Function to call API and updates states\n const handleStudentInformation = useCallback(() => {\n const [firstName, lastName] = name?.split(' ') || [];\n const payload = {\n first_name: firstName,\n last_name: lastName,\n grade,\n board: curriculum,\n demo_type: 'TRIAL_V3',\n teacher_id: teacherId,\n country_alpha_2: countryCode,\n };\n const isNumberExistsInName = /\\d/.test(name || '');\n\n if (isNumberExistsInName) {\n updateSlideConfig({ numberInNameError: true });\n } else {\n disableNavButtons();\n patchStudentInformation(studentId, payload);\n }\n }, [\n name,\n grade,\n curriculum,\n teacherId,\n countryCode,\n disableNavButtons,\n updateSlideConfig,\n patchStudentInformation,\n studentId,\n ]);\n\n const handleClassPreferences = useCallback(() => {\n const selectedRegularSlots = getFormattedPreferences(preferences, studentTimezone);\n\n if (selectedRegularSlots.length > 0) {\n const actionData = {\n trial_details: {\n selected_regular_slots: selectedRegularSlots,\n },\n };\n\n disableNavButtons();\n patchTrialSession('trial-v3-patch', {\n action: 'UPDATE_DEMO',\n action_data: actionData,\n teacher_id: teacherId,\n student_id: studentId,\n });\n } else {\n updateSlideConfig({ id: nextPageId });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n }, [\n preferences,\n studentTimezone,\n disableNavButtons,\n patchTrialSession,\n teacherId,\n studentId,\n updateSlideConfig,\n nextPageId,\n updateButtonState,\n ]);\n\n const handleMileStoneBulkPost = useCallback(() => {\n const payload = {\n course_stream: stream,\n grade,\n teacher_id: teacherId,\n board: curriculum,\n goals,\n };\n\n disableNavButtons();\n postMilestoneBulk(payload, {\n studentId,\n });\n }, [\n curriculum,\n disableNavButtons,\n goals,\n grade,\n postMilestoneBulk,\n stream,\n studentId,\n teacherId,\n ]);\n\n const handleStudentPreferencesPatch = useCallback(() => {\n const personalizedPreferences = getFormattedStudentPersonalizedPreference(milestoneConfig, [\n ...personalizedLevel,\n ...personalizedFocus,\n ...personalizedBehaviors,\n ]);\n\n const payload = { preferences: personalizedPreferences };\n const meta = { stream: COURSE_STREAMS.MATH, studentId };\n\n disableNavButtons();\n postStudentPreferences(payload, meta);\n }, [\n disableNavButtons,\n milestoneConfig,\n personalizedBehaviors,\n personalizedFocus,\n personalizedLevel,\n postStudentPreferences,\n studentId,\n ]);\n\n // Navigation logic\n const handleNavigation = useCallback(\n (dir: string, id?: string) => {\n if (!updateSlideConfig) return;\n\n const isStudentProfilePage = currentPageId === TrialPageId.STUDENT_PROFILE;\n const isLearningPlanSlide = currentPageId === TrialPageId.LEARNING_PLAN;\n const overrides: Partial<ITrialSessionFormFields> = {};\n\n if (\n id === TrialPageId.CIRCLE_GAME ||\n id === TrialPageId.CIRCLE_PUZZLE ||\n id === TrialPageId.CIRCLE_SKILL\n ) {\n overrides.matchmakingId = uuidv4();\n overrides.showCircleGameScreen = true;\n }\n\n if (dir === 'prev') {\n updateSlideConfig({\n id,\n ...(isStudentProfilePage && { studentProfile: undefined }),\n ...(isLearningPlanSlide && {\n chapterId: undefined,\n }),\n ...overrides,\n });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n\n if (dir === 'next') {\n switch (currentPageId) {\n //TODO: remove STUDENT_INFORMATION\n case TrialPageId.STUDENT_INFORMATION:\n case TrialPageId.SCHOOL_GOALS:\n handleStudentInformation();\n break;\n case TrialPageId.LEARNING_WORKSHEET:\n handleMileStoneBulkPost();\n break;\n case TrialPageId.CLASS_PREFERENCE:\n handleClassPreferences();\n break;\n case TrialPageId.LEARNING_LEVEL:\n case TrialPageId.STUDENT_PERSONALIZATION:\n handleStudentPreferencesPatch();\n break;\n case TrialPageId.LEARNING_PLAN:\n updateSlideConfig({ id, chapterId: undefined, ...overrides });\n break;\n default: {\n updateSlideConfig({ id, ...overrides });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n }\n }\n },\n [\n updateSlideConfig,\n currentPageId,\n updateButtonState,\n handleStudentInformation,\n handleMileStoneBulkPost,\n handleClassPreferences,\n handleStudentPreferencesPatch,\n ],\n );\n\n const sessionWorksheetNavigation = useCallback(() => {\n if (!worksheetNavigationPanel && currentPageId === TrialPageId.LEARNING_WORKSHEET) {\n handleNavigation('next', nextPageId);\n }\n }, [currentPageId, handleNavigation, nextPageId, worksheetNavigationPanel]);\n\n useEffect(() => {\n sessionWorksheetNavigation();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [worksheetNavigationPanel]);\n\n return { handleNavigation };\n};\n\nexport { useTrialSessionNavigation };\n"],"names":["useTrialSessionNavigation","updateSlideConfig","slideConfig","formData","updateButtonState","teacherId","studentId","milestoneConfig","onTrialInformationUpdate","trialHomeData","worksheetNavigationPanel","useTrialSessionContext","nextPage","currentPageId","demoInfo","stream","regionData","countryCode","nextPageId","name","grade","goals","curriculum","studentTimezone","preferences","personalizedLevel","personalizedFocus","personalizedBehaviors","disableNavButtons","useCallback","onAcknowledge","errorMessage","overrides","TrialPageId","uuidv4","DEFAULT_BUTTON_STATE","patchTrialSession","usePatchTrialHome","patchStudentInformation","usePatchStudentInformation","postMilestoneBulk","useMilestoneBulkPost","postStudentPreferences","usePostStudentPreferences","handleStudentInformation","firstName","lastName","payload","handleClassPreferences","selectedRegularSlots","getFormattedPreferences","actionData","handleMileStoneBulkPost","handleStudentPreferencesPatch","getFormattedStudentPersonalizedPreference","meta","COURSE_STREAMS","handleNavigation","dir","id","isStudentProfilePage","isLearningPlanSlide","sessionWorksheetNavigation","useEffect"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"trial-session-types.js","sources":["../../../src/features/trial-session/trial-session-types.ts"],"sourcesContent":["import type { TNodeTypes } from '../../types/models/worksheet';\nimport type { IInfoMessage } from '../circle-games/games/web-view/web-view-types';\nimport type { IMilestoneConfig, TCourseStream } from '../milestone/create/milestone-create-types';\nimport type { IAvatarLayer } from '../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../ui/types';\nimport type { TPreference } from './comps/class-preference/class-preference-types';\nimport type {\n ITrialCircleConfig,\n ITrialCircleGameParams,\n} from './comps/trial-circle-game/trial-circle-game-types';\nimport type { TrialPageId } from './trial-session-constants';\nimport type { Dispatch, SetStateAction } from 'react';\n\nexport type TSlideId = TrialPageId;\n\nexport type TRegionData = {\n opportunity_country: string;\n};\n\nexport enum EClassTimeAlertLevel {\n FIVE_MIN = '5min',\n FIFTEEN_MIN = '15min',\n}\ninterface IButtonConfig {\n buttonLabel: string;\n pageId: string;\n}\n\nexport interface ISolution {\n media?: string;\n media_type?: 'image' | 'video';\n text?: string;\n}\n\nexport type TDegreeInformation = { degree_name?: string; field_of_study?: string };\n\nexport interface ITeacherProfileDetails {\n lower_grade: string;\n higher_grade: string;\n header_image: string;\n years_of_experience: number;\n number_of_students_taught: number;\n countries: string[];\n degree: TDegreeInformation;\n}\n\nexport interface ISlide {\n id: TrialPageId;\n renderAs: 'split' | 'full';\n renderAVIn: 'left' | 'right';\n header: string;\n subHeader?: string;\n prevPage?: IButtonConfig;\n nextPage?: IButtonConfig;\n cues?: string[];\n dos?: string[];\n donts?: string[];\n navigationLabel?: string;\n slideTag?: string;\n teacher_profile?: ITeacherProfileDetails;\n solutions?: ISolution[];\n enableSessionPerk?: boolean;\n}\n\nexport interface TGoals {\n goal_code?: string;\n milestone_date_ts?: number;\n goal_category?: string;\n milestone_name?: string;\n publish?: boolean;\n}\n\nexport interface ITrialSessionFormFields {\n id: string;\n name?: string;\n grade?: string;\n curriculum?: string;\n goals?: TGoals[];\n studentProfile?: {\n profileSummary?: string;\n dummyProfileImageIndex?: number;\n summaryFetched?: boolean;\n summaryFetchFailed?: boolean;\n };\n userNodeId?: string;\n nodeId?: string;\n nodeType?: TNodeTypes;\n attemptId?: string;\n preferences?: TPreference[];\n personalizedLevel?: string[];\n personalizedFocus?: string[];\n personalizedBehaviors?: string[];\n isCircleGamePlayed?: boolean;\n isCirclePuzzleSolved?: boolean;\n isCircleSkillCompleted?: boolean;\n studentTimezone?: string;\n showCircleGameScreen?: boolean;\n accuracyStr?: string;\n totalTimeTaken?: number;\n chapterId?: string;\n matchmakingId?: string;\n}\n\nexport interface IButtonState {\n isDisabled: boolean;\n isLoading: boolean;\n}\n\nexport interface ITrialHomeData {\n pages: ISlide[];\n demo_info: {\n student_classroom_id: string;\n stream: TCourseStream;\n region_data: TRegionData;\n };\n parent: {\n name: string;\n };\n student: {\n grade: string;\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n };\n teacher: {\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n };\n circle_trial_game_config: ITrialCircleConfig;\n}\n\nexport interface IClassTimeAlertConfig {\n alertLevel: EClassTimeAlertLevel | null;\n isVisible: boolean;\n onComplete: () => void;\n}\n\nexport interface ITrialSessionProps {\n countryCode?: string;\n classStartedOn?: Date;\n height?: string | number;\n userType: TUserTypes;\n studentId: string;\n teacherId: string;\n teacherClassroomId: string;\n teacherPanel?: JSX.Element;\n studentPanel?: JSX.Element;\n formData?: ITrialSessionFormFields;\n onFormDataChange?: Dispatch<SetStateAction<ITrialSessionFormFields | undefined>>;\n worksheet?: JSX.Element;\n worksheetNavigationPanel?: JSX.Element;\n questionsRatingPanel?: JSX.Element;\n studentAbsentInClass?: boolean;\n openEndClassModal?: () => void;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n classTimeAlertConfig?: IClassTimeAlertConfig;\n classDuration?: number;\n}\n\nexport interface ITrialSessionContext\n extends Pick<\n ITrialSessionProps,\n | 'classStartedOn'\n | 'formData'\n | 'teacherPanel'\n | 'studentId'\n | 'teacherId'\n | 'studentPanel'\n | 'worksheet'\n | 'worksheetNavigationPanel'\n | 'questionsRatingPanel'\n | 'openEndClassModal'\n | 'studentAbsentInClass'\n | 'classDuration'\n | 'classTimeAlertConfig'\n > {\n buttonState: { left: IButtonState; right: IButtonState };\n isTeacher: boolean;\n milestoneConfig: IMilestoneConfig;\n slideConfig: ISlide;\n updateButtonState: (\n btnNavDir: 'left' | 'right' | 'both',\n currentState: IButtonState | { left: IButtonState; right: IButtonState },\n ) => void;\n updateSlideConfig: (config: Partial<ITrialSessionFormFields>) => void;\n trialHomeData: ITrialHomeData;\n onTrialInformationUpdate?: () => void;\n circleGames: ITrialCircleGameParams;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string) => void;\n}\n\nexport interface ITrialSessionViewProps extends ITrialSessionProps {\n trialHomeData: ITrialHomeData;\n milestoneConfig: IMilestoneConfig;\n studentTimezone?: string;\n onStudentTimezoneUpdate?: () => void;\n onTrialInformationUpdate?: () => void;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string) => void;\n}\n"],"names":["EClassTimeAlertLevel"],"mappings":"AAmBY,IAAAA,sBAAAA,OACVA,EAAA,WAAW,QACXA,EAAA,cAAc,SAFJA,IAAAA,KAAA,CAAA,CAAA;"}
|
1
|
+
{"version":3,"file":"trial-session-types.js","sources":["../../../src/features/trial-session/trial-session-types.ts"],"sourcesContent":["import type { TNodeTypes } from '../../types/models/worksheet';\nimport type { IInfoMessage } from '../circle-games/games/web-view/web-view-types';\nimport type { IMilestoneConfig, TCourseStream } from '../milestone/create/milestone-create-types';\nimport type { IAvatarLayer } from '../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../ui/types';\nimport type { TPreference } from './comps/class-preference/class-preference-types';\nimport type {\n ITrialCircleConfig,\n ITrialCircleGameParams,\n} from './comps/trial-circle-game/trial-circle-game-types';\nimport type { TrialPageId } from './trial-session-constants';\nimport type { Dispatch, SetStateAction } from 'react';\n\nexport type TSlideId = TrialPageId;\n\nexport type TRegionData = {\n opportunity_country: string;\n};\n\nexport enum EClassTimeAlertLevel {\n FIVE_MIN = '5min',\n FIFTEEN_MIN = '15min',\n}\ninterface IButtonConfig {\n buttonLabel: string;\n pageId: string;\n}\n\nexport interface ISolution {\n media?: string;\n media_type?: 'image' | 'video';\n text?: string;\n}\n\nexport type TDegreeInformation = { degree_name?: string; field_of_study?: string };\n\nexport interface ITeacherProfileDetails {\n lower_grade: string;\n higher_grade: string;\n header_image: string;\n years_of_experience: number;\n number_of_students_taught: number;\n countries: string[];\n degree: TDegreeInformation;\n}\n\nexport interface ISlide {\n id: TrialPageId;\n renderAs: 'split' | 'full';\n renderAVIn: 'left' | 'right';\n header: string;\n subHeader?: string;\n prevPage?: IButtonConfig;\n nextPage?: IButtonConfig;\n cues?: string[];\n dos?: string[];\n donts?: string[];\n navigationLabel?: string;\n slideTag?: string;\n teacher_profile?: ITeacherProfileDetails;\n solutions?: ISolution[];\n enableSessionPerk?: boolean;\n}\n\nexport interface TGoals {\n goal_code?: string;\n milestone_date_ts?: number;\n goal_category?: string;\n milestone_name?: string;\n publish?: boolean;\n}\n\nexport interface ITrialSessionFormFields {\n id: string;\n name?: string;\n grade?: string;\n curriculum?: string;\n goals?: TGoals[];\n studentProfile?: {\n profileSummary?: string;\n dummyProfileImageIndex?: number;\n summaryFetched?: boolean;\n summaryFetchFailed?: boolean;\n };\n userNodeId?: string;\n nodeId?: string;\n nodeType?: TNodeTypes;\n attemptId?: string;\n preferences?: TPreference[];\n personalizedLevel?: string[];\n personalizedFocus?: string[];\n personalizedBehaviors?: string[];\n isCircleGamePlayed?: boolean;\n isCirclePuzzleSolved?: boolean;\n isCircleSkillCompleted?: boolean;\n studentTimezone?: string;\n showCircleGameScreen?: boolean;\n accuracyStr?: string;\n totalTimeTaken?: number;\n chapterId?: string;\n matchmakingId?: string;\n numberInNameError?: boolean;\n}\n\nexport interface IButtonState {\n isDisabled: boolean;\n isLoading: boolean;\n}\n\nexport interface ITrialHomeData {\n pages: ISlide[];\n demo_info: {\n student_classroom_id: string;\n stream: TCourseStream;\n region_data: TRegionData;\n };\n parent: {\n name: string;\n };\n student: {\n grade: string;\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n };\n teacher: {\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n };\n circle_trial_game_config: ITrialCircleConfig;\n}\n\nexport interface IClassTimeAlertConfig {\n alertLevel: EClassTimeAlertLevel | null;\n isVisible: boolean;\n onComplete: () => void;\n}\n\nexport interface ITrialSessionProps {\n countryCode?: string;\n classStartedOn?: Date;\n height?: string | number;\n userType: TUserTypes;\n studentId: string;\n teacherId: string;\n teacherClassroomId: string;\n teacherPanel?: JSX.Element;\n studentPanel?: JSX.Element;\n formData?: ITrialSessionFormFields;\n onFormDataChange?: Dispatch<SetStateAction<ITrialSessionFormFields | undefined>>;\n worksheet?: JSX.Element;\n worksheetNavigationPanel?: JSX.Element;\n questionsRatingPanel?: JSX.Element;\n studentAbsentInClass?: boolean;\n openEndClassModal?: () => void;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n classTimeAlertConfig?: IClassTimeAlertConfig;\n classDuration?: number;\n}\n\nexport interface ITrialSessionContext\n extends Pick<\n ITrialSessionProps,\n | 'classStartedOn'\n | 'formData'\n | 'teacherPanel'\n | 'studentId'\n | 'teacherId'\n | 'studentPanel'\n | 'worksheet'\n | 'worksheetNavigationPanel'\n | 'questionsRatingPanel'\n | 'openEndClassModal'\n | 'studentAbsentInClass'\n | 'classDuration'\n | 'classTimeAlertConfig'\n > {\n buttonState: { left: IButtonState; right: IButtonState };\n isTeacher: boolean;\n milestoneConfig: IMilestoneConfig;\n slideConfig: ISlide;\n updateButtonState: (\n btnNavDir: 'left' | 'right' | 'both',\n currentState: IButtonState | { left: IButtonState; right: IButtonState },\n ) => void;\n updateSlideConfig: (config: Partial<ITrialSessionFormFields>) => void;\n trialHomeData: ITrialHomeData;\n onTrialInformationUpdate?: () => void;\n circleGames: ITrialCircleGameParams;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string) => void;\n}\n\nexport interface ITrialSessionViewProps extends ITrialSessionProps {\n trialHomeData: ITrialHomeData;\n milestoneConfig: IMilestoneConfig;\n studentTimezone?: string;\n onStudentTimezoneUpdate?: () => void;\n onTrialInformationUpdate?: () => void;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string) => void;\n}\n"],"names":["EClassTimeAlertLevel"],"mappings":"AAmBY,IAAAA,sBAAAA,OACVA,EAAA,WAAW,QACXA,EAAA,cAAc,SAFJA,IAAAA,KAAA,CAAA,CAAA;"}
|
@@ -12,8 +12,8 @@ const n = () => {
|
|
12
12
|
// Set the Learnosity host header if applicable
|
13
13
|
}
|
14
14
|
} : void 0;
|
15
|
-
}, { useGet:
|
16
|
-
getURL: (t, e) => `${r}/worksheets/fb575b36-7861-11e8-b8d4-acbc3277df8f/?${s({
|
15
|
+
}, i = () => window.location.hostname === "storybook.cuemath.com" ? "https://leap.cuemath.com" : "", { useGet: h } = o({
|
16
|
+
getURL: (t, e) => `${i()}${r}/worksheets/fb575b36-7861-11e8-b8d4-acbc3277df8f/?${s({
|
17
17
|
activityReference: t,
|
18
18
|
sign: !0,
|
19
19
|
meta: !0,
|
@@ -23,6 +23,6 @@ const n = () => {
|
|
23
23
|
params: a()
|
24
24
|
});
|
25
25
|
export {
|
26
|
-
|
26
|
+
h as usePreviewWorksheetGet
|
27
27
|
};
|
28
28
|
//# sourceMappingURL=get-preview-worksheet.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get-preview-worksheet.js","sources":["../../../../../src/features/worksheet/worksheet-preview/api/get-preview-worksheet.ts"],"sourcesContent":["import type { IPreviewWorksheetModel } from '../../../../types/models/worksheet';\n\nimport { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V1 } from '../../../../constants/api';\nimport { stringify } from '../../../../helpers/query-string';\n\n/**\n * Determines the Learnosity host based on the current window location.\n * Returns the hostname if it starts with 'local' or matches 'storybook.cuemath.com',\n * otherwise returns null.\n */\nconst getLearnosityHost = () => {\n const hostname = window.location.hostname;\n\n if (hostname.startsWith('local') || hostname === 'storybook.cuemath.com') {\n return hostname;\n }\n\n return null;\n};\n\nconst getParams = () => {\n const learnosityHost = getLearnosityHost();\n\n return learnosityHost\n ? {\n headers: {\n 'Learnosity-Host': learnosityHost, // Set the Learnosity host header if applicable\n },\n }\n : undefined;\n};\n\ntype TPreviewWorksheetQuery = {\n action: string;\n node_type: string;\n items?: string[];\n};\n\nconst { useGet: usePreviewWorksheetGet } = createGetAPI<\n IPreviewWorksheetModel,\n TPreviewWorksheetQuery\n>({\n getURL: (activityRef, query) =>\n `${BASE_URL_V1}/worksheets/fb575b36-7861-11e8-b8d4-acbc3277df8f/?${stringify({\n activityReference: activityRef,\n sign: true,\n meta: true,\n test: true,\n ...query,\n })}`,\n params: getParams(),\n});\n\nexport { usePreviewWorksheetGet };\n"],"names":["getLearnosityHost","hostname","getParams","learnosityHost","usePreviewWorksheetGet","createGetAPI","activityRef","query","BASE_URL_V1","stringify"],"mappings":";;;AAYA,MAAMA,IAAoB,MAAM;AACxB,QAAAC,IAAW,OAAO,SAAS;AAEjC,SAAIA,EAAS,WAAW,OAAO,KAAKA,MAAa,0BACxCA,IAGF;AACT,GAEMC,IAAY,MAAM;AACtB,QAAMC,IAAiBH;AAEvB,SAAOG,IACH;AAAA,IACE,SAAS;AAAA,MACP,mBAAmBA;AAAA;AAAA,IACrB;AAAA,EAEF,IAAA;AACN,
|
1
|
+
{"version":3,"file":"get-preview-worksheet.js","sources":["../../../../../src/features/worksheet/worksheet-preview/api/get-preview-worksheet.ts"],"sourcesContent":["import type { IPreviewWorksheetModel } from '../../../../types/models/worksheet';\n\nimport { createGetAPI } from '@cuemath/rest-api';\n\nimport { BASE_URL_V1 } from '../../../../constants/api';\nimport { stringify } from '../../../../helpers/query-string';\n\n/**\n * Determines the Learnosity host based on the current window location.\n * Returns the hostname if it starts with 'local' or matches 'storybook.cuemath.com',\n * otherwise returns null.\n */\nconst getLearnosityHost = () => {\n const hostname = window.location.hostname;\n\n if (hostname.startsWith('local') || hostname === 'storybook.cuemath.com') {\n return hostname;\n }\n\n return null;\n};\n\nconst getParams = () => {\n const learnosityHost = getLearnosityHost();\n\n return learnosityHost\n ? {\n headers: {\n 'Learnosity-Host': learnosityHost, // Set the Learnosity host header if applicable\n },\n }\n : undefined;\n};\n\nconst getDomainName = () => {\n if (window.location.hostname === 'storybook.cuemath.com') {\n return 'https://leap.cuemath.com';\n }\n\n return '';\n};\n\ntype TPreviewWorksheetQuery = {\n action: string;\n node_type: string;\n items?: string[];\n};\n\nconst { useGet: usePreviewWorksheetGet } = createGetAPI<\n IPreviewWorksheetModel,\n TPreviewWorksheetQuery\n>({\n getURL: (activityRef, query) =>\n `${getDomainName()}${BASE_URL_V1}/worksheets/fb575b36-7861-11e8-b8d4-acbc3277df8f/?${stringify({\n activityReference: activityRef,\n sign: true,\n meta: true,\n test: true,\n ...query,\n })}`,\n params: getParams(),\n});\n\nexport { usePreviewWorksheetGet };\n"],"names":["getLearnosityHost","hostname","getParams","learnosityHost","getDomainName","usePreviewWorksheetGet","createGetAPI","activityRef","query","BASE_URL_V1","stringify"],"mappings":";;;AAYA,MAAMA,IAAoB,MAAM;AACxB,QAAAC,IAAW,OAAO,SAAS;AAEjC,SAAIA,EAAS,WAAW,OAAO,KAAKA,MAAa,0BACxCA,IAGF;AACT,GAEMC,IAAY,MAAM;AACtB,QAAMC,IAAiBH;AAEvB,SAAOG,IACH;AAAA,IACE,SAAS;AAAA,MACP,mBAAmBA;AAAA;AAAA,IACrB;AAAA,EAEF,IAAA;AACN,GAEMC,IAAgB,MAChB,OAAO,SAAS,aAAa,0BACxB,6BAGF,IASH,EAAE,QAAQC,EAAuB,IAAIC,EAGzC;AAAA,EACA,QAAQ,CAACC,GAAaC,MACpB,GAAGJ,GAAe,GAAGK,CAAW,qDAAqDC,EAAU;AAAA,IAC7F,mBAAmBH;AAAA,IACnB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,GAAGC;AAAA,EACJ,CAAA,CAAC;AAAA,EACJ,QAAQN,EAAU;AACpB,CAAC;"}
|
package/dist/index.d.ts
CHANGED