@cuemath/leap 3.5.56-link.0 → 3.5.56-link.1
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.
|
@@ -2,30 +2,30 @@ import { useCallback as r, useEffect as ae } from "react";
|
|
|
2
2
|
import { COURSE_STREAMS as ne } from "../../milestone/constants.js";
|
|
3
3
|
import { useMilestoneBulkPost as ie } from "../../milestone/create/api/milestone-bulk.js";
|
|
4
4
|
import { usePostStudentPreferences as re } from "../api/course-stream.js";
|
|
5
|
-
import { usePatchStudentInformation as
|
|
6
|
-
import { usePostTeacherAvailability as
|
|
5
|
+
import { usePatchStudentInformation as le } from "../api/student-information.js";
|
|
6
|
+
import { usePostTeacherAvailability as ce } from "../api/teacher-availability.js";
|
|
7
7
|
import { usePatchTrialHome as de } from "../api/trial-home.js";
|
|
8
8
|
import { useTrialSessionContext as me } from "../context/use-trial-session-context.js";
|
|
9
|
-
import { getFormattedPreferences as q, getWeekdayAndStartTimeFromPreference as
|
|
9
|
+
import { getFormattedPreferences as q, getWeekdayAndStartTimeFromPreference as fe, getFormattedStudentPersonalizedPreference as ue } from "../helper.js";
|
|
10
10
|
import { DEFAULT_BUTTON_STATE as u, TrialPageId as t } from "../trial-session-constants.js";
|
|
11
11
|
import J from "../../../node_modules/uuid/dist/esm-browser/v4.js";
|
|
12
12
|
const Ae = () => {
|
|
13
13
|
const {
|
|
14
14
|
updateSlideConfig: a,
|
|
15
15
|
slideConfig: Q,
|
|
16
|
-
demoType:
|
|
16
|
+
demoType: l,
|
|
17
17
|
formData: X,
|
|
18
18
|
updateButtonState: s,
|
|
19
19
|
teacherId: c,
|
|
20
|
-
studentId:
|
|
20
|
+
studentId: d,
|
|
21
21
|
milestoneConfig: k,
|
|
22
22
|
handleInfoMessage: L,
|
|
23
23
|
onTrialInformationUpdate: A,
|
|
24
|
-
trialHomeData:
|
|
25
|
-
worksheetNavigationPanel:
|
|
26
|
-
} = me(), { nextPage: Y, id:
|
|
27
|
-
name:
|
|
28
|
-
grade:
|
|
24
|
+
trialHomeData: T,
|
|
25
|
+
worksheetNavigationPanel: C
|
|
26
|
+
} = me(), { nextPage: Y, id: p } = Q || {}, { demo_info: $ } = T, { stream: y, region_data: ee } = $, { opportunity_country: D = "US" } = ee || {}, { pageId: i } = Y || {}, {
|
|
27
|
+
name: E,
|
|
28
|
+
grade: _,
|
|
29
29
|
goals: G,
|
|
30
30
|
curriculum: N,
|
|
31
31
|
studentTimezone: I,
|
|
@@ -35,23 +35,23 @@ const Ae = () => {
|
|
|
35
35
|
personalizedBehaviors: z = [],
|
|
36
36
|
personalizedObjectives: U = [],
|
|
37
37
|
personalizedPosition: B = []
|
|
38
|
-
} = X || {},
|
|
38
|
+
} = X || {}, m = r(() => {
|
|
39
39
|
s("both", {
|
|
40
40
|
left: { isDisabled: !0, isLoading: !1 },
|
|
41
41
|
right: { isDisabled: !0, isLoading: !0 }
|
|
42
42
|
});
|
|
43
|
-
}, [s]),
|
|
43
|
+
}, [s]), g = (o) => {
|
|
44
44
|
if (!o) {
|
|
45
45
|
const e = {};
|
|
46
46
|
(i === t.CIRCLE_GAME || i === t.CIRCLE_PUZZLE || i === t.CIRCLE_SKILL) && (e.matchmakingId = J(), e.showCircleGameScreen = !0), a({ id: i, ...e });
|
|
47
47
|
}
|
|
48
|
-
s("both", u),
|
|
49
|
-
}, { patch: F } = de({ onComplete:
|
|
50
|
-
onComplete:
|
|
51
|
-
}), { post:
|
|
52
|
-
onComplete:
|
|
53
|
-
}), { post:
|
|
54
|
-
onComplete:
|
|
48
|
+
s("both", u), p === t.LEARNING_LEVEL && (A == null || A());
|
|
49
|
+
}, { patch: F } = de({ onComplete: g }), { patch: M } = le({
|
|
50
|
+
onComplete: g
|
|
51
|
+
}), { post: V } = ie({
|
|
52
|
+
onComplete: g
|
|
53
|
+
}), { post: H } = re({
|
|
54
|
+
onComplete: g
|
|
55
55
|
}), te = r(
|
|
56
56
|
(o, e) => {
|
|
57
57
|
if ((e ?? []).some((n) => !n.is_available)) {
|
|
@@ -60,60 +60,60 @@ const Ae = () => {
|
|
|
60
60
|
L == null || L({ message: se, position: "bottom" }), s("both", u);
|
|
61
61
|
return;
|
|
62
62
|
}
|
|
63
|
-
const
|
|
64
|
-
|
|
63
|
+
const h = q(b, I);
|
|
64
|
+
h.length > 0 ? F("trial-v3-patch", {
|
|
65
65
|
action: "UPDATE_DEMO",
|
|
66
66
|
action_data: {
|
|
67
67
|
trial_details: {
|
|
68
|
-
selected_regular_slots:
|
|
68
|
+
selected_regular_slots: h
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
teacher_id: c,
|
|
72
|
-
student_id:
|
|
72
|
+
student_id: d
|
|
73
73
|
}) : s("both", u);
|
|
74
74
|
},
|
|
75
75
|
[
|
|
76
76
|
L,
|
|
77
77
|
F,
|
|
78
78
|
b,
|
|
79
|
-
|
|
79
|
+
d,
|
|
80
80
|
I,
|
|
81
81
|
c,
|
|
82
82
|
s
|
|
83
83
|
]
|
|
84
|
-
), { post: w } =
|
|
84
|
+
), { post: w } = ce({
|
|
85
85
|
onComplete: te
|
|
86
86
|
}), W = r(() => {
|
|
87
87
|
var n;
|
|
88
|
-
const [o, e] = ((n =
|
|
88
|
+
const [o, e] = ((n = E == null ? void 0 : E.trim()) == null ? void 0 : n.split(" ")) || [], f = {
|
|
89
89
|
first_name: o,
|
|
90
90
|
last_name: e,
|
|
91
|
-
grade:
|
|
91
|
+
grade: _,
|
|
92
92
|
board: N,
|
|
93
|
-
demo_type:
|
|
93
|
+
demo_type: l,
|
|
94
94
|
teacher_id: c,
|
|
95
95
|
country_alpha_2: D
|
|
96
96
|
};
|
|
97
|
-
/\d/.test(
|
|
97
|
+
/\d/.test(E || "") ? a({ numberInNameError: !0 }) : (m(), M(d, f));
|
|
98
98
|
}, [
|
|
99
|
-
h,
|
|
100
99
|
E,
|
|
100
|
+
_,
|
|
101
101
|
N,
|
|
102
|
-
|
|
102
|
+
l,
|
|
103
103
|
c,
|
|
104
104
|
D,
|
|
105
105
|
a,
|
|
106
|
-
|
|
106
|
+
m,
|
|
107
107
|
M,
|
|
108
|
-
|
|
108
|
+
d
|
|
109
109
|
]), K = r(() => {
|
|
110
|
-
const o = q(b, I), e =
|
|
110
|
+
const o = q(b, I), e = fe(o);
|
|
111
111
|
if (o.length > 0) {
|
|
112
|
-
const
|
|
112
|
+
const f = {
|
|
113
113
|
teacher_id: c,
|
|
114
114
|
session_list: e
|
|
115
115
|
};
|
|
116
|
-
|
|
116
|
+
m(), w(f);
|
|
117
117
|
} else
|
|
118
118
|
a({ id: i }), s("both", u);
|
|
119
119
|
}, [
|
|
@@ -121,80 +121,82 @@ const Ae = () => {
|
|
|
121
121
|
I,
|
|
122
122
|
c,
|
|
123
123
|
w,
|
|
124
|
-
|
|
124
|
+
m,
|
|
125
125
|
a,
|
|
126
126
|
i,
|
|
127
127
|
s
|
|
128
|
-
]),
|
|
128
|
+
]), S = r(() => {
|
|
129
129
|
const o = {
|
|
130
130
|
course_stream: y,
|
|
131
|
-
grade:
|
|
131
|
+
grade: _,
|
|
132
132
|
teacher_id: c,
|
|
133
133
|
board: N,
|
|
134
|
-
goals: G
|
|
134
|
+
goals: G,
|
|
135
|
+
delete_existing_draft: l === "TRIAL_V3_3"
|
|
135
136
|
};
|
|
136
|
-
|
|
137
|
-
studentId:
|
|
137
|
+
m(), V(o, {
|
|
138
|
+
studentId: d
|
|
138
139
|
});
|
|
139
140
|
}, [
|
|
140
141
|
N,
|
|
141
|
-
|
|
142
|
+
l,
|
|
143
|
+
m,
|
|
142
144
|
G,
|
|
143
|
-
|
|
144
|
-
|
|
145
|
+
_,
|
|
146
|
+
V,
|
|
145
147
|
y,
|
|
146
|
-
|
|
148
|
+
d,
|
|
147
149
|
c
|
|
148
150
|
]), Z = r(
|
|
149
151
|
(o) => {
|
|
150
|
-
|
|
152
|
+
l === "TRIAL_V3" ? S() : o && (a({ id: o }), s("both", u));
|
|
151
153
|
},
|
|
152
|
-
[
|
|
154
|
+
[l, S, s, a]
|
|
153
155
|
), P = r(() => {
|
|
154
|
-
const e = { preferences:
|
|
156
|
+
const e = { preferences: ue(k, [
|
|
155
157
|
...O,
|
|
156
158
|
...x,
|
|
157
159
|
...z,
|
|
158
160
|
...U,
|
|
159
161
|
...B
|
|
160
|
-
]), grade:
|
|
161
|
-
|
|
162
|
+
]), grade: _ }, f = { stream: ne.MATH, studentId: d };
|
|
163
|
+
m(), H(e, f);
|
|
162
164
|
}, [
|
|
163
|
-
|
|
164
|
-
|
|
165
|
+
_,
|
|
166
|
+
d,
|
|
165
167
|
k,
|
|
166
168
|
O,
|
|
167
169
|
x,
|
|
168
170
|
z,
|
|
169
171
|
U,
|
|
170
172
|
B,
|
|
171
|
-
|
|
172
|
-
|
|
173
|
+
m,
|
|
174
|
+
H
|
|
173
175
|
]), j = r(() => {
|
|
174
|
-
!!
|
|
176
|
+
!!T.pages.find((e) => e.id === t.LEARNING_LEVEL) ? (a({ id: i }), s("both", u)) : P();
|
|
175
177
|
}, [
|
|
176
178
|
i,
|
|
177
|
-
|
|
179
|
+
T,
|
|
178
180
|
a,
|
|
179
181
|
s,
|
|
180
182
|
P
|
|
181
183
|
]), v = r(
|
|
182
184
|
(o, e) => {
|
|
183
185
|
if (!a) return;
|
|
184
|
-
const
|
|
186
|
+
const f = p === t.STUDENT_PROFILE, h = p === t.LEARNING_PLAN, n = { numberInNameError: !1 };
|
|
185
187
|
if ((e === t.CIRCLE_GAME || e === t.CIRCLE_PUZZLE || e === t.CIRCLE_SKILL) && (n.matchmakingId = J(), n.showCircleGameScreen = !0), o === "prev" && (a({
|
|
186
188
|
id: e,
|
|
187
|
-
...
|
|
188
|
-
...
|
|
189
|
+
...f && { studentProfile: void 0 },
|
|
190
|
+
...h && {
|
|
189
191
|
chapterId: void 0
|
|
190
192
|
},
|
|
191
193
|
...n
|
|
192
194
|
}), s("both", u)), o === "next") {
|
|
193
|
-
if (e === t.LEARNING_PLAN &&
|
|
194
|
-
|
|
195
|
+
if (e === t.LEARNING_PLAN && l !== "TRIAL_V3") {
|
|
196
|
+
S();
|
|
195
197
|
return;
|
|
196
198
|
}
|
|
197
|
-
switch (
|
|
199
|
+
switch (p) {
|
|
198
200
|
case t.STUDENT_INFORMATION:
|
|
199
201
|
case t.SCHOOL_GOALS:
|
|
200
202
|
W();
|
|
@@ -221,10 +223,10 @@ const Ae = () => {
|
|
|
221
223
|
},
|
|
222
224
|
[
|
|
223
225
|
a,
|
|
224
|
-
f,
|
|
225
|
-
s,
|
|
226
226
|
p,
|
|
227
|
-
|
|
227
|
+
s,
|
|
228
|
+
l,
|
|
229
|
+
S,
|
|
228
230
|
W,
|
|
229
231
|
Z,
|
|
230
232
|
K,
|
|
@@ -232,11 +234,11 @@ const Ae = () => {
|
|
|
232
234
|
P
|
|
233
235
|
]
|
|
234
236
|
), oe = r(() => {
|
|
235
|
-
!
|
|
236
|
-
}, [
|
|
237
|
+
!C && p === t.LEARNING_WORKSHEET && v("next", i);
|
|
238
|
+
}, [p, v, i, C]);
|
|
237
239
|
return ae(() => {
|
|
238
240
|
oe();
|
|
239
|
-
}, [
|
|
241
|
+
}, [C]), { handleNavigation: v };
|
|
240
242
|
};
|
|
241
243
|
export {
|
|
242
244
|
Ae 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 { 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 {\n usePostTeacherAvailability,\n type TTeacherAvailabilityResponse,\n} from '../api/teacher-availability';\nimport { usePatchTrialHome } from '../api/trial-home';\nimport { useTrialSessionContext } from '../context/use-trial-session-context';\nimport {\n getFormattedPreferences,\n getFormattedStudentPersonalizedPreference,\n getWeekdayAndStartTimeFromPreference,\n} from '../helper';\nimport { DEFAULT_BUTTON_STATE, TrialPageId } from '../trial-session-constants';\nimport type { ITrialSessionFormFields } from '../trial-session-types';\n\nconst useTrialSessionNavigation = () => {\n const {\n updateSlideConfig,\n slideConfig,\n demoType,\n formData,\n updateButtonState,\n teacherId,\n studentId,\n milestoneConfig,\n handleInfoMessage,\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 personalizedObjectives = [],\n personalizedPosition = [],\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 (currentPageId === TrialPageId.LEARNING_LEVEL) {\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 const onTeacherAvailabilityValidate = useCallback(\n (_: string | null, data?: TTeacherAvailabilityResponse) => {\n const hasNotAvailable = (data ?? []).some(item => !item.is_available);\n\n if (hasNotAvailable) {\n const notAvailable = (data ?? []).filter(item => !item.is_available);\n const reason = notAvailable.map(item => item.reason).join('\\n');\n\n handleInfoMessage?.({ message: reason, position: 'bottom' });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n\n return;\n }\n\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 patchTrialSession('trial-v3-patch', {\n action: 'UPDATE_DEMO',\n action_data: actionData,\n teacher_id: teacherId,\n student_id: studentId,\n });\n } else updateButtonState('both', DEFAULT_BUTTON_STATE);\n },\n [\n handleInfoMessage,\n patchTrialSession,\n preferences,\n studentId,\n studentTimezone,\n teacherId,\n updateButtonState,\n ],\n );\n\n const { post: postTeacherAvailability } = usePostTeacherAvailability({\n onComplete: onTeacherAvailabilityValidate,\n });\n\n // Function to call API and updates states\n const handleStudentInformation = useCallback(() => {\n const [firstName, lastName] = name?.trim()?.split(' ') || [];\n const payload = {\n first_name: firstName,\n last_name: lastName,\n grade,\n board: curriculum,\n demo_type: demoType,\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 demoType,\n teacherId,\n countryCode,\n updateSlideConfig,\n disableNavButtons,\n patchStudentInformation,\n studentId,\n ]);\n\n const handleClassPreferences = useCallback(() => {\n const selectedRegularSlots = getFormattedPreferences(preferences, studentTimezone);\n const sessionList = getWeekdayAndStartTimeFromPreference(selectedRegularSlots);\n\n if (selectedRegularSlots.length > 0) {\n const availabilityPayload = {\n teacher_id: teacherId,\n session_list: sessionList,\n };\n\n disableNavButtons();\n postTeacherAvailability(availabilityPayload);\n } else {\n updateSlideConfig({ id: nextPageId });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n }, [\n preferences,\n studentTimezone,\n teacherId,\n postTeacherAvailability,\n disableNavButtons,\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 handleWorksheetNavigation = useCallback(\n (id?: TrialPageId) => {\n if (demoType === 'TRIAL_V3') {\n handleMileStoneBulkPost();\n } else if (id) {\n updateSlideConfig({ id });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n },\n [demoType, handleMileStoneBulkPost, updateButtonState, updateSlideConfig],\n );\n\n const handleStudentPreferencesPatch = useCallback(() => {\n const personalizedPreferences = getFormattedStudentPersonalizedPreference(milestoneConfig, [\n ...personalizedLevel,\n ...personalizedFocus,\n ...personalizedBehaviors,\n ...personalizedObjectives,\n ...personalizedPosition,\n ]);\n\n const payload = { preferences: personalizedPreferences, grade };\n const meta = { stream: COURSE_STREAMS.MATH, studentId };\n\n disableNavButtons();\n postStudentPreferences(payload, meta);\n }, [\n grade,\n studentId,\n milestoneConfig,\n personalizedLevel,\n personalizedFocus,\n personalizedBehaviors,\n personalizedObjectives,\n personalizedPosition,\n disableNavButtons,\n postStudentPreferences,\n ]);\n\n const handleStudentIntroduction = useCallback(() => {\n const isLearningLevelExisted = Boolean(\n trialHomeData.pages.find(page => page.id === TrialPageId.LEARNING_LEVEL),\n );\n\n if (isLearningLevelExisted) {\n updateSlideConfig({ id: nextPageId });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n } else {\n handleStudentPreferencesPatch();\n }\n }, [\n nextPageId,\n trialHomeData,\n updateSlideConfig,\n updateButtonState,\n handleStudentPreferencesPatch,\n ]);\n\n // Navigation logic\n const handleNavigation = useCallback(\n (dir: string, id?: TrialPageId) => {\n if (!updateSlideConfig) return;\n\n const isStudentProfilePage = currentPageId === TrialPageId.STUDENT_PROFILE;\n const isLearningPlanSlide = currentPageId === TrialPageId.LEARNING_PLAN;\n const overrides: Partial<ITrialSessionFormFields> = { numberInNameError: false };\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 if (id === TrialPageId.LEARNING_PLAN && demoType !== 'TRIAL_V3') {\n handleMileStoneBulkPost();\n\n return;\n }\n\n switch (currentPageId) {\n case TrialPageId.STUDENT_INFORMATION:\n case TrialPageId.SCHOOL_GOALS:\n handleStudentInformation();\n break;\n case TrialPageId.LEARNING_WORKSHEET:\n handleWorksheetNavigation(id);\n break;\n case TrialPageId.CLASS_PREFERENCE:\n handleClassPreferences();\n break;\n case TrialPageId.STUDENT_INTRO:\n handleStudentIntroduction();\n break;\n case TrialPageId.LEARNING_LEVEL:\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 demoType,\n handleMileStoneBulkPost,\n handleStudentInformation,\n handleWorksheetNavigation,\n handleClassPreferences,\n handleStudentIntroduction,\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","demoType","formData","updateButtonState","teacherId","studentId","milestoneConfig","handleInfoMessage","onTrialInformationUpdate","trialHomeData","worksheetNavigationPanel","useTrialSessionContext","nextPage","currentPageId","demoInfo","stream","regionData","countryCode","nextPageId","name","grade","goals","curriculum","studentTimezone","preferences","personalizedLevel","personalizedFocus","personalizedBehaviors","personalizedObjectives","personalizedPosition","disableNavButtons","useCallback","onAcknowledge","errorMessage","overrides","TrialPageId","uuidv4","DEFAULT_BUTTON_STATE","patchTrialSession","usePatchTrialHome","patchStudentInformation","usePatchStudentInformation","postMilestoneBulk","useMilestoneBulkPost","postStudentPreferences","usePostStudentPreferences","onTeacherAvailabilityValidate","_","data","item","reason","selectedRegularSlots","getFormattedPreferences","postTeacherAvailability","usePostTeacherAvailability","handleStudentInformation","firstName","lastName","_a","payload","handleClassPreferences","sessionList","getWeekdayAndStartTimeFromPreference","availabilityPayload","handleMileStoneBulkPost","handleWorksheetNavigation","id","handleStudentPreferencesPatch","getFormattedStudentPersonalizedPreference","meta","COURSE_STREAMS","handleStudentIntroduction","page","handleNavigation","dir","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 { 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 {\n usePostTeacherAvailability,\n type TTeacherAvailabilityResponse,\n} from '../api/teacher-availability';\nimport { usePatchTrialHome } from '../api/trial-home';\nimport { useTrialSessionContext } from '../context/use-trial-session-context';\nimport {\n getFormattedPreferences,\n getFormattedStudentPersonalizedPreference,\n getWeekdayAndStartTimeFromPreference,\n} from '../helper';\nimport { DEFAULT_BUTTON_STATE, TrialPageId } from '../trial-session-constants';\nimport type { ITrialSessionFormFields } from '../trial-session-types';\n\nconst useTrialSessionNavigation = () => {\n const {\n updateSlideConfig,\n slideConfig,\n demoType,\n formData,\n updateButtonState,\n teacherId,\n studentId,\n milestoneConfig,\n handleInfoMessage,\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 personalizedObjectives = [],\n personalizedPosition = [],\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 (currentPageId === TrialPageId.LEARNING_LEVEL) {\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 const onTeacherAvailabilityValidate = useCallback(\n (_: string | null, data?: TTeacherAvailabilityResponse) => {\n const hasNotAvailable = (data ?? []).some(item => !item.is_available);\n\n if (hasNotAvailable) {\n const notAvailable = (data ?? []).filter(item => !item.is_available);\n const reason = notAvailable.map(item => item.reason).join('\\n');\n\n handleInfoMessage?.({ message: reason, position: 'bottom' });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n\n return;\n }\n\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 patchTrialSession('trial-v3-patch', {\n action: 'UPDATE_DEMO',\n action_data: actionData,\n teacher_id: teacherId,\n student_id: studentId,\n });\n } else updateButtonState('both', DEFAULT_BUTTON_STATE);\n },\n [\n handleInfoMessage,\n patchTrialSession,\n preferences,\n studentId,\n studentTimezone,\n teacherId,\n updateButtonState,\n ],\n );\n\n const { post: postTeacherAvailability } = usePostTeacherAvailability({\n onComplete: onTeacherAvailabilityValidate,\n });\n\n // Function to call API and updates states\n const handleStudentInformation = useCallback(() => {\n const [firstName, lastName] = name?.trim()?.split(' ') || [];\n const payload = {\n first_name: firstName,\n last_name: lastName,\n grade,\n board: curriculum,\n demo_type: demoType,\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 demoType,\n teacherId,\n countryCode,\n updateSlideConfig,\n disableNavButtons,\n patchStudentInformation,\n studentId,\n ]);\n\n const handleClassPreferences = useCallback(() => {\n const selectedRegularSlots = getFormattedPreferences(preferences, studentTimezone);\n const sessionList = getWeekdayAndStartTimeFromPreference(selectedRegularSlots);\n\n if (selectedRegularSlots.length > 0) {\n const availabilityPayload = {\n teacher_id: teacherId,\n session_list: sessionList,\n };\n\n disableNavButtons();\n postTeacherAvailability(availabilityPayload);\n } else {\n updateSlideConfig({ id: nextPageId });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n }, [\n preferences,\n studentTimezone,\n teacherId,\n postTeacherAvailability,\n disableNavButtons,\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 delete_existing_draft: demoType === 'TRIAL_V3_3',\n };\n\n disableNavButtons();\n postMilestoneBulk(payload, {\n studentId,\n });\n }, [\n curriculum,\n demoType,\n disableNavButtons,\n goals,\n grade,\n postMilestoneBulk,\n stream,\n studentId,\n teacherId,\n ]);\n\n const handleWorksheetNavigation = useCallback(\n (id?: TrialPageId) => {\n if (demoType === 'TRIAL_V3') {\n handleMileStoneBulkPost();\n } else if (id) {\n updateSlideConfig({ id });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n }\n },\n [demoType, handleMileStoneBulkPost, updateButtonState, updateSlideConfig],\n );\n\n const handleStudentPreferencesPatch = useCallback(() => {\n const personalizedPreferences = getFormattedStudentPersonalizedPreference(milestoneConfig, [\n ...personalizedLevel,\n ...personalizedFocus,\n ...personalizedBehaviors,\n ...personalizedObjectives,\n ...personalizedPosition,\n ]);\n\n const payload = { preferences: personalizedPreferences, grade };\n const meta = { stream: COURSE_STREAMS.MATH, studentId };\n\n disableNavButtons();\n postStudentPreferences(payload, meta);\n }, [\n grade,\n studentId,\n milestoneConfig,\n personalizedLevel,\n personalizedFocus,\n personalizedBehaviors,\n personalizedObjectives,\n personalizedPosition,\n disableNavButtons,\n postStudentPreferences,\n ]);\n\n const handleStudentIntroduction = useCallback(() => {\n const isLearningLevelExisted = Boolean(\n trialHomeData.pages.find(page => page.id === TrialPageId.LEARNING_LEVEL),\n );\n\n if (isLearningLevelExisted) {\n updateSlideConfig({ id: nextPageId });\n updateButtonState('both', DEFAULT_BUTTON_STATE);\n } else {\n handleStudentPreferencesPatch();\n }\n }, [\n nextPageId,\n trialHomeData,\n updateSlideConfig,\n updateButtonState,\n handleStudentPreferencesPatch,\n ]);\n\n // Navigation logic\n const handleNavigation = useCallback(\n (dir: string, id?: TrialPageId) => {\n if (!updateSlideConfig) return;\n\n const isStudentProfilePage = currentPageId === TrialPageId.STUDENT_PROFILE;\n const isLearningPlanSlide = currentPageId === TrialPageId.LEARNING_PLAN;\n const overrides: Partial<ITrialSessionFormFields> = { numberInNameError: false };\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 if (id === TrialPageId.LEARNING_PLAN && demoType !== 'TRIAL_V3') {\n handleMileStoneBulkPost();\n\n return;\n }\n\n switch (currentPageId) {\n case TrialPageId.STUDENT_INFORMATION:\n case TrialPageId.SCHOOL_GOALS:\n handleStudentInformation();\n break;\n case TrialPageId.LEARNING_WORKSHEET:\n handleWorksheetNavigation(id);\n break;\n case TrialPageId.CLASS_PREFERENCE:\n handleClassPreferences();\n break;\n case TrialPageId.STUDENT_INTRO:\n handleStudentIntroduction();\n break;\n case TrialPageId.LEARNING_LEVEL:\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 demoType,\n handleMileStoneBulkPost,\n handleStudentInformation,\n handleWorksheetNavigation,\n handleClassPreferences,\n handleStudentIntroduction,\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","demoType","formData","updateButtonState","teacherId","studentId","milestoneConfig","handleInfoMessage","onTrialInformationUpdate","trialHomeData","worksheetNavigationPanel","useTrialSessionContext","nextPage","currentPageId","demoInfo","stream","regionData","countryCode","nextPageId","name","grade","goals","curriculum","studentTimezone","preferences","personalizedLevel","personalizedFocus","personalizedBehaviors","personalizedObjectives","personalizedPosition","disableNavButtons","useCallback","onAcknowledge","errorMessage","overrides","TrialPageId","uuidv4","DEFAULT_BUTTON_STATE","patchTrialSession","usePatchTrialHome","patchStudentInformation","usePatchStudentInformation","postMilestoneBulk","useMilestoneBulkPost","postStudentPreferences","usePostStudentPreferences","onTeacherAvailabilityValidate","_","data","item","reason","selectedRegularSlots","getFormattedPreferences","postTeacherAvailability","usePostTeacherAvailability","handleStudentInformation","firstName","lastName","_a","payload","handleClassPreferences","sessionList","getWeekdayAndStartTimeFromPreference","availabilityPayload","handleMileStoneBulkPost","handleWorksheetNavigation","id","handleStudentPreferencesPatch","getFormattedStudentPersonalizedPreference","meta","COURSE_STREAMS","handleStudentIntroduction","page","handleNavigation","dir","isStudentProfilePage","isLearningPlanSlide","sessionWorksheetNavigation","useEffect"],"mappings":"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"}
|