@cuemath/leap 3.3.3 → 3.3.4-j1
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/assets/illustrations/illustrations.js +3 -1
- package/dist/assets/illustrations/illustrations.js.map +1 -1
- package/dist/assets/lottie/lottie.js +1 -0
- package/dist/assets/lottie/lottie.js.map +1 -1
- package/dist/constants/config.js +5 -0
- package/dist/constants/config.js.map +1 -0
- package/dist/features/auth/comps/pill-button/pill-button-styled.js +17 -17
- package/dist/features/auth/comps/pill-button/pill-button-styled.js.map +1 -1
- package/dist/features/auth/comps/pill-button/pill-button.js +35 -33
- package/dist/features/auth/comps/pill-button/pill-button.js.map +1 -1
- package/dist/features/auth/comps/user-list/user-item/user-item.js +32 -30
- package/dist/features/auth/comps/user-list/user-item/user-item.js.map +1 -1
- package/dist/features/auth/comps/user-list/user-list.js +20 -19
- package/dist/features/auth/comps/user-list/user-list.js.map +1 -1
- package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-constants.js +9 -9
- package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-constants.js.map +1 -1
- package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-styled.js +58 -29
- package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide-styled.js.map +1 -1
- package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide.js +78 -41
- package/dist/features/auth/pla-signup/onboarding-guide/onboarding-guide.js.map +1 -1
- package/dist/features/auth/signup/circular-step-wrapper/circular-step-wrapper-styled.js +37 -35
- package/dist/features/auth/signup/circular-step-wrapper/circular-step-wrapper-styled.js.map +1 -1
- package/dist/features/auth/signup/circular-step-wrapper/circular-step-wrapper.js +76 -71
- package/dist/features/auth/signup/circular-step-wrapper/circular-step-wrapper.js.map +1 -1
- package/dist/features/auth/signup/custom-input-field/custom-input-field.js +55 -50
- package/dist/features/auth/signup/custom-input-field/custom-input-field.js.map +1 -1
- package/dist/features/auth/signup/custom-input-field/input-wrapper/input-wrapper.js +47 -25
- package/dist/features/auth/signup/custom-input-field/input-wrapper/input-wrapper.js.map +1 -1
- package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js +6 -6
- package/dist/features/parent-dashboard/cuemath-app-features/cuemath-app-features-constants.js +25 -0
- package/dist/features/parent-dashboard/cuemath-app-features/cuemath-app-features-constants.js.map +1 -0
- package/dist/features/parent-dashboard/cuemath-app-features/cuemath-app-features-styled.js +15 -0
- package/dist/features/parent-dashboard/cuemath-app-features/cuemath-app-features-styled.js.map +1 -0
- package/dist/features/parent-dashboard/cuemath-app-features/cuemath-app-features.js +90 -0
- package/dist/features/parent-dashboard/cuemath-app-features/cuemath-app-features.js.map +1 -0
- package/dist/features/parent-dashboard/math-practice/math-practice-constants.js +19 -0
- package/dist/features/parent-dashboard/math-practice/math-practice-constants.js.map +1 -0
- package/dist/features/parent-dashboard/math-practice/math-practice-styled.js +32 -0
- package/dist/features/parent-dashboard/math-practice/math-practice-styled.js.map +1 -0
- package/dist/features/parent-dashboard/math-practice/math-practice.js +67 -0
- package/dist/features/parent-dashboard/math-practice/math-practice.js.map +1 -0
- package/dist/features/parent-dashboard/parent-dashboard-faqs/parent-dashboard-faqs-constants.js +42 -0
- package/dist/features/parent-dashboard/parent-dashboard-faqs/parent-dashboard-faqs-constants.js.map +1 -0
- package/dist/features/parent-dashboard/parent-dashboard-faqs/parent-dashboard-faqs.js +20 -0
- package/dist/features/parent-dashboard/parent-dashboard-faqs/parent-dashboard-faqs.js.map +1 -0
- package/dist/features/student-details/class-details/class-details-utils.js +6 -6
- package/dist/features/trial-session/comps/learning-plan/index.js +88 -62
- package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-constants.js +25 -0
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-constants.js.map +1 -0
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-styled.js +43 -0
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-styled.js.map +1 -0
- package/dist/features/trial-session/comps/pla/next-steps/next-steps.js +49 -0
- package/dist/features/trial-session/comps/pla/next-steps/next-steps.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js +11 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js +19 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status-styled.js +17 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status-styled.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status.js +243 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-summary/session-summary-constants.js +52 -0
- package/dist/features/trial-session/comps/pla/session-summary/session-summary-constants.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-summary/session-summary.js +52 -0
- package/dist/features/trial-session/comps/pla/session-summary/session-summary.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card-styled.js +17 -0
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card-styled.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js +56 -0
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js.map +1 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-constants.js +5 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-constants.js.map +1 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-styled.js +17 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-styled.js.map +1 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-types.js +5 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-types.js.map +1 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions.js +96 -0
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions.js.map +1 -0
- package/dist/features/trial-session/comps/session-report/report-information/report-card.js +31 -16
- package/dist/features/trial-session/comps/session-report/report-information/report-card.js.map +1 -1
- package/dist/features/trial-session/comps/session-report/report-information/report-information-styled.js +21 -13
- package/dist/features/trial-session/comps/session-report/report-information/report-information-styled.js.map +1 -1
- package/dist/features/trial-session/comps/session-report/report-information/report-information.js +166 -94
- package/dist/features/trial-session/comps/session-report/report-information/report-information.js.map +1 -1
- package/dist/features/trial-session/comps/student-profile/student-profile-highlights/student-profile-highlights.js +46 -31
- package/dist/features/trial-session/comps/student-profile/student-profile-highlights/student-profile-highlights.js.map +1 -1
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-helpers.js +12 -0
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-helpers.js.map +1 -0
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-styled.js +121 -42
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile-styled.js.map +1 -1
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js +174 -56
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +1 -1
- package/dist/features/trial-session/trial-session-types.js.map +1 -1
- package/dist/features/ui/modals/modal.js +30 -28
- package/dist/features/ui/modals/modal.js.map +1 -1
- package/dist/index.d.ts +85 -1
- package/dist/index.js +383 -365
- package/dist/index.js.map +1 -1
- package/dist/node_modules/date-fns/_lib/getRoundingMethod.js +10 -0
- package/dist/node_modules/date-fns/_lib/getRoundingMethod.js.map +1 -0
- package/dist/node_modules/date-fns/differenceInMilliseconds.js +9 -0
- package/dist/node_modules/date-fns/differenceInMilliseconds.js.map +1 -0
- package/dist/node_modules/date-fns/differenceInSeconds.js +11 -0
- package/dist/node_modules/date-fns/differenceInSeconds.js.map +1 -0
- package/dist/node_modules/date-fns/fromUnixTime.js +9 -0
- package/dist/node_modules/date-fns/fromUnixTime.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/native.js +7 -0
- package/dist/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/rng.js +3 -2
- package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js +6 -10
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/v4.js +12 -9
- package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
- package/dist/static/{book-checked-green.c275dbd9.svg → book-checked-green.0436b91e.svg} +1 -1
- package/dist/static/community-bulb-yellow-2.f89c30f9.svg +1 -0
- package/dist/static/learning-puzzle-bot.6fe93cf6.svg +1 -0
- package/dist/static/username-responsive.787b5515.json +1 -0
- package/package.json +3 -2
- package/dist/node_modules/uuid/dist/esm-browser/regex.js +0 -5
- package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/validate.js +0 -8
- package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/features/trial-session/comps/learning-plan/index.tsx"],"sourcesContent":["import type { IChapterDataProps } from '../../../chapters/chapter/chapter-types';\n\nimport throttle from 'lodash.throttle';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport ChapterDetails from '../../../chapters-v2/chapter-details/chapter-details';\nimport MilestoneList from '../../../milestone/milestone-list-container/milestone-list-container';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport * as Styled from './learning-plan-styled';\nimport { useLearningPlanScrollSync } from './use-learning-plan-scroll-sync';\n\nconst LearningPlan: React.FC = () => {\n const { trialHomeData, studentId, formData, isTeacher, updateSlideConfig } =\n useTrialSessionContext();\n const {\n demo_info: { student_classroom_id: studentClassroomId, stream },\n } = trialHomeData || {};\n const { name = '', chapterId } = formData || {};\n\n const containerRef = useRef<HTMLDivElement>(null);\n const scrollPointsRef = useRef<number[]>([]);\n const isSendingScrollPointsRef = useRef(false);\n\n const {\n publishScrollEvents,\n closeChannel,\n scrollPoints: receivedScrollPoints,\n } = useLearningPlanScrollSync(studentClassroomId);\n\n const fetchChapter = useCallback(() => {\n if (chapterId && studentId) {\n const scrollElement = containerRef.current;\n\n scrollElement?.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n }, [studentId, chapterId]);\n\n const handleOnChapterClick = useCallback(\n (chapter: IChapterDataProps) => {\n updateSlideConfig({\n chapterId: chapter.id,\n });\n },\n [updateSlideConfig],\n );\n\n const handleOnBackIconClick = useCallback(() => {\n updateSlideConfig({\n chapterId: undefined,\n });\n }, [updateSlideConfig]);\n\n const sendScrollPoints = useCallback(() => {\n if (scrollPointsRef.current.length === 0 || isSendingScrollPointsRef.current) return;\n\n isSendingScrollPointsRef.current = true;\n\n if (publishScrollEvents) {\n publishScrollEvents({\n eventName: 'TRIAL_SESSION_GOAL_PLAN_SCROLL',\n eventPayload: {\n scrollPoints: scrollPointsRef.current,\n },\n });\n }\n\n scrollPointsRef.current = [];\n isSendingScrollPointsRef.current = false;\n }, [publishScrollEvents]);\n\n const throttleSend = useMemo(() => throttle(sendScrollPoints, 500), [sendScrollPoints]);\n\n const handleScroll = useCallback(() => {\n const scrollPoint = containerRef.current?.scrollTop || 0;\n\n scrollPointsRef.current.push(scrollPoint);\n\n throttleSend();\n }, [throttleSend]);\n\n useEffect(() => {\n fetchChapter();\n }, [fetchChapter]);\n\n useEffect(() => {\n if (containerRef.current) {\n if (isTeacher) {\n const scrollElement = containerRef.current;\n\n scrollElement.addEventListener('scroll', handleScroll);\n\n return () => {\n if (scrollElement) {\n scrollElement.removeEventListener('scroll', handleScroll);\n }\n };\n }\n }\n }, [isTeacher, handleScroll]);\n\n useEffect(() => {\n const scrollElement = containerRef.current;\n\n if (\n receivedScrollPoints &&\n Array.isArray(receivedScrollPoints) &&\n !isTeacher &&\n scrollElement\n ) {\n const averageScroll = Math.floor(\n receivedScrollPoints.reduce((a, b) => a + b, 0) / receivedScrollPoints.length,\n );\n\n scrollElement.scrollTo({\n top: averageScroll,\n behavior: 'smooth',\n });\n }\n }, [receivedScrollPoints, isTeacher]);\n\n useEffect(() => {\n return () => {\n closeChannel();\n };\n }, [closeChannel]);\n\n return (\n <Styled.Container ref={containerRef} $isScrollable={isTeacher}>\n <Styled.Wrapper\n $clickable={isTeacher}\n $gutterX={2}\n $isScrollable={isTeacher}\n id=\"milestone-list-element-container\"\n >\n {chapterId ? (\n <>\n <Styled.ChapterWrapper>\n <ChapterDetails\n userChapterId={chapterId}\n studentId={studentId}\n userType={isTeacher ? 'TEACHER' : 'STUDENT'}\n onExit={handleOnBackIconClick}\n />\n </Styled.ChapterWrapper>\n </>\n ) : (\n <MilestoneList\n userType={isTeacher ? 'TEACHER' : 'STUDENT'}\n studentName={name}\n studentId={studentId}\n studentClassroomId={studentClassroomId}\n milestoneType=\"DRAFT\"\n onChapterClick={handleOnChapterClick}\n courseStream={stream}\n isTrialSession\n />\n )}\n </Styled.Wrapper>\n </Styled.Container>\n );\n};\n\nexport default LearningPlan;\n"],"names":["LearningPlan","trialHomeData","studentId","formData","isTeacher","updateSlideConfig","useTrialSessionContext","studentClassroomId","stream","name","chapterId","containerRef","useRef","scrollPointsRef","isSendingScrollPointsRef","publishScrollEvents","closeChannel","receivedScrollPoints","useLearningPlanScrollSync","fetchChapter","useCallback","scrollElement","handleOnChapterClick","chapter","handleOnBackIconClick","sendScrollPoints","throttleSend","useMemo","throttle","handleScroll","scrollPoint","_a","useEffect","averageScroll","a","b","Styled.Container","jsx","Styled.Wrapper","Fragment","Styled.ChapterWrapper","ChapterDetails","MilestoneList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/features/trial-session/comps/learning-plan/index.tsx"],"sourcesContent":["import type { IChapterDataProps } from '../../../chapters/chapter/chapter-types';\n\nimport throttle from 'lodash.throttle';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { useGetChapterDetails } from '../../../chapters-v2/api/chapter';\nimport ChapterDetails from '../../../chapters-v2/chapter-details/chapter-details';\nimport MilestoneList from '../../../milestone/milestone-list-container/milestone-list-container';\nimport Button from '../../../ui/buttons/button/button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport AppLoader from '../../../ui/loader/app-loader/app-loader';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport * as Styled from './learning-plan-styled';\nimport { useLearningPlanScrollSync } from './use-learning-plan-scroll-sync';\n\nconst LearningPlan: React.FC = () => {\n const { trialHomeData, studentId, formData, isTeacher, updateSlideConfig } =\n useTrialSessionContext();\n const {\n demo_info: { student_classroom_id: studentClassroomId, stream },\n } = trialHomeData || {};\n const { name = '', chapterId } = formData || {};\n\n const containerRef = useRef<HTMLDivElement>(null);\n const scrollPointsRef = useRef<number[]>([]);\n const isSendingScrollPointsRef = useRef(false);\n\n const {\n publishScrollEvents,\n closeChannel,\n scrollPoints: receivedScrollPoints,\n } = useLearningPlanScrollSync(studentClassroomId);\n\n const {\n get: getChapterData,\n data: chapterData,\n isProcessing,\n isProcessingFailed,\n error,\n } = useGetChapterDetails();\n\n const fetchChapter = useCallback(() => {\n if (chapterId && studentId) {\n getChapterData(chapterId, undefined, {\n studentId,\n }).then(() => {\n const scrollElement = containerRef.current;\n\n scrollElement?.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n });\n }\n }, [getChapterData, studentId, chapterId]);\n\n const handleOnChapterClick = useCallback(\n (chapter: IChapterDataProps) => {\n updateSlideConfig({\n chapterId: chapter.id,\n });\n },\n [updateSlideConfig],\n );\n\n const handleOnBackIconClick = useCallback(() => {\n updateSlideConfig({\n chapterId: undefined,\n });\n }, [updateSlideConfig]);\n\n const sendScrollPoints = useCallback(() => {\n if (scrollPointsRef.current.length === 0 || isSendingScrollPointsRef.current) return;\n\n isSendingScrollPointsRef.current = true;\n\n if (publishScrollEvents) {\n publishScrollEvents({\n eventName: 'TRIAL_SESSION_GOAL_PLAN_SCROLL',\n eventPayload: {\n scrollPoints: scrollPointsRef.current,\n },\n });\n }\n\n scrollPointsRef.current = [];\n isSendingScrollPointsRef.current = false;\n }, [publishScrollEvents]);\n\n const throttleSend = useMemo(() => throttle(sendScrollPoints, 500), [sendScrollPoints]);\n\n const handleScroll = useCallback(() => {\n const scrollPoint = containerRef.current?.scrollTop || 0;\n\n scrollPointsRef.current.push(scrollPoint);\n\n throttleSend();\n }, [throttleSend]);\n\n useEffect(() => {\n fetchChapter();\n }, [fetchChapter]);\n\n useEffect(() => {\n if (containerRef.current) {\n if ((chapterData && isTeacher) || isTeacher) {\n const scrollElement = containerRef.current;\n\n scrollElement.addEventListener('scroll', handleScroll);\n\n return () => {\n if (scrollElement) {\n scrollElement.removeEventListener('scroll', handleScroll);\n }\n };\n }\n }\n }, [isTeacher, chapterData, handleScroll]);\n\n useEffect(() => {\n const scrollElement = containerRef.current;\n\n if (\n receivedScrollPoints &&\n Array.isArray(receivedScrollPoints) &&\n !isTeacher &&\n scrollElement\n ) {\n const averageScroll = Math.floor(\n receivedScrollPoints.reduce((a, b) => a + b, 0) / receivedScrollPoints.length,\n );\n\n scrollElement.scrollTo({\n top: averageScroll,\n behavior: 'smooth',\n });\n }\n }, [receivedScrollPoints, isTeacher]);\n\n useEffect(() => {\n return () => {\n closeChannel();\n };\n }, [closeChannel]);\n\n if (isProcessing) {\n return <AppLoader height=\"100%\" />;\n }\n\n if (isProcessingFailed) {\n return (\n <FlexView $height=\"100%\" $flexGapX={1.5} $alignItems=\"center\" $justifyContent=\"center\">\n <Text $renderAs=\"h6\">{error?.message || 'Oops! Something went wrong.'}</Text>\n <Button\n widthX={14}\n size=\"small\"\n shape=\"square\"\n renderAs=\"primary\"\n label=\"Try again\"\n onClick={fetchChapter}\n />\n </FlexView>\n );\n }\n\n return (\n <Styled.Container ref={containerRef} $isScrollable={isTeacher}>\n <Styled.Wrapper\n $clickable={isTeacher}\n $gutterX={2}\n $isScrollable={isTeacher}\n id=\"milestone-list-element-container\"\n >\n {chapterId && chapterData ? (\n <>\n <Styled.ChapterWrapper>\n <ChapterDetails\n userChapterId={chapterData.id}\n studentId={studentId}\n userType={isTeacher ? 'TEACHER' : 'STUDENT'}\n onExit={handleOnBackIconClick}\n />\n </Styled.ChapterWrapper>\n </>\n ) : (\n <MilestoneList\n userType={isTeacher ? 'TEACHER' : 'STUDENT'}\n studentName={name}\n studentId={studentId}\n studentClassroomId={studentClassroomId}\n milestoneType=\"DRAFT\"\n onChapterClick={handleOnChapterClick}\n courseStream={stream}\n isTrialSession\n />\n )}\n </Styled.Wrapper>\n </Styled.Container>\n );\n};\n\nexport default LearningPlan;\n"],"names":["LearningPlan","trialHomeData","studentId","formData","isTeacher","updateSlideConfig","useTrialSessionContext","studentClassroomId","stream","name","chapterId","containerRef","useRef","scrollPointsRef","isSendingScrollPointsRef","publishScrollEvents","closeChannel","receivedScrollPoints","useLearningPlanScrollSync","getChapterData","chapterData","isProcessing","isProcessingFailed","error","useGetChapterDetails","fetchChapter","useCallback","scrollElement","handleOnChapterClick","chapter","handleOnBackIconClick","sendScrollPoints","throttleSend","useMemo","throttle","handleScroll","scrollPoint","_a","useEffect","averageScroll","a","b","jsx","AppLoader","jsxs","FlexView","Text","Button","Styled.Container","Styled.Wrapper","Fragment","Styled.ChapterWrapper","ChapterDetails","MilestoneList"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ILLUSTRATIONS as e } from "../../../../../assets/illustrations/illustrations.js";
|
|
2
|
+
const t = [
|
|
3
|
+
{
|
|
4
|
+
title: "Personalized Sessions",
|
|
5
|
+
description: "Your tutor will align sessions to your child's school curriculum and focus areas.",
|
|
6
|
+
image: e.KNOWLEDGE_BLUE,
|
|
7
|
+
textColor: "BLUE_4"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
title: "Regular Practice",
|
|
11
|
+
description: "Your child will get homework assignments and daily practice through our app.",
|
|
12
|
+
image: e.BOOK_CHECKED_ORANGE,
|
|
13
|
+
textColor: "ORANGE_4"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
title: "Parent-tutor Conference",
|
|
17
|
+
description: "We'll schedule a conference after 8 sessions to review progress & adjust approach.",
|
|
18
|
+
image: e.HANDSHAKE,
|
|
19
|
+
textColor: "YELLOW_4"
|
|
20
|
+
}
|
|
21
|
+
];
|
|
22
|
+
export {
|
|
23
|
+
t as nextStepsData
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=next-steps-constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-steps-constants.js","sources":["../../../../../../src/features/trial-session/comps/pla/next-steps/next-steps-constants.ts"],"sourcesContent":["import type { INextStep } from './next-steps-types';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\n\nexport const nextStepsData: INextStep[] = [\n {\n title: 'Personalized Sessions',\n description: `Your tutor will align sessions to your child's school curriculum and focus areas.`,\n image: ILLUSTRATIONS.KNOWLEDGE_BLUE,\n textColor: 'BLUE_4',\n },\n {\n title: 'Regular Practice',\n description: `Your child will get homework assignments and daily practice through our app.`,\n image: ILLUSTRATIONS.BOOK_CHECKED_ORANGE,\n textColor: 'ORANGE_4',\n },\n {\n title: 'Parent-tutor Conference',\n description: `We'll schedule a conference after 8 sessions to review progress & adjust approach.`,\n image: ILLUSTRATIONS.HANDSHAKE,\n textColor: 'YELLOW_4',\n },\n];\n"],"names":["nextStepsData","ILLUSTRATIONS"],"mappings":";AAIO,MAAMA,IAA6B;AAAA,EACxC;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAOC,EAAc;AAAA,IACrB,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAOA,EAAc;AAAA,IACrB,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAOA,EAAc;AAAA,IACrB,WAAW;AAAA,EACb;AACF;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import i from "styled-components";
|
|
2
|
+
import d from "../../../../ui/layout/flex-view.js";
|
|
3
|
+
const t = i(d)(
|
|
4
|
+
({ theme: o }) => `
|
|
5
|
+
border-bottom: 1px solid ${o.colors.BLACK_5};
|
|
6
|
+
|
|
7
|
+
${o.mediaQueries.minWidthTablet} {
|
|
8
|
+
border-bottom: none;
|
|
9
|
+
}
|
|
10
|
+
`
|
|
11
|
+
), n = i(d)(
|
|
12
|
+
({ theme: o }) => `
|
|
13
|
+
&:first-child {
|
|
14
|
+
${t} {
|
|
15
|
+
padding-top: 0;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
&:last-child {
|
|
19
|
+
${t} {
|
|
20
|
+
padding-bottom: 0;
|
|
21
|
+
border-bottom: none;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
${o.mediaQueries.minWidthTablet} {
|
|
26
|
+
border-right: 1px solid ${o.colors.BLACK_5};
|
|
27
|
+
|
|
28
|
+
&:last-child {
|
|
29
|
+
border-right: none;
|
|
30
|
+
padding-right: 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&:first-child {
|
|
34
|
+
padding-left: 0;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
`
|
|
38
|
+
);
|
|
39
|
+
export {
|
|
40
|
+
n as ListItem,
|
|
41
|
+
t as TextContent
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=next-steps-styled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-steps-styled.js","sources":["../../../../../../src/features/trial-session/comps/pla/next-steps/next-steps-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../../ui/layout/flex-view';\n\nexport const TextContent = styled(FlexView)(\n ({ theme }) => `\n border-bottom: 1px solid ${theme.colors.BLACK_5};\n\n ${theme.mediaQueries.minWidthTablet} {\n border-bottom: none;\n }\n `,\n);\n\nexport const ListItem = styled(FlexView)(\n ({ theme }) => `\n &:first-child {\n ${TextContent} {\n padding-top: 0;\n }\n }\n &:last-child {\n ${TextContent} {\n padding-bottom: 0;\n border-bottom: none;\n }\n }\n\n ${theme.mediaQueries.minWidthTablet} {\n border-right: 1px solid ${theme.colors.BLACK_5};\n\n &:last-child {\n border-right: none;\n padding-right: 0;\n }\n\n &:first-child {\n padding-left: 0;\n }\n }\n `,\n);\n"],"names":["TextContent","styled","FlexView","theme","ListItem"],"mappings":";;AAIa,MAAAA,IAAcC,EAAOC,CAAQ;AAAA,EACxC,CAAC,EAAE,OAAAC,EAAA,MAAY;AAAA,+BACcA,EAAM,OAAO,OAAO;AAAA;AAAA,MAE7CA,EAAM,aAAa,cAAc;AAAA;AAAA;AAAA;AAIvC,GAEaC,IAAWH,EAAOC,CAAQ;AAAA,EACrC,CAAC,EAAE,OAAAC,EAAA,MAAY;AAAA;AAAA,QAETH,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA,QAKXA,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMbG,EAAM,aAAa,cAAc;AAAA,gCACPA,EAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYpD;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsxs as t, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { memo as a } from "react";
|
|
3
|
+
import { useTheme as h } from "styled-components";
|
|
4
|
+
import p from "../../../../ui/image/image.js";
|
|
5
|
+
import m from "../../../../ui/layout/flex-view.js";
|
|
6
|
+
import o from "../../../../ui/separator/separator.js";
|
|
7
|
+
import n from "../../../../ui/text/text.js";
|
|
8
|
+
import { EDeviceType as d } from "../../../../ui/theme/constants.js";
|
|
9
|
+
import { nextStepsData as f } from "./next-steps-constants.js";
|
|
10
|
+
import { ListItem as $, TextContent as x } from "./next-steps-styled.js";
|
|
11
|
+
const b = () => {
|
|
12
|
+
const e = h().device <= d.MOBILE;
|
|
13
|
+
return /* @__PURE__ */ t(m, { children: [
|
|
14
|
+
/* @__PURE__ */ r(n, { $renderAs: "ah4-bold", $renderOnMobileAs: "ab1-bold", $color: "WHITE", children: "What happens next?" }),
|
|
15
|
+
/* @__PURE__ */ r(o, { height: e ? 16 : 20 }),
|
|
16
|
+
/* @__PURE__ */ r(m, { $justifyContent: "center", $flexDirection: e ? "column" : "row", children: f.map(({ title: i, description: l, image: c, textColor: s }) => /* @__PURE__ */ t(
|
|
17
|
+
$,
|
|
18
|
+
{
|
|
19
|
+
$flexDirection: e ? "row" : "column",
|
|
20
|
+
$flex: 1,
|
|
21
|
+
$gutterX: e ? 0 : 1,
|
|
22
|
+
$flexColumnGapX: e ? 0.75 : 0,
|
|
23
|
+
$alignItems: e ? "center" : "normal",
|
|
24
|
+
children: [
|
|
25
|
+
/* @__PURE__ */ r(
|
|
26
|
+
p,
|
|
27
|
+
{
|
|
28
|
+
src: c,
|
|
29
|
+
width: e ? 72 : 80,
|
|
30
|
+
height: e ? 72 : 80,
|
|
31
|
+
withLoader: !1
|
|
32
|
+
}
|
|
33
|
+
),
|
|
34
|
+
!e && /* @__PURE__ */ r(o, { heightX: 0.75 }),
|
|
35
|
+
/* @__PURE__ */ t(x, { $flex: 1, $gapX: e ? 1 : 0, $justifyContent: "space-between", children: [
|
|
36
|
+
/* @__PURE__ */ r(n, { $renderAs: "ac3-black", $renderOnMobileAs: "ac4-black", $color: s, children: i }),
|
|
37
|
+
/* @__PURE__ */ r(o, { height: e ? 10 : 12 }),
|
|
38
|
+
/* @__PURE__ */ r(n, { $renderAs: "ub1", $renderOnMobileAs: "ub2", $color: "WHITE", children: l })
|
|
39
|
+
] })
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
i
|
|
43
|
+
)) })
|
|
44
|
+
] });
|
|
45
|
+
}, O = a(b);
|
|
46
|
+
export {
|
|
47
|
+
O as default
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=next-steps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-steps.js","sources":["../../../../../../src/features/trial-session/comps/pla/next-steps/next-steps.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport Image from '../../../../ui/image/image';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport { EDeviceType } from '../../../../ui/theme/constants';\nimport { nextStepsData } from './next-steps-constants';\nimport * as Styled from './next-steps-styled';\n\nconst NextSteps: React.FC = () => {\n const theme = useTheme();\n const isMobile = theme.device <= EDeviceType.MOBILE;\n\n return (\n <FlexView>\n <Text $renderAs=\"ah4-bold\" $renderOnMobileAs=\"ab1-bold\" $color=\"WHITE\">\n What happens next?\n </Text>\n <Separator height={isMobile ? 16 : 20} />\n <FlexView $justifyContent=\"center\" $flexDirection={isMobile ? 'column' : 'row'}>\n {nextStepsData.map(({ title, description, image, textColor }) => (\n <Styled.ListItem\n key={title}\n $flexDirection={isMobile ? 'row' : 'column'}\n $flex={1}\n $gutterX={isMobile ? 0 : 1}\n $flexColumnGapX={isMobile ? 0.75 : 0}\n $alignItems={isMobile ? 'center' : 'normal'}\n >\n <Image\n src={image}\n width={isMobile ? 72 : 80}\n height={isMobile ? 72 : 80}\n withLoader={false}\n />\n {!isMobile && <Separator heightX={0.75} />}\n <Styled.TextContent $flex={1} $gapX={isMobile ? 1 : 0} $justifyContent=\"space-between\">\n <Text $renderAs=\"ac3-black\" $renderOnMobileAs=\"ac4-black\" $color={textColor}>\n {title}\n </Text>\n <Separator height={isMobile ? 10 : 12} />\n <Text $renderAs=\"ub1\" $renderOnMobileAs=\"ub2\" $color=\"WHITE\">\n {description}\n </Text>\n </Styled.TextContent>\n </Styled.ListItem>\n ))}\n </FlexView>\n </FlexView>\n );\n};\n\nexport default memo(NextSteps);\n"],"names":["NextSteps","isMobile","useTheme","EDeviceType","FlexView","jsx","Text","Separator","nextStepsData","title","description","image","textColor","jsxs","Styled.ListItem","Image","Styled.TextContent","nextSteps","memo"],"mappings":";;;;;;;;;;AAWA,MAAMA,IAAsB,MAAM;AAE1B,QAAAC,IADQC,IACS,UAAUC,EAAY;AAE7C,2BACGC,GACC,EAAA,UAAA;AAAA,IAAA,gBAAAC,EAACC,KAAK,WAAU,YAAW,mBAAkB,YAAW,QAAO,SAAQ,UAEvE,qBAAA,CAAA;AAAA,IACC,gBAAAD,EAAAE,GAAA,EAAU,QAAQN,IAAW,KAAK,IAAI;AAAA,sBACtCG,GAAS,EAAA,iBAAgB,UAAS,gBAAgBH,IAAW,WAAW,OACtE,UAAcO,EAAA,IAAI,CAAC,EAAE,OAAAC,GAAO,aAAAC,GAAa,OAAAC,GAAO,WAAAC,QAC/C,gBAAAC;AAAA,MAACC;AAAAA,MAAA;AAAA,QAEC,gBAAgBb,IAAW,QAAQ;AAAA,QACnC,OAAO;AAAA,QACP,UAAUA,IAAW,IAAI;AAAA,QACzB,iBAAiBA,IAAW,OAAO;AAAA,QACnC,aAAaA,IAAW,WAAW;AAAA,QAEnC,UAAA;AAAA,UAAA,gBAAAI;AAAA,YAACU;AAAA,YAAA;AAAA,cACC,KAAKJ;AAAA,cACL,OAAOV,IAAW,KAAK;AAAA,cACvB,QAAQA,IAAW,KAAK;AAAA,cACxB,YAAY;AAAA,YAAA;AAAA,UACd;AAAA,UACC,CAACA,KAAa,gBAAAI,EAAAE,GAAA,EAAU,SAAS,KAAM,CAAA;AAAA,UACxC,gBAAAM,EAACG,GAAA,EAAmB,OAAO,GAAG,OAAOf,IAAW,IAAI,GAAG,iBAAgB,iBACrE,UAAA;AAAA,YAAA,gBAAAI,EAACC,KAAK,WAAU,aAAY,mBAAkB,aAAY,QAAQM,GAC/D,UACHH,EAAA,CAAA;AAAA,YACC,gBAAAJ,EAAAE,GAAA,EAAU,QAAQN,IAAW,KAAK,IAAI;AAAA,YACvC,gBAAAI,EAACC,KAAK,WAAU,OAAM,mBAAkB,OAAM,QAAO,SAClD,UACHI,EAAA,CAAA;AAAA,UAAA,GACF;AAAA,QAAA;AAAA,MAAA;AAAA,MAtBKD;AAAA,IAwBR,CAAA,GACH;AAAA,EACF,EAAA,CAAA;AAEJ,GAEeQ,IAAAC,EAAKlB,CAAS;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-status-constants.js","sources":["../../../../../../src/features/trial-session/comps/pla/session-status/session-status-constants.ts"],"sourcesContent":["export const COUNTDOWN_THRESHOLD = 48 * 3600; // 48 hours in seconds\nexport const COUNTDOWN_INTERVAL = 1000; // 1 second\n\nexport const renderSettings = {\n autoplay: true,\n loop: true,\n renderer: 'svg',\n};\n"],"names":["COUNTDOWN_THRESHOLD","COUNTDOWN_INTERVAL","renderSettings"],"mappings":"AAAO,MAAMA,IAAsB,QACtBC,IAAqB,KAErBC,IAAiB;AAAA,EAC5B,UAAU;AAAA,EACV,MAAM;AAAA,EACN,UAAU;AACZ;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { fromUnixTime as s } from "../../../../../node_modules/date-fns/fromUnixTime.js";
|
|
2
|
+
import { formatDate as n } from "../../../../../node_modules/date-fns/format.js";
|
|
3
|
+
function p(t, e) {
|
|
4
|
+
if (!t) return "";
|
|
5
|
+
const o = s(t), r = n(o, "EEE").toUpperCase(), i = n(o, "MMM d"), m = n(o, "h a");
|
|
6
|
+
return `${r} . ${i} . ${m}`;
|
|
7
|
+
}
|
|
8
|
+
const a = (t) => t.toString().padStart(2, "0"), $ = (t) => {
|
|
9
|
+
const e = Math.floor(t / 3600), o = Math.floor(t % 3600 / 60), r = t % 60;
|
|
10
|
+
return `Session starts in ${a(e)}h : ${a(o)}m : ${a(
|
|
11
|
+
r
|
|
12
|
+
)}s`;
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
p as formatSessionDateTime,
|
|
16
|
+
$ as formatTimeRemaining,
|
|
17
|
+
a as padTime
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=session-status-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-status-helpers.js","sources":["../../../../../../src/features/trial-session/comps/pla/session-status/session-status-helpers.ts"],"sourcesContent":["import { fromUnixTime, format } from 'date-fns';\n\n/**\n * Formats the session start and end times into a readable string.\n *\n * @param startTime - The start time of the session in Unix timestamp.\n * @param endTime - The end time of the session in Unix timestamp.\n * @returns A formatted string representing the session time or an empty string if inputs are invalid.\n */\nexport function formatSessionDateTime(startTime: number | null, endTime?: number | null): string {\n if (!startTime) return '';\n\n const start = fromUnixTime(startTime);\n\n const day = format(start, 'EEE').toUpperCase();\n const date = format(start, 'MMM d');\n const formattedStartTime = format(start, 'h a');\n const end = endTime ? fromUnixTime(endTime) : null;\n const formattedEndTime = end ? format(end, 'h a') : null;\n\n return `${day} . ${date} . ${formattedStartTime}${\n formattedEndTime ? ` - ${formattedEndTime}` : ''\n }`;\n}\n\nexport const padTime = (time: number): string => time.toString().padStart(2, '0');\n\nexport const formatTimeRemaining = (seconds: number): string => {\n const hours = Math.floor(seconds / 3600);\n const minutes = Math.floor((seconds % 3600) / 60);\n const remainingSeconds = seconds % 60;\n\n return `Session starts in ${padTime(hours)}h : ${padTime(minutes)}m : ${padTime(\n remainingSeconds,\n )}s`;\n};\n"],"names":["formatSessionDateTime","startTime","endTime","start","fromUnixTime","day","format","date","formattedStartTime","padTime","time","formatTimeRemaining","seconds","hours","minutes","remainingSeconds"],"mappings":";;AASgB,SAAAA,EAAsBC,GAA0BC,GAAiC;AAC3F,MAAA,CAACD,EAAkB,QAAA;AAEjB,QAAAE,IAAQC,EAAaH,CAAS,GAE9BI,IAAMC,EAAOH,GAAO,KAAK,EAAE,YAAY,GACvCI,IAAOD,EAAOH,GAAO,OAAO,GAC5BK,IAAqBF,EAAOH,GAAO,KAAK;AAIvC,SAAA,GAAGE,CAAG,MAAME,CAAI,MAAMC,CAAkB;AAGjD;AAEa,MAAAC,IAAU,CAACC,MAAyBA,EAAK,WAAW,SAAS,GAAG,GAAG,GAEnEC,IAAsB,CAACC,MAA4B;AAC9D,QAAMC,IAAQ,KAAK,MAAMD,IAAU,IAAI,GACjCE,IAAU,KAAK,MAAOF,IAAU,OAAQ,EAAE,GAC1CG,IAAmBH,IAAU;AAE5B,SAAA,qBAAqBH,EAAQI,CAAK,CAAC,OAAOJ,EAAQK,CAAO,CAAC,OAAOL;AAAA,IACtEM;AAAA,EACD,CAAA;AACH;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import e from "styled-components";
|
|
2
|
+
import o from "../../../../ui/layout/flex-view.js";
|
|
3
|
+
import r from "../../../../ui/text/text.js";
|
|
4
|
+
const l = e(o)`
|
|
5
|
+
max-width: ${({ $maxWidth: t }) => `${typeof t == "number" ? `${t}px` : `${t}`}`};
|
|
6
|
+
`, m = e(r)`
|
|
7
|
+
text-decoration: ${({ $subtitleLineThrough: t }) => t ? "line-through" : "none"};
|
|
8
|
+
`, f = e(o)`
|
|
9
|
+
position: relative;
|
|
10
|
+
left: ${({ $isLargeLottie: t }) => t ? "-6px" : "0"};
|
|
11
|
+
`;
|
|
12
|
+
export {
|
|
13
|
+
l as ContentWrapper,
|
|
14
|
+
f as LottieWrapper,
|
|
15
|
+
m as SubTitle
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=session-status-styled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-status-styled.js","sources":["../../../../../../src/features/trial-session/comps/pla/session-status/session-status-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\n\nexport const ContentWrapper = styled(FlexView)<{ $maxWidth: number | string }>`\n max-width: ${({ $maxWidth }) =>\n `${typeof $maxWidth === 'number' ? `${$maxWidth}px` : `${$maxWidth}`}`};\n`;\n\nexport const SubTitle = styled(Text)<{ $subtitleLineThrough?: boolean }>`\n text-decoration: ${({ $subtitleLineThrough }) =>\n $subtitleLineThrough ? 'line-through' : 'none'};\n`;\n\nexport const LottieWrapper = styled(FlexView)<{ $isLargeLottie: boolean }>`\n position: relative;\n left: ${({ $isLargeLottie }) => ($isLargeLottie ? '-6px' : '0')};\n`;\n"],"names":["ContentWrapper","styled","FlexView","$maxWidth","SubTitle","Text","$subtitleLineThrough","LottieWrapper","$isLargeLottie"],"mappings":";;;AAKa,MAAAA,IAAiBC,EAAOC,CAAQ;AAAA,eAC9B,CAAC,EAAE,WAAAC,EAAU,MACxB,GAAG,OAAOA,KAAc,WAAW,GAAGA,CAAS,OAAO,GAAGA,CAAS,EAAE,EAAE;AAAA,GAG7DC,IAAWH,EAAOI,CAAI;AAAA,qBACd,CAAC,EAAE,sBAAAC,EAAA,MACpBA,IAAuB,iBAAiB,MAAM;AAAA,GAGrCC,IAAgBN,EAAOC,CAAQ;AAAA;AAAA,UAElC,CAAC,EAAE,gBAAAM,EAAA,MAAsBA,IAAiB,SAAS,GAAI;AAAA;"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { jsxs as a, jsx as e, Fragment as E } from "react/jsx-runtime";
|
|
2
|
+
import { h as x } from "../../../../../node_modules/humanize-plus/dist/humanize.js";
|
|
3
|
+
import { memo as D, useState as G, useRef as v, useMemo as _, useCallback as s, useEffect as U } from "react";
|
|
4
|
+
import { ILLUSTRATIONS as p } from "../../../../../assets/illustrations/illustrations.js";
|
|
5
|
+
import { LOTTIE as A } from "../../../../../assets/lottie/lottie.js";
|
|
6
|
+
import { CUEMATH_APP_URL as F } from "../../../../../constants/config.js";
|
|
7
|
+
import P from "../../../../ui/buttons/text-button/text-button.js";
|
|
8
|
+
import k from "../../../../ui/image/image.js";
|
|
9
|
+
import c from "../../../../ui/layout/flex-view.js";
|
|
10
|
+
import M from "../../../../ui/lottie-animation/lottie-animation.js";
|
|
11
|
+
import T from "../../../../ui/separator/separator.js";
|
|
12
|
+
import H from "../../../../ui/text/text.js";
|
|
13
|
+
import { COUNTDOWN_INTERVAL as X, renderSettings as K, COUNTDOWN_THRESHOLD as j } from "./session-status-constants.js";
|
|
14
|
+
import { formatSessionDateTime as z, formatTimeRemaining as B } from "./session-status-helpers.js";
|
|
15
|
+
import { LottieWrapper as V, ContentWrapper as q, SubTitle as J } from "./session-status-styled.js";
|
|
16
|
+
import { differenceInSeconds as Q } from "../../../../../node_modules/date-fns/differenceInSeconds.js";
|
|
17
|
+
import { fromUnixTime as Y } from "../../../../../node_modules/date-fns/fromUnixTime.js";
|
|
18
|
+
const Z = ({
|
|
19
|
+
completedSessions: r,
|
|
20
|
+
nextSessionStartTime: u,
|
|
21
|
+
status: l,
|
|
22
|
+
teacherName: o,
|
|
23
|
+
studentName: O,
|
|
24
|
+
onRescheduleClick: b = () => {
|
|
25
|
+
}
|
|
26
|
+
}) => {
|
|
27
|
+
const [d, C] = G(""), S = v(null), W = _(
|
|
28
|
+
() => ({
|
|
29
|
+
isTeacherAssigned: !!o,
|
|
30
|
+
isFirstSessionCompleted: r > 0,
|
|
31
|
+
formattedSessionStart: z(u)
|
|
32
|
+
}),
|
|
33
|
+
[r, o, u]
|
|
34
|
+
), { isTeacherAssigned: i, isFirstSessionCompleted: h, formattedSessionStart: n } = W, m = s(() => {
|
|
35
|
+
S.current && (clearInterval(S.current), S.current = null);
|
|
36
|
+
}, []), f = _(() => l === "S_NO_SHOW" || l === "T_NO_SHOW", [l]);
|
|
37
|
+
U(() => {
|
|
38
|
+
if (!u || h || f) {
|
|
39
|
+
m(), C("");
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const t = () => {
|
|
43
|
+
const y = Y(u), g = Q(y, /* @__PURE__ */ new Date());
|
|
44
|
+
if (g <= 0 || g > j) {
|
|
45
|
+
C(""), m();
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
C(B(g));
|
|
49
|
+
};
|
|
50
|
+
return t(), S.current = setInterval(t, X), m;
|
|
51
|
+
}, [
|
|
52
|
+
u,
|
|
53
|
+
h,
|
|
54
|
+
l,
|
|
55
|
+
m,
|
|
56
|
+
f
|
|
57
|
+
]);
|
|
58
|
+
const R = s(() => {
|
|
59
|
+
window.open(F, "_blank");
|
|
60
|
+
}, []), $ = s(
|
|
61
|
+
() => ({
|
|
62
|
+
topSection: {
|
|
63
|
+
icon: p.CALENDAR_CROSS_ORANGE,
|
|
64
|
+
title: "Session Cancelled",
|
|
65
|
+
titleColor: "ORANGE_4",
|
|
66
|
+
titleStyle: "ac3",
|
|
67
|
+
titleTabletStyle: "ac4",
|
|
68
|
+
subtitleStyle: "ab1",
|
|
69
|
+
subtitleTabletStyle: "ab2",
|
|
70
|
+
subtitle: n,
|
|
71
|
+
description: l === "S_NO_SHOW" ? "We understand life is unpredictable and schedules change unexpectedly." : "We're sorry - our tutor couldn't attend your first session. This rarely happens, but tutors sometimes face unexpected circumstances.",
|
|
72
|
+
descriptionColor: "WHITE_1",
|
|
73
|
+
subtitleLineThrough: !0
|
|
74
|
+
},
|
|
75
|
+
bottomSection: {
|
|
76
|
+
icon: p.PLATFORM_PURPLE,
|
|
77
|
+
title: "Please Reschedule",
|
|
78
|
+
titleColor: "PURPLE_4",
|
|
79
|
+
titleStyle: "ac3",
|
|
80
|
+
titleTabletStyle: "ac4",
|
|
81
|
+
subtitleStyle: "ub1",
|
|
82
|
+
subtitleTabletStyle: "ub2",
|
|
83
|
+
subtitle: l === "S_NO_SHOW" ? "Please reschedule when it works better for you. Choose any available time slot, and we'll assign you a new tutor for your child." : "Since your first class didn't happen, we haven't activated your subscription. Choose any available time slot, and we'll assign a reliable tutor.",
|
|
84
|
+
action: {
|
|
85
|
+
label: "Reschedule",
|
|
86
|
+
onClick: b
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}),
|
|
90
|
+
[n, b, l]
|
|
91
|
+
), L = s(() => {
|
|
92
|
+
const t = r === 1 ? "First" : r;
|
|
93
|
+
return {
|
|
94
|
+
topSection: {
|
|
95
|
+
icon: p.BOOK_CHECKED_GREEN,
|
|
96
|
+
title: `${t} ${x.pluralize(r, "session")} Completed!`,
|
|
97
|
+
titleColor: "GREEN_4",
|
|
98
|
+
titleStyle: "ac3",
|
|
99
|
+
titleTabletStyle: "ac4",
|
|
100
|
+
align: "center"
|
|
101
|
+
},
|
|
102
|
+
bottomSection: {
|
|
103
|
+
lottie: A.CALENDAR_HOUR_GLASS_ORANGE,
|
|
104
|
+
title: "Next Session",
|
|
105
|
+
titleColor: "ORANGE_4",
|
|
106
|
+
titleStyle: "ac3",
|
|
107
|
+
titleTabletStyle: "ac4",
|
|
108
|
+
subtitleStyle: "ab1",
|
|
109
|
+
subtitleTabletStyle: "ab2",
|
|
110
|
+
subtitle: `${n}
|
|
111
|
+
with ${o}`,
|
|
112
|
+
action: {
|
|
113
|
+
label: "Reschedule on the Cuemath app",
|
|
114
|
+
onClick: R
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
}, [r, n, o, R]), w = s(() => {
|
|
119
|
+
const t = d || "SESSION SCHEDULED", y = i ? A.TEACHER_FOUND : A.TEACHER_SEARCH;
|
|
120
|
+
return {
|
|
121
|
+
topSection: {
|
|
122
|
+
icon: p.CALENDAR_CHECK_GREEN,
|
|
123
|
+
title: t,
|
|
124
|
+
titleColor: "GREEN_4",
|
|
125
|
+
titleStyle: d ? "ub2" : "ac3",
|
|
126
|
+
titleTabletStyle: d ? "ub3" : "ac4",
|
|
127
|
+
subtitle: n,
|
|
128
|
+
subtitleStyle: "ab1",
|
|
129
|
+
subtitleTabletStyle: "ab2",
|
|
130
|
+
action: {
|
|
131
|
+
label: "Reschedule",
|
|
132
|
+
onClick: b
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
bottomSection: {
|
|
136
|
+
align: "center",
|
|
137
|
+
lottie: y,
|
|
138
|
+
title: i ? "Tutor Assigned!" : "",
|
|
139
|
+
titleColor: i ? "ORANGE_4" : "WHITE_1",
|
|
140
|
+
titleStyle: i ? "ac3" : "ab2",
|
|
141
|
+
titleTabletStyle: i ? "ac4" : "ab3",
|
|
142
|
+
subtitleStyle: "ub1",
|
|
143
|
+
subtitleTabletStyle: "ub2",
|
|
144
|
+
subtitle: i ? `From over 3000 expert tutors, we selected ${o} as the perfect match for ${O}!` : "Finding the perfect tutor for your child",
|
|
145
|
+
description: i ? "" : "This typically takes 24-48 hours. We'll notify you via email.",
|
|
146
|
+
maxWidth: i ? 368 : 383,
|
|
147
|
+
isLargeIcon: !0
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
}, [
|
|
151
|
+
d,
|
|
152
|
+
n,
|
|
153
|
+
i,
|
|
154
|
+
o,
|
|
155
|
+
O,
|
|
156
|
+
b
|
|
157
|
+
]), I = _(() => f ? $() : h ? L() : w(), [
|
|
158
|
+
f,
|
|
159
|
+
h,
|
|
160
|
+
$,
|
|
161
|
+
L,
|
|
162
|
+
w
|
|
163
|
+
]), N = s(
|
|
164
|
+
(t) => /* @__PURE__ */ a(
|
|
165
|
+
c,
|
|
166
|
+
{
|
|
167
|
+
$flexDirection: "row",
|
|
168
|
+
$flexColumnGapX: t != null && t.isLargeIcon ? 0.75 : 1.5,
|
|
169
|
+
$alignItems: t.align || "flex-start",
|
|
170
|
+
children: [
|
|
171
|
+
/* @__PURE__ */ e(c, { children: t.icon ? /* @__PURE__ */ e(k, { src: t.icon, width: 64, height: 64 }) : /* @__PURE__ */ e(V, { $isLargeLottie: !!(t != null && t.isLargeIcon), children: /* @__PURE__ */ e(
|
|
172
|
+
M,
|
|
173
|
+
{
|
|
174
|
+
src: t.lottie,
|
|
175
|
+
settings: K,
|
|
176
|
+
width: t.isLargeIcon ? 75 : 64,
|
|
177
|
+
height: t.isLargeIcon ? 75 : 64
|
|
178
|
+
}
|
|
179
|
+
) }) }),
|
|
180
|
+
/* @__PURE__ */ a(q, { $maxWidth: t.maxWidth ?? "100%", $width: "100%", children: [
|
|
181
|
+
t.title && /* @__PURE__ */ e(
|
|
182
|
+
H,
|
|
183
|
+
{
|
|
184
|
+
$renderAs: t.titleStyle,
|
|
185
|
+
$color: t.titleColor,
|
|
186
|
+
$renderOnMobileAs: t.titleTabletStyle,
|
|
187
|
+
children: t.title
|
|
188
|
+
}
|
|
189
|
+
),
|
|
190
|
+
t.subtitle && /* @__PURE__ */ a(E, { children: [
|
|
191
|
+
/* @__PURE__ */ e(T, { height: 2 }),
|
|
192
|
+
/* @__PURE__ */ e(
|
|
193
|
+
J,
|
|
194
|
+
{
|
|
195
|
+
$renderAs: t.subtitleStyle,
|
|
196
|
+
$renderOnMobileAs: t.subtitleTabletStyle,
|
|
197
|
+
$color: "WHITE_1",
|
|
198
|
+
$whiteSpace: "pre-line",
|
|
199
|
+
$subtitleLineThrough: t.subtitleLineThrough,
|
|
200
|
+
children: t.subtitle
|
|
201
|
+
}
|
|
202
|
+
)
|
|
203
|
+
] }),
|
|
204
|
+
t.description && /* @__PURE__ */ a(E, { children: [
|
|
205
|
+
/* @__PURE__ */ e(T, { heightX: 0.5 }),
|
|
206
|
+
/* @__PURE__ */ e(c, { $width: "100%", children: /* @__PURE__ */ e(
|
|
207
|
+
H,
|
|
208
|
+
{
|
|
209
|
+
$renderAs: "ub2",
|
|
210
|
+
$renderOnMobileAs: "ub3",
|
|
211
|
+
$color: t.descriptionColor ?? "WHITE_T_60",
|
|
212
|
+
children: t.description
|
|
213
|
+
}
|
|
214
|
+
) })
|
|
215
|
+
] }),
|
|
216
|
+
t.action && /* @__PURE__ */ a(E, { children: [
|
|
217
|
+
/* @__PURE__ */ e(T, { heightX: 0.75 }),
|
|
218
|
+
/* @__PURE__ */ e(
|
|
219
|
+
P,
|
|
220
|
+
{
|
|
221
|
+
sizeOnMobile: "small",
|
|
222
|
+
label: t.action.label,
|
|
223
|
+
color: "WHITE_1",
|
|
224
|
+
onClick: t.action.onClick
|
|
225
|
+
}
|
|
226
|
+
)
|
|
227
|
+
] })
|
|
228
|
+
] })
|
|
229
|
+
]
|
|
230
|
+
}
|
|
231
|
+
),
|
|
232
|
+
[]
|
|
233
|
+
);
|
|
234
|
+
return /* @__PURE__ */ a(c, { $flexDirection: "column", $justifyContent: "center", children: [
|
|
235
|
+
N(I.topSection),
|
|
236
|
+
/* @__PURE__ */ e(c, { $gutterX: 2, $gapX: 0.25, children: /* @__PURE__ */ e(T, { heightX: 3, background: "BLACK_5", width: 1 }) }),
|
|
237
|
+
N(I.bottomSection)
|
|
238
|
+
] });
|
|
239
|
+
}, Tt = D(Z);
|
|
240
|
+
export {
|
|
241
|
+
Tt as default
|
|
242
|
+
};
|
|
243
|
+
//# sourceMappingURL=session-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-status.js","sources":["../../../../../../src/features/trial-session/comps/pla/session-status/session-status.tsx"],"sourcesContent":["import type {\n ISectionConfig,\n ISessionStatusConfig,\n ISessionStatusProps,\n} from './session-status-types';\n\nimport { differenceInSeconds, fromUnixTime } from 'date-fns';\nimport { pluralize } from 'humanize-plus';\nimport { useCallback, useEffect, useMemo, useRef, useState, memo } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport { LOTTIE } from '../../../../../assets/lottie/lottie';\nimport { CUEMATH_APP_URL } from '../../../../../constants/config';\nimport TextButton from '../../../../ui/buttons/text-button/text-button';\nimport Image from '../../../../ui/image/image';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport {\n COUNTDOWN_INTERVAL,\n COUNTDOWN_THRESHOLD,\n renderSettings,\n} from './session-status-constants';\nimport { formatSessionDateTime, formatTimeRemaining } from './session-status-helpers';\nimport * as Styled from './session-status-styled';\n\nconst SessionStatus = ({\n completedSessions,\n nextSessionStartTime,\n status,\n teacherName,\n studentName,\n onRescheduleClick = () => {},\n}: ISessionStatusProps) => {\n const [remainingTime, setRemainingTime] = useState('');\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\n\n const derivedValues = useMemo(\n () => ({\n isTeacherAssigned: !!teacherName,\n isFirstSessionCompleted: completedSessions > 0,\n formattedSessionStart: formatSessionDateTime(nextSessionStartTime),\n }),\n [completedSessions, teacherName, nextSessionStartTime],\n );\n\n const { isTeacherAssigned, isFirstSessionCompleted, formattedSessionStart } = derivedValues;\n\n const clearCountdownInterval = useCallback(() => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n const isNoShowStatus = useMemo(() => status === 'S_NO_SHOW' || status === 'T_NO_SHOW', [status]);\n\n useEffect(() => {\n if (!nextSessionStartTime || isFirstSessionCompleted || isNoShowStatus) {\n clearCountdownInterval();\n setRemainingTime('');\n\n return;\n }\n\n const updateCountdown = () => {\n const start = fromUnixTime(nextSessionStartTime);\n const now = new Date();\n const diffInSeconds = differenceInSeconds(start, now);\n\n if (diffInSeconds <= 0 || diffInSeconds > COUNTDOWN_THRESHOLD) {\n setRemainingTime('');\n clearCountdownInterval();\n\n return;\n }\n\n setRemainingTime(formatTimeRemaining(diffInSeconds));\n };\n\n // Initial update\n updateCountdown();\n\n // Set up interval\n intervalRef.current = setInterval(updateCountdown, COUNTDOWN_INTERVAL);\n\n return clearCountdownInterval;\n }, [\n nextSessionStartTime,\n isFirstSessionCompleted,\n status,\n clearCountdownInterval,\n isNoShowStatus,\n ]);\n\n const handleRedirectToApp = useCallback(() => {\n window.open(CUEMATH_APP_URL, '_blank');\n }, []);\n\n const createStudentNoShowConfig = useCallback(\n (): ISessionStatusConfig => ({\n topSection: {\n icon: ILLUSTRATIONS.CALENDAR_CROSS_ORANGE,\n title: 'Session Cancelled',\n titleColor: 'ORANGE_4',\n titleStyle: 'ac3',\n titleTabletStyle: 'ac4',\n subtitleStyle: 'ab1',\n subtitleTabletStyle: 'ab2',\n subtitle: formattedSessionStart,\n description:\n status === 'S_NO_SHOW'\n ? `We understand life is unpredictable and schedules change unexpectedly.`\n : `We're sorry - our tutor couldn't attend your first session. This rarely happens, but tutors sometimes face unexpected circumstances.`,\n descriptionColor: 'WHITE_1',\n subtitleLineThrough: true,\n },\n bottomSection: {\n icon: ILLUSTRATIONS.PLATFORM_PURPLE,\n title: 'Please Reschedule',\n titleColor: 'PURPLE_4',\n titleStyle: 'ac3',\n titleTabletStyle: 'ac4',\n subtitleStyle: 'ub1',\n subtitleTabletStyle: 'ub2',\n subtitle:\n status === 'S_NO_SHOW'\n ? \"Please reschedule when it works better for you. Choose any available time slot, and we'll assign you a new tutor for your child.\"\n : `Since your first class didn't happen, we haven't activated your subscription. Choose any available time slot, and we'll assign a reliable tutor.`,\n action: {\n label: 'Reschedule',\n onClick: onRescheduleClick,\n },\n },\n }),\n [formattedSessionStart, onRescheduleClick, status],\n );\n\n const createCompletedSessionConfig = useCallback((): ISessionStatusConfig => {\n const titleText = completedSessions === 1 ? 'First' : completedSessions;\n\n return {\n topSection: {\n icon: ILLUSTRATIONS.BOOK_CHECKED_GREEN,\n title: `${titleText} ${pluralize(completedSessions, 'session')} Completed!`,\n titleColor: 'GREEN_4',\n titleStyle: 'ac3',\n titleTabletStyle: 'ac4',\n align: 'center',\n },\n bottomSection: {\n lottie: LOTTIE.CALENDAR_HOUR_GLASS_ORANGE,\n title: 'Next Session',\n titleColor: 'ORANGE_4',\n titleStyle: 'ac3',\n titleTabletStyle: 'ac4',\n subtitleStyle: 'ab1',\n subtitleTabletStyle: 'ab2',\n subtitle: `${formattedSessionStart}\\nwith ${teacherName}`,\n action: {\n label: 'Reschedule on the Cuemath app',\n onClick: handleRedirectToApp,\n },\n },\n };\n }, [completedSessions, formattedSessionStart, teacherName, handleRedirectToApp]);\n\n const createDefaultSessionConfig = useCallback((): ISessionStatusConfig => {\n const defaultTitle = remainingTime || 'SESSION SCHEDULED';\n const teacherGif = isTeacherAssigned ? LOTTIE.TEACHER_FOUND : LOTTIE.TEACHER_SEARCH;\n\n return {\n topSection: {\n icon: ILLUSTRATIONS.CALENDAR_CHECK_GREEN,\n title: defaultTitle,\n titleColor: 'GREEN_4',\n titleStyle: remainingTime ? 'ub2' : 'ac3',\n titleTabletStyle: remainingTime ? 'ub3' : 'ac4',\n subtitle: formattedSessionStart,\n subtitleStyle: 'ab1',\n subtitleTabletStyle: 'ab2',\n action: {\n label: 'Reschedule',\n onClick: onRescheduleClick,\n },\n },\n bottomSection: {\n align: 'center',\n lottie: teacherGif,\n title: isTeacherAssigned ? 'Tutor Assigned!' : '',\n titleColor: isTeacherAssigned ? 'ORANGE_4' : 'WHITE_1',\n titleStyle: isTeacherAssigned ? 'ac3' : 'ab2',\n titleTabletStyle: isTeacherAssigned ? 'ac4' : 'ab3',\n subtitleStyle: 'ub1',\n subtitleTabletStyle: 'ub2',\n subtitle: isTeacherAssigned\n ? `From over 3000 expert tutors, we selected ${teacherName} as the perfect match for ${studentName}!`\n : 'Finding the perfect tutor for your child',\n description: isTeacherAssigned\n ? ''\n : \"This typically takes 24-48 hours. We'll notify you via email.\",\n maxWidth: isTeacherAssigned ? 368 : 383,\n isLargeIcon: true,\n },\n };\n }, [\n remainingTime,\n formattedSessionStart,\n isTeacherAssigned,\n teacherName,\n studentName,\n onRescheduleClick,\n ]);\n\n const config = useMemo((): ISessionStatusConfig => {\n if (isNoShowStatus) {\n return createStudentNoShowConfig();\n }\n\n if (isFirstSessionCompleted) {\n return createCompletedSessionConfig();\n }\n\n return createDefaultSessionConfig();\n }, [\n isNoShowStatus,\n isFirstSessionCompleted,\n createStudentNoShowConfig,\n createCompletedSessionConfig,\n createDefaultSessionConfig,\n ]);\n\n const renderSection = useCallback(\n (section: ISectionConfig) => (\n <FlexView\n $flexDirection=\"row\"\n $flexColumnGapX={section?.isLargeIcon ? 0.75 : 1.5}\n $alignItems={section.align || 'flex-start'}\n >\n <FlexView>\n {section.icon ? (\n <Image src={section.icon} width={64} height={64} />\n ) : (\n <Styled.LottieWrapper $isLargeLottie={!!section?.isLargeIcon}>\n <LottieAnimation\n src={section.lottie!}\n settings={renderSettings}\n width={section.isLargeIcon ? 75 : 64}\n height={section.isLargeIcon ? 75 : 64}\n />\n </Styled.LottieWrapper>\n )}\n </FlexView>\n <Styled.ContentWrapper $maxWidth={section.maxWidth ?? '100%'} $width=\"100%\">\n {section.title && (\n <Text\n $renderAs={section.titleStyle}\n $color={section.titleColor}\n $renderOnMobileAs={section.titleTabletStyle}\n >\n {section.title}\n </Text>\n )}\n\n {section.subtitle && (\n <>\n <Separator height={2} />\n <Styled.SubTitle\n $renderAs={section.subtitleStyle!}\n $renderOnMobileAs={section.subtitleTabletStyle}\n $color=\"WHITE_1\"\n $whiteSpace=\"pre-line\"\n $subtitleLineThrough={section.subtitleLineThrough}\n >\n {section.subtitle}\n </Styled.SubTitle>\n </>\n )}\n\n {section.description && (\n <>\n <Separator heightX={0.5} />\n <FlexView $width=\"100%\">\n <Text\n $renderAs=\"ub2\"\n $renderOnMobileAs=\"ub3\"\n $color={section.descriptionColor ?? 'WHITE_T_60'}\n >\n {section.description}\n </Text>\n </FlexView>\n </>\n )}\n\n {section.action && (\n <>\n <Separator heightX={0.75} />\n <TextButton\n sizeOnMobile=\"small\"\n label={section.action.label}\n color=\"WHITE_1\"\n onClick={section.action.onClick}\n />\n </>\n )}\n </Styled.ContentWrapper>\n </FlexView>\n ),\n [],\n );\n\n return (\n <FlexView $flexDirection=\"column\" $justifyContent=\"center\">\n {renderSection(config.topSection)}\n\n <FlexView $gutterX={2} $gapX={0.25}>\n <Separator heightX={3} background=\"BLACK_5\" width={1} />\n </FlexView>\n\n {renderSection(config.bottomSection)}\n </FlexView>\n );\n};\n\nexport default memo(SessionStatus);\n"],"names":["SessionStatus","completedSessions","nextSessionStartTime","status","teacherName","studentName","onRescheduleClick","remainingTime","setRemainingTime","useState","intervalRef","useRef","derivedValues","useMemo","formatSessionDateTime","isTeacherAssigned","isFirstSessionCompleted","formattedSessionStart","clearCountdownInterval","useCallback","isNoShowStatus","useEffect","updateCountdown","start","fromUnixTime","diffInSeconds","differenceInSeconds","COUNTDOWN_THRESHOLD","formatTimeRemaining","COUNTDOWN_INTERVAL","handleRedirectToApp","CUEMATH_APP_URL","createStudentNoShowConfig","ILLUSTRATIONS","createCompletedSessionConfig","titleText","pluralize","LOTTIE","createDefaultSessionConfig","defaultTitle","teacherGif","config","renderSection","section","jsxs","FlexView","jsx","Image","Styled.LottieWrapper","LottieAnimation","renderSettings","Styled.ContentWrapper","Text","Fragment","Separator","Styled.SubTitle","TextButton","sessionStatus","memo"],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { GIF as e } from "../../../../../assets/gif/gif.js";
|
|
2
|
+
const i = [
|
|
3
|
+
{
|
|
4
|
+
title: "introduction & goals",
|
|
5
|
+
description: "Get to know your tutor and discuss your goals and expectations",
|
|
6
|
+
image: e.YOUR_GOALS_GRID_BG,
|
|
7
|
+
textBG: "ORANGE_6",
|
|
8
|
+
ctaLabel: "View Profile"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
title: "interactive sessions",
|
|
12
|
+
description: "Watch your child learn concepts and tackle problems with their tutorʼs guidance.",
|
|
13
|
+
image: e.LEARNING_SESSION_GRID_BG,
|
|
14
|
+
textBG: "YELLOW_6",
|
|
15
|
+
ctaLabel: "View Insights"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
title: "way forward",
|
|
19
|
+
description: "Get insights on your child’s learning and plan the journey ahead",
|
|
20
|
+
image: e.WAY_FORWARD_GRID_BG,
|
|
21
|
+
textBG: "GREEN_6",
|
|
22
|
+
ctaLabel: "View Learning Plan"
|
|
23
|
+
}
|
|
24
|
+
], a = [
|
|
25
|
+
{
|
|
26
|
+
title: "created student profile",
|
|
27
|
+
key: "studentProfile",
|
|
28
|
+
image: e.YOUR_GOALS_GRID_BG,
|
|
29
|
+
textBG: "ORANGE_6",
|
|
30
|
+
ctaLabel: "View Profile"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
title: "Shared Learning insights",
|
|
34
|
+
key: "insights",
|
|
35
|
+
image: e.LEARNING_SESSION_GRID_BG,
|
|
36
|
+
textBG: "YELLOW_6",
|
|
37
|
+
ctaLabel: "View Insights"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
title: "Created learning plan",
|
|
41
|
+
description: "Get insights on your child’s learning and plan the journey ahead",
|
|
42
|
+
image: e.WAY_FORWARD_GRID_BG,
|
|
43
|
+
textBG: "GREEN_6",
|
|
44
|
+
ctaLabel: "View Learning Plan",
|
|
45
|
+
key: "learningPlan"
|
|
46
|
+
}
|
|
47
|
+
];
|
|
48
|
+
export {
|
|
49
|
+
a as sessionSummaryAfterDemo,
|
|
50
|
+
i as sessionSummaryData
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=session-summary-constants.js.map
|
package/dist/features/trial-session/comps/pla/session-summary/session-summary-constants.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-summary-constants.js","sources":["../../../../../../src/features/trial-session/comps/pla/session-summary/session-summary-constants.ts"],"sourcesContent":["import type { ISessionSummary } from './session-summary-types';\n\nimport { GIF } from '../../../../../assets/gif/gif';\n\nexport const sessionSummaryData: ISessionSummary[] = [\n {\n title: 'introduction & goals',\n description: 'Get to know your tutor and discuss your goals and expectations',\n image: GIF.YOUR_GOALS_GRID_BG,\n textBG: 'ORANGE_6',\n ctaLabel: 'View Profile',\n },\n {\n title: 'interactive sessions',\n description: 'Watch your child learn concepts and tackle problems with their tutorʼs guidance.',\n image: GIF.LEARNING_SESSION_GRID_BG,\n textBG: 'YELLOW_6',\n ctaLabel: 'View Insights',\n },\n {\n title: 'way forward',\n description: 'Get insights on your child’s learning and plan the journey ahead',\n image: GIF.WAY_FORWARD_GRID_BG,\n textBG: 'GREEN_6',\n ctaLabel: 'View Learning Plan',\n },\n];\n\nexport const sessionSummaryAfterDemo: ISessionSummary[] = [\n {\n title: 'created student profile',\n key: 'studentProfile',\n image: GIF.YOUR_GOALS_GRID_BG,\n textBG: 'ORANGE_6',\n ctaLabel: 'View Profile',\n },\n {\n title: 'Shared Learning insights',\n key: 'insights',\n image: GIF.LEARNING_SESSION_GRID_BG,\n textBG: 'YELLOW_6',\n ctaLabel: 'View Insights',\n },\n {\n title: 'Created learning plan',\n description: 'Get insights on your child’s learning and plan the journey ahead',\n image: GIF.WAY_FORWARD_GRID_BG,\n textBG: 'GREEN_6',\n ctaLabel: 'View Learning Plan',\n key: 'learningPlan',\n },\n];\n"],"names":["sessionSummaryData","GIF","sessionSummaryAfterDemo"],"mappings":";AAIO,MAAMA,IAAwC;AAAA,EACnD;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAOC,EAAI;AAAA,IACX,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAOA,EAAI;AAAA,IACX,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAOA,EAAI;AAAA,IACX,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AACF,GAEaC,IAA6C;AAAA,EACxD;AAAA,IACE,OAAO;AAAA,IACP,KAAK;AAAA,IACL,OAAOD,EAAI;AAAA,IACX,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,KAAK;AAAA,IACL,OAAOA,EAAI;AAAA,IACX,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,aAAa;AAAA,IACb,OAAOA,EAAI;AAAA,IACX,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,KAAK;AAAA,EACP;AACF;"}
|