@cuemath/leap 3.3.36-m → 3.3.36
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/gif/gif.js +4 -1
- package/dist/assets/gif/gif.js.map +1 -1
- package/dist/assets/illustrations/illustrations.js +1 -1
- package/dist/assets/illustrations/illustrations.js.map +1 -1
- package/dist/assets/line-icons/icons/chevron-right.js.map +1 -1
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js +1 -1
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js.map +1 -1
- package/dist/features/auth/comps/otp-input/otp-input.js +35 -29
- package/dist/features/auth/comps/otp-input/otp-input.js.map +1 -1
- package/dist/features/auth/pla-signup/pla-analytics-events.js +12 -3
- package/dist/features/auth/pla-signup/pla-analytics-events.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +43 -34
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -1
- package/dist/features/chapters-v2/chapter-details/chapter-details.js +140 -101
- package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
- package/dist/features/chapters-v2/utils/index.js +20 -16
- package/dist/features/chapters-v2/utils/index.js.map +1 -1
- package/dist/features/circle-games/game-launcher/api/get-content-for-today/get-circle-home-api.js +6 -6
- package/dist/features/circle-games/game-launcher/api/get-content-for-today/get-circle-home-api.js.map +1 -1
- package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js +20 -21
- package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js.map +1 -1
- package/dist/features/circle-games/games/web-view/web-view-types.js.map +1 -1
- package/dist/features/circle-games/sign-up/sign-up.js +6 -6
- package/dist/features/circle-games/sign-up/sign-up.js.map +1 -1
- package/dist/features/homework/hw-card-list/hw-card-list-view.js +17 -17
- package/dist/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.js +86 -0
- package/dist/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.js.map +1 -0
- package/dist/features/journey/hooks/use-chapter-page-journey/use-download-node-journey.js +140 -0
- package/dist/features/journey/hooks/use-chapter-page-journey/use-download-node-journey.js.map +1 -0
- package/dist/features/journey/journey-id/journey-id-student.js +1 -1
- package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
- package/dist/features/journey/journey-id/journey-id-teacher.js +2 -2
- package/dist/features/journey/journey-id/journey-id-teacher.js.map +1 -1
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js +400 -0
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +1 -1
- package/dist/features/milestone/constants.js +28 -15
- package/dist/features/milestone/constants.js.map +1 -1
- package/dist/features/milestone/create/comps/goal-completion-date-selector/goal-completion-date-selector.js +6 -6
- package/dist/features/milestone/create/comps/sheets-list/sheets-list-styled.js +2 -2
- package/dist/features/milestone/create/comps/test-type-step/test-type-utils.js +23 -16
- package/dist/features/milestone/create/comps/test-type-step/test-type-utils.js.map +1 -1
- package/dist/features/milestone/create/milestone-create-helpers.js +13 -7
- package/dist/features/milestone/create/milestone-create-helpers.js.map +1 -1
- package/dist/features/parent-dashboard/api/cancel-subscription.js +9 -0
- package/dist/features/parent-dashboard/api/cancel-subscription.js.map +1 -0
- package/dist/features/parent-dashboard/comps/billing-information/billing-information-styled.js +20 -0
- package/dist/features/parent-dashboard/comps/billing-information/billing-information-styled.js.map +1 -0
- package/dist/features/parent-dashboard/comps/billing-information/billing-information.js +74 -0
- package/dist/features/parent-dashboard/comps/billing-information/billing-information.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/next-steps/next-steps-constants.js +1 -1
- package/dist/features/parent-dashboard/comps/next-steps/next-steps-constants.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/next-steps/next-steps-styled.js +1 -1
- package/dist/features/parent-dashboard/comps/next-steps/next-steps-styled.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/next-steps/next-steps.js +5 -5
- package/dist/features/parent-dashboard/comps/next-steps/next-steps.js.map +1 -0
- package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js +28 -22
- package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js.map +1 -1
- package/dist/features/parent-dashboard/comps/session-status/hooks/use-countdown.js +34 -0
- package/dist/features/parent-dashboard/comps/session-status/hooks/use-countdown.js.map +1 -0
- package/dist/features/parent-dashboard/comps/session-status/hooks/use-session-status-config.js +137 -0
- package/dist/features/parent-dashboard/comps/session-status/hooks/use-session-status-config.js.map +1 -0
- package/dist/features/parent-dashboard/comps/session-status/session-status-constants.js +20 -0
- package/dist/features/parent-dashboard/comps/session-status/session-status-constants.js.map +1 -0
- package/dist/features/parent-dashboard/comps/session-status/session-status-helpers.js +19 -0
- package/dist/features/parent-dashboard/comps/session-status/session-status-helpers.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/session-status/session-status-styled.js +2 -2
- package/dist/features/parent-dashboard/comps/session-status/session-status-styled.js.map +1 -0
- package/dist/features/parent-dashboard/comps/session-status/session-status.js +124 -0
- package/dist/features/parent-dashboard/comps/session-status/session-status.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/session-summary/session-summary-constants.js +18 -12
- package/dist/features/parent-dashboard/comps/session-summary/session-summary-constants.js.map +1 -0
- package/dist/features/parent-dashboard/comps/session-summary/session-summary.js +54 -0
- package/dist/features/parent-dashboard/comps/session-summary/session-summary.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/session-summary/summary-card/summary-card-styled.js +1 -1
- package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card-styled.js.map +1 -0
- package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card.js +72 -0
- package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card.js.map +1 -0
- package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-constants.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions-styled.js +1 -1
- package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-styled.js.map +1 -0
- package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-types.js.map +1 -0
- package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions.js +14 -14
- package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions.js.map +1 -0
- package/dist/features/parent-dashboard/hooks/use-fetch-parent-home.js +1 -1
- package/dist/features/parent-dashboard/hooks/use-fetch-parent-home.js.map +1 -1
- package/dist/features/parent-dashboard/hooks/use-parent-home-data.js +48 -46
- package/dist/features/parent-dashboard/hooks/use-parent-home-data.js.map +1 -1
- package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription-constants.js +21 -0
- package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription-constants.js.map +1 -0
- package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription.js +85 -0
- package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription.js.map +1 -0
- package/dist/features/parent-dashboard/modals/cancellation-confirmation/cancellation-confirmation.js +23 -0
- package/dist/features/parent-dashboard/modals/cancellation-confirmation/cancellation-confirmation.js.map +1 -0
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-constant.js +55 -0
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-constant.js.map +1 -0
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-styled.js +71 -0
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-styled.js.map +1 -0
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason.js +119 -0
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason.js.map +1 -0
- package/dist/features/parent-dashboard/modals/hooks/use-pla-model-handlers.js +58 -0
- package/dist/features/parent-dashboard/modals/hooks/use-pla-model-handlers.js.map +1 -0
- package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary.js +16 -17
- package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary.js.map +1 -1
- package/dist/features/parent-dashboard/modals/trial-report/trial-report-styled.js +4 -8
- package/dist/features/parent-dashboard/modals/trial-report/trial-report-styled.js.map +1 -1
- package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-styled.js +3 -3
- package/dist/features/parent-dashboard/modals/tutor-change/tutor-change-styled.js.map +1 -1
- package/dist/features/parent-dashboard/modals/view-payment-method/view-payment-method.js +76 -0
- package/dist/features/parent-dashboard/modals/view-payment-method/view-payment-method.js.map +1 -0
- package/dist/features/parent-dashboard/parent-dashboard-constants.js +45 -4
- package/dist/features/parent-dashboard/parent-dashboard-constants.js.map +1 -1
- package/dist/features/parent-dashboard/parent-dashboard-types.js +3 -3
- package/dist/features/parent-dashboard/parent-dashboard-types.js.map +1 -1
- package/dist/features/parent-dashboard/parent-dashboard-view.js +197 -174
- package/dist/features/parent-dashboard/parent-dashboard-view.js.map +1 -1
- package/dist/features/stickers/sticker-selector/hooks/use-handle-sticker-send.js +17 -17
- package/dist/features/stickers/sticker-selector/hooks/use-handle-sticker-send.js.map +1 -1
- package/dist/features/stickers/stickers-effects/stickers-effects.js.map +1 -1
- package/dist/features/student-details/class-details/class-details-utils.js +6 -6
- package/dist/features/trial-session/api/teacher-availability.js +9 -0
- package/dist/features/trial-session/api/teacher-availability.js.map +1 -0
- package/dist/features/trial-session/comps/class-preference/class-preference.js +74 -58
- package/dist/features/trial-session/comps/class-preference/class-preference.js.map +1 -1
- package/dist/features/trial-session/comps/class-preference/helpers.js +28 -0
- package/dist/features/trial-session/comps/class-preference/helpers.js.map +1 -0
- package/dist/features/trial-session/comps/learning-plan/index.js +47 -45
- package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
- package/dist/features/trial-session/comps/navigation-bar/index.js +41 -40
- package/dist/features/trial-session/comps/navigation-bar/index.js.map +1 -1
- package/dist/features/trial-session/comps/school-goals/school-goals.js +59 -57
- package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
- package/dist/features/trial-session/comps/session-report/session-report.js +15 -15
- package/dist/features/trial-session/comps/session-report/session-report.js.map +1 -1
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js +41 -40
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js.map +1 -1
- package/dist/features/trial-session/comps/student-feedback/student-feedback-constants.js +5 -0
- package/dist/features/trial-session/comps/student-feedback/student-feedback-constants.js.map +1 -1
- package/dist/features/trial-session/comps/student-feedback/student-feedback.js +96 -51
- package/dist/features/trial-session/comps/student-feedback/student-feedback.js.map +1 -1
- package/dist/features/trial-session/comps/student-profile/student-profile.js +70 -63
- package/dist/features/trial-session/comps/student-profile/student-profile.js.map +1 -1
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js +43 -44
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +1 -1
- package/dist/features/trial-session/comps/test-prep/test-prep.js +41 -40
- package/dist/features/trial-session/comps/test-prep/test-prep.js.map +1 -1
- package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js +60 -61
- package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js.map +1 -1
- package/dist/features/trial-session/helper.js +76 -61
- package/dist/features/trial-session/helper.js.map +1 -1
- package/dist/features/trial-session/hooks/use-slide-config-update.js +49 -0
- package/dist/features/trial-session/hooks/use-slide-config-update.js.map +1 -0
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js +174 -144
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
- package/dist/features/trial-session/trial-session-types.js.map +1 -1
- package/dist/features/trial-session/trial-session-view.js +99 -110
- package/dist/features/trial-session/trial-session-view.js.map +1 -1
- package/dist/features/ui/accordion/accordion-items/accordion-items.js +13 -13
- package/dist/features/ui/accordion/accordion-items/accordion-items.js.map +1 -1
- package/dist/features/utils/utils.js +1 -1
- package/dist/features/utils/utils.js.map +1 -1
- package/dist/index.d.ts +81 -83
- package/dist/index.js +316 -317
- package/dist/index.js.map +1 -1
- package/dist/static/learning-session-grid-bg-mobile.8d2b7258.gif +0 -0
- package/dist/static/way-forward-grid-bg-mobile.374043d7.gif +0 -0
- package/dist/static/your-goals-grid-bg-mobile.62557024.gif +0 -0
- package/package.json +1 -1
- package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-styled.js +0 -12
- package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-styled.js.map +0 -1
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-constants.js.map +0 -1
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-styled.js.map +0 -1
- package/dist/features/trial-session/comps/pla/next-steps/next-steps.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js +0 -29
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js +0 -132
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js +0 -11
- package/dist/features/trial-session/comps/pla/session-status/session-status-constants.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js +0 -19
- package/dist/features/trial-session/comps/pla/session-status/session-status-helpers.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-status/session-status-styled.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-status/session-status.js +0 -127
- package/dist/features/trial-session/comps/pla/session-status/session-status.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-summary/session-summary-constants.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-summary/session-summary.js +0 -53
- package/dist/features/trial-session/comps/pla/session-summary/session-summary.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card-styled.js.map +0 -1
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js +0 -56
- package/dist/features/trial-session/comps/pla/session-summary/summary-card/summary-card.js.map +0 -1
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-constants.js.map +0 -1
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-styled.js.map +0 -1
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions-types.js.map +0 -1
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/getRoundingMethod.js +0 -10
- package/dist/node_modules/date-fns/_lib/getRoundingMethod.js.map +0 -1
- package/dist/node_modules/date-fns/differenceInMilliseconds.js +0 -9
- package/dist/node_modules/date-fns/differenceInMilliseconds.js.map +0 -1
- package/dist/node_modules/date-fns/differenceInSeconds.js +0 -11
- package/dist/node_modules/date-fns/differenceInSeconds.js.map +0 -1
- package/dist/static/trophy.a8ea85ef.json +0 -6813
- /package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions-constants.js +0 -0
- /package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/upcoming-sessions/upcoming-sessions-types.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-steps-styled.js","sources":["../../../../../src/features/parent-dashboard/comps/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;"}
|
package/dist/features/{trial-session/comps/pla → parent-dashboard/comps}/next-steps/next-steps.js
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsxs as t, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import { memo as a } from "react";
|
|
3
3
|
import { useTheme as h } from "styled-components";
|
|
4
|
-
import p from "
|
|
5
|
-
import m from "
|
|
6
|
-
import o from "
|
|
7
|
-
import n from "
|
|
8
|
-
import { EDeviceType as $ } from "
|
|
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 $ } from "../../../ui/theme/constants.js";
|
|
9
9
|
import { nextStepsData as d } from "./next-steps-constants.js";
|
|
10
10
|
import { ListItem as f, TextContent as x } from "./next-steps-styled.js";
|
|
11
11
|
const b = () => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-steps.js","sources":["../../../../../src/features/parent-dashboard/comps/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$1","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;"}
|
|
@@ -1,44 +1,50 @@
|
|
|
1
1
|
import { jsxs as s, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { memo as
|
|
3
|
-
import { ILLUSTRATIONS as
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
2
|
+
import { memo as f, useMemo as d } from "react";
|
|
3
|
+
import { ILLUSTRATIONS as p } from "../../../../assets/illustrations/illustrations.js";
|
|
4
|
+
import u from "../../../ui/buttons/button/button.js";
|
|
5
|
+
import $ from "../../../ui/image/image.js";
|
|
6
|
+
import m from "../../../ui/layout/flex-view.js";
|
|
7
7
|
import r from "../../../ui/separator/separator.js";
|
|
8
8
|
import o from "../../../ui/text/text.js";
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import { ImageWrapper as
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
import g from "../../hooks/use-fetch-parent-home.js";
|
|
10
|
+
import x from "../../hooks/use-parent-home-data.js";
|
|
11
|
+
import { ImageWrapper as A } from "./pla-first-session-introduction-styled.js";
|
|
12
|
+
import { fromUnixTime as S } from "../../../../node_modules/date-fns/fromUnixTime.js";
|
|
13
|
+
import { formatDate as I } from "../../../../node_modules/date-fns/format.js";
|
|
14
|
+
const L = ({
|
|
15
|
+
studentId: i,
|
|
16
|
+
onRunSystemCheck: a
|
|
15
17
|
}) => {
|
|
16
|
-
|
|
17
|
-
const {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
g(i);
|
|
19
|
+
const { nextSessionStart: t, showPLAIntroduction: c, isTrialDone: h } = x(i), n = d(() => {
|
|
20
|
+
if (!t) return "";
|
|
21
|
+
const l = new Date(S(t).getTime());
|
|
22
|
+
return I(l, "EEEE, MMM d 'at' h:mm a");
|
|
23
|
+
}, [t]);
|
|
24
|
+
return /* @__PURE__ */ s(m, { $justifyContent: "center", $alignItems: "center", $height: "100vh", $width: "100%", children: [
|
|
25
|
+
n && c && /* @__PURE__ */ s(m, { children: [
|
|
26
|
+
/* @__PURE__ */ e(o, { $renderAs: "ab1", $color: "BLACK_1", $align: "center", children: `We’re excited for your ${h ? "next" : "first"} session on` }),
|
|
21
27
|
/* @__PURE__ */ e(r, { height: 4 }),
|
|
22
|
-
/* @__PURE__ */ e(o, { $renderAs: "ab1-bold", $align: "center", children:
|
|
28
|
+
/* @__PURE__ */ e(o, { $renderAs: "ab1-bold", $align: "center", children: n })
|
|
23
29
|
] }),
|
|
24
30
|
/* @__PURE__ */ e(r, { heightX: 2.5 }),
|
|
25
|
-
/* @__PURE__ */ e(
|
|
31
|
+
/* @__PURE__ */ e(A, { children: /* @__PURE__ */ e($, { src: p.LEARNING_PUZZLE_BOT, width: "100%" }) }),
|
|
26
32
|
/* @__PURE__ */ e(r, { heightX: 3.5 }),
|
|
27
33
|
/* @__PURE__ */ e(o, { $renderAs: "ab2", $color: "BLACK_1", $align: "center", children: "Let's make sure your device is ready for your child's session." }),
|
|
28
34
|
/* @__PURE__ */ e(r, { heightX: 1 }),
|
|
29
35
|
/* @__PURE__ */ e(
|
|
30
|
-
|
|
36
|
+
u,
|
|
31
37
|
{
|
|
32
38
|
renderAs: "primary",
|
|
33
39
|
label: "Run a system check",
|
|
34
40
|
shape: "square",
|
|
35
41
|
size: "small",
|
|
36
|
-
onClick:
|
|
42
|
+
onClick: a
|
|
37
43
|
}
|
|
38
44
|
)
|
|
39
45
|
] });
|
|
40
|
-
},
|
|
46
|
+
}, j = f(L);
|
|
41
47
|
export {
|
|
42
|
-
|
|
48
|
+
j as default
|
|
43
49
|
};
|
|
44
50
|
//# sourceMappingURL=pla-first-session-introduction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pla-first-session-introduction.js","sources":["../../../../../src/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.tsx"],"sourcesContent":["import type { IFirstSessionIntroductionProps } from './pla-first-session-introduction-types';\n\nimport { memo, type FC } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport Button from '../../../ui/buttons/button/button';\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 useFetchParentHome from '../../hooks/use-fetch-parent-home';\nimport useParentHomeData from '../../hooks/use-parent-home-data';\nimport * as Styled from './pla-first-session-introduction-styled';\n\nconst PlaFirstSessionIntroduction: FC<IFirstSessionIntroductionProps> = ({\n studentId,\n onRunSystemCheck,\n}) => {\n useFetchParentHome(studentId);\n const {
|
|
1
|
+
{"version":3,"file":"pla-first-session-introduction.js","sources":["../../../../../src/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.tsx"],"sourcesContent":["import type { IFirstSessionIntroductionProps } from './pla-first-session-introduction-types';\n\nimport { format, fromUnixTime } from 'date-fns';\nimport { memo, useMemo, type FC } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../assets/illustrations/illustrations';\nimport Button from '../../../ui/buttons/button/button';\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 useFetchParentHome from '../../hooks/use-fetch-parent-home';\nimport useParentHomeData from '../../hooks/use-parent-home-data';\nimport * as Styled from './pla-first-session-introduction-styled';\n\nconst PlaFirstSessionIntroduction: FC<IFirstSessionIntroductionProps> = ({\n studentId,\n onRunSystemCheck,\n}) => {\n useFetchParentHome(studentId);\n const { nextSessionStart, showPLAIntroduction, isTrialDone } = useParentHomeData(studentId);\n\n const formattedNextSessionStart = useMemo(() => {\n if (!nextSessionStart) return '';\n\n const date = new Date(fromUnixTime(nextSessionStart).getTime());\n\n return format(date, \"EEEE, MMM d 'at' h:mm a\");\n }, [nextSessionStart]);\n\n return (\n <FlexView $justifyContent=\"center\" $alignItems=\"center\" $height=\"100vh\" $width={'100%'}>\n {formattedNextSessionStart && showPLAIntroduction && (\n <FlexView>\n <Text $renderAs=\"ab1\" $color=\"BLACK_1\" $align=\"center\">\n {`We’re excited for your ${isTrialDone ? 'next' : 'first'} session on`}\n </Text>\n <Separator height={4} />\n <Text $renderAs=\"ab1-bold\" $align=\"center\">\n {formattedNextSessionStart}\n </Text>\n </FlexView>\n )}\n <Separator heightX={2.5} />\n <Styled.ImageWrapper>\n <Image src={ILLUSTRATIONS.LEARNING_PUZZLE_BOT} width=\"100%\" />\n </Styled.ImageWrapper>\n <Separator heightX={3.5} />\n <Text $renderAs=\"ab2\" $color=\"BLACK_1\" $align=\"center\">\n Let's make sure your device is ready for your child's session.\n </Text>\n <Separator heightX={1} />\n <Button\n renderAs=\"primary\"\n label=\"Run a system check\"\n shape=\"square\"\n size=\"small\"\n onClick={onRunSystemCheck}\n />\n </FlexView>\n );\n};\n\nexport default memo(PlaFirstSessionIntroduction);\n"],"names":["PlaFirstSessionIntroduction","studentId","onRunSystemCheck","useFetchParentHome","nextSessionStart","showPLAIntroduction","isTrialDone","useParentHomeData","formattedNextSessionStart","useMemo","date","fromUnixTime","format","jsxs","FlexView","jsx","Text","Separator","Styled.ImageWrapper","Image","ILLUSTRATIONS","Button","plaFirstSessionIntroduction","memo"],"mappings":";;;;;;;;;;;;;AAeA,MAAMA,IAAkE,CAAC;AAAA,EACvE,WAAAC;AAAA,EACA,kBAAAC;AACF,MAAM;AACJ,EAAAC,EAAmBF,CAAS;AAC5B,QAAM,EAAE,kBAAAG,GAAkB,qBAAAC,GAAqB,aAAAC,EAAY,IAAIC,EAAkBN,CAAS,GAEpFO,IAA4BC,EAAQ,MAAM;AAC1C,QAAA,CAACL,EAAyB,QAAA;AAE9B,UAAMM,IAAO,IAAI,KAAKC,EAAaP,CAAgB,EAAE,SAAS;AAEvD,WAAAQ,EAAOF,GAAM,yBAAyB;AAAA,EAAA,GAC5C,CAACN,CAAgB,CAAC;AAGnB,SAAA,gBAAAS,EAACC,KAAS,iBAAgB,UAAS,aAAY,UAAS,SAAQ,SAAQ,QAAQ,QAC7E,UAAA;AAAA,IAA6BN,KAAAH,uBAC3BS,GACC,EAAA,UAAA;AAAA,MAAC,gBAAAC,EAAAC,GAAA,EAAK,WAAU,OAAM,QAAO,WAAU,QAAO,UAC3C,UAA0B,0BAAAV,IAAc,SAAS,OAAO,eAC3D;AAAA,MACA,gBAAAS,EAACE,GAAU,EAAA,QAAQ,EAAG,CAAA;AAAA,wBACrBD,GAAK,EAAA,WAAU,YAAW,QAAO,UAC/B,UACHR,GAAA;AAAA,IAAA,GACF;AAAA,IAEF,gBAAAO,EAACE,GAAU,EAAA,SAAS,IAAK,CAAA;AAAA,IACzB,gBAAAF,EAACG,GAAA,EACC,UAAA,gBAAAH,EAACI,GAAM,EAAA,KAAKC,EAAc,qBAAqB,OAAM,OAAA,CAAO,EAC9D,CAAA;AAAA,IACA,gBAAAL,EAACE,GAAU,EAAA,SAAS,IAAK,CAAA;AAAA,IACzB,gBAAAF,EAACC,KAAK,WAAU,OAAM,QAAO,WAAU,QAAO,UAAS,UAEvD,iEAAA,CAAA;AAAA,IACA,gBAAAD,EAACE,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,IACvB,gBAAAF;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,OAAM;AAAA,QACN,OAAM;AAAA,QACN,MAAK;AAAA,QACL,SAASnB;AAAA,MAAA;AAAA,IACX;AAAA,EACF,EAAA,CAAA;AAEJ,GAEeoB,IAAAC,EAAKvB,CAA2B;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useState as R, useRef as m, useCallback as u, useEffect as g } from "react";
|
|
2
|
+
import { COUNTDOWN_INTERVAL as d } from "../session-status-constants.js";
|
|
3
|
+
const C = ({ timeLeft: t, maxHoursToShow: s = 48 }) => {
|
|
4
|
+
const [l, e] = R(0), r = m(null), c = u(() => {
|
|
5
|
+
r.current && (clearInterval(r.current), r.current = null);
|
|
6
|
+
}, []), i = u(
|
|
7
|
+
(a) => {
|
|
8
|
+
const o = Math.floor(Date.now() / 1e3), n = a - o, f = s * 3600;
|
|
9
|
+
return n <= 0 || n > f ? 0 : n;
|
|
10
|
+
},
|
|
11
|
+
[s]
|
|
12
|
+
);
|
|
13
|
+
return g(() => {
|
|
14
|
+
if (!t) {
|
|
15
|
+
c(), e(0);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const a = i(t);
|
|
19
|
+
if (a <= 0) {
|
|
20
|
+
e(0);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
e(a);
|
|
24
|
+
const o = () => {
|
|
25
|
+
const n = i(t);
|
|
26
|
+
n <= 0 ? (c(), e(0)) : e(n);
|
|
27
|
+
};
|
|
28
|
+
return r.current = setInterval(o, d), c;
|
|
29
|
+
}, [t, c, i]), l;
|
|
30
|
+
};
|
|
31
|
+
export {
|
|
32
|
+
C as default
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=use-countdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-countdown.js","sources":["../../../../../../src/features/parent-dashboard/comps/session-status/hooks/use-countdown.ts"],"sourcesContent":["import { useState, useEffect, useRef, useCallback } from 'react';\n\nimport { COUNTDOWN_INTERVAL } from '../session-status-constants';\n\ninterface IUseCountdownParams {\n timeLeft: number | null;\n maxHoursToShow?: number;\n}\n\nconst useCountdown = ({ timeLeft, maxHoursToShow = 48 }: IUseCountdownParams): number => {\n const [remaining, setRemaining] = useState(0);\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\n\n const clear = useCallback(() => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n\n const calculateRemaining = useCallback(\n (targetTime: number): number => {\n const now = Math.floor(Date.now() / 1000);\n const diff = targetTime - now;\n const maxSeconds = maxHoursToShow * 3600;\n\n if (diff <= 0 || diff > maxSeconds) {\n return 0;\n }\n\n return diff;\n },\n [maxHoursToShow],\n );\n\n useEffect(() => {\n if (!timeLeft) {\n clear();\n setRemaining(0);\n\n return;\n }\n\n const initialRemaining = calculateRemaining(timeLeft);\n\n if (initialRemaining <= 0) {\n setRemaining(0);\n\n return;\n }\n\n setRemaining(initialRemaining);\n\n const tick = () => {\n const currentRemaining = calculateRemaining(timeLeft);\n\n if (currentRemaining <= 0) {\n clear();\n setRemaining(0);\n } else {\n setRemaining(currentRemaining);\n }\n };\n\n intervalRef.current = setInterval(tick, COUNTDOWN_INTERVAL);\n\n return clear;\n }, [timeLeft, clear, calculateRemaining]);\n\n return remaining;\n};\n\nexport default useCountdown;\n"],"names":["useCountdown","timeLeft","maxHoursToShow","remaining","setRemaining","useState","intervalRef","useRef","clear","useCallback","calculateRemaining","targetTime","now","diff","maxSeconds","useEffect","initialRemaining","tick","currentRemaining","COUNTDOWN_INTERVAL"],"mappings":";;AASA,MAAMA,IAAe,CAAC,EAAE,UAAAC,GAAU,gBAAAC,IAAiB,SAAsC;AACvF,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,CAAC,GACtCC,IAAcC,EAA8B,IAAI,GAEhDC,IAAQC,EAAY,MAAM;AAC9B,IAAIH,EAAY,YACd,cAAcA,EAAY,OAAO,GACjCA,EAAY,UAAU;AAAA,EAE1B,GAAG,CAAE,CAAA,GAECI,IAAqBD;AAAA,IACzB,CAACE,MAA+B;AAC9B,YAAMC,IAAM,KAAK,MAAM,KAAK,IAAA,IAAQ,GAAI,GAClCC,IAAOF,IAAaC,GACpBE,IAAaZ,IAAiB;AAEhC,aAAAW,KAAQ,KAAKA,IAAOC,IACf,IAGFD;AAAA,IACT;AAAA,IACA,CAACX,CAAc;AAAA,EAAA;AAGjB,SAAAa,EAAU,MAAM;AACd,QAAI,CAACd,GAAU;AACP,MAAAO,KACNJ,EAAa,CAAC;AAEd;AAAA,IACF;AAEM,UAAAY,IAAmBN,EAAmBT,CAAQ;AAEpD,QAAIe,KAAoB,GAAG;AACzB,MAAAZ,EAAa,CAAC;AAEd;AAAA,IACF;AAEA,IAAAA,EAAaY,CAAgB;AAE7B,UAAMC,IAAO,MAAM;AACX,YAAAC,IAAmBR,EAAmBT,CAAQ;AAEpD,MAAIiB,KAAoB,KAChBV,KACNJ,EAAa,CAAC,KAEdA,EAAac,CAAgB;AAAA,IAC/B;AAGU,WAAAZ,EAAA,UAAU,YAAYW,GAAME,CAAkB,GAEnDX;AAAA,EACN,GAAA,CAACP,GAAUO,GAAOE,CAAkB,CAAC,GAEjCP;AACT;"}
|
package/dist/features/parent-dashboard/comps/session-status/hooks/use-session-status-config.js
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { h } from "../../../../../node_modules/humanize-plus/dist/humanize.js";
|
|
2
|
+
import { useMemo as s, useCallback as C } from "react";
|
|
3
|
+
import { ILLUSTRATIONS as a } from "../../../../../assets/illustrations/illustrations.js";
|
|
4
|
+
import { LOTTIE as O } from "../../../../../assets/lottie/lottie.js";
|
|
5
|
+
import { CUEMATH_APP_URL as R } from "../../../../../constants/config.js";
|
|
6
|
+
import { TEXT_STYLES as t } from "../session-status-constants.js";
|
|
7
|
+
import { formatSessionDateTime as A, formatTimeRemaining as D } from "../session-status-helpers.js";
|
|
8
|
+
import P from "./use-countdown.js";
|
|
9
|
+
const x = ({
|
|
10
|
+
completedSessions: u,
|
|
11
|
+
nextSessionStartTime: S,
|
|
12
|
+
isTrialDone: c = !1,
|
|
13
|
+
teacherName: o,
|
|
14
|
+
studentName: b,
|
|
15
|
+
isStudentNoShow: i = !1,
|
|
16
|
+
onRescheduleClick: n,
|
|
17
|
+
isOnlyTrialDone: I = !1,
|
|
18
|
+
isTutorNoShow: d = !1
|
|
19
|
+
}) => {
|
|
20
|
+
const B = s(
|
|
21
|
+
() => ({
|
|
22
|
+
isNoShowStatus: i || d,
|
|
23
|
+
isTeacherAssigned: !!o,
|
|
24
|
+
formattedSessionStart: A(S)
|
|
25
|
+
}),
|
|
26
|
+
[i, d, o, S]
|
|
27
|
+
), { isNoShowStatus: L, isTeacherAssigned: e, formattedSessionStart: l } = B, r = P({
|
|
28
|
+
timeLeft: c || L ? null : S,
|
|
29
|
+
maxHoursToShow: 48
|
|
30
|
+
}), y = C(() => {
|
|
31
|
+
window.open(R, "_blank");
|
|
32
|
+
}, []), T = C(() => {
|
|
33
|
+
n == null || n();
|
|
34
|
+
}, [n]), f = s(
|
|
35
|
+
() => ({
|
|
36
|
+
topSection: {
|
|
37
|
+
icon: a.CALENDAR_CROSS_ORANGE,
|
|
38
|
+
title: "Session Cancelled",
|
|
39
|
+
titleColor: "ORANGE_4",
|
|
40
|
+
titleStyle: t.TITLE_DESKTOP,
|
|
41
|
+
titleTabletStyle: t.TITLE_MOBILE,
|
|
42
|
+
subtitle: l,
|
|
43
|
+
subtitleStyle: t.SUBTITLE_DESKTOP,
|
|
44
|
+
subtitleTabletStyle: t.SUBTITLE_MOBILE,
|
|
45
|
+
subtitleLineThrough: !0,
|
|
46
|
+
description: i ? "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.",
|
|
47
|
+
descriptionColor: "WHITE_1"
|
|
48
|
+
},
|
|
49
|
+
bottomSection: {
|
|
50
|
+
icon: a.PLATFORM_PURPLE,
|
|
51
|
+
title: "Please Reschedule",
|
|
52
|
+
titleColor: "PURPLE_4",
|
|
53
|
+
titleStyle: t.TITLE_DESKTOP,
|
|
54
|
+
titleTabletStyle: t.TITLE_MOBILE,
|
|
55
|
+
subtitle: i ? "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.",
|
|
56
|
+
subtitleStyle: t.BODY_DESKTOP,
|
|
57
|
+
subtitleTabletStyle: t.BODY_MOBILE,
|
|
58
|
+
action: {
|
|
59
|
+
label: "Reschedule",
|
|
60
|
+
onClick: T
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}),
|
|
64
|
+
[l, i, T]
|
|
65
|
+
), m = s(() => {
|
|
66
|
+
const _ = I ? "First" : u.toString(), E = h.pluralize(u, "session");
|
|
67
|
+
return {
|
|
68
|
+
topSection: {
|
|
69
|
+
icon: a.BOOK_CHECKED_GREEN,
|
|
70
|
+
title: `${_} ${E} Completed!`,
|
|
71
|
+
titleColor: "GREEN_4",
|
|
72
|
+
titleStyle: t.TITLE_DESKTOP,
|
|
73
|
+
titleTabletStyle: t.TITLE_MOBILE,
|
|
74
|
+
align: "center"
|
|
75
|
+
},
|
|
76
|
+
bottomSection: {
|
|
77
|
+
lottie: O.CALENDAR_HOUR_GLASS_ORANGE,
|
|
78
|
+
title: "Next Session",
|
|
79
|
+
titleColor: "ORANGE_4",
|
|
80
|
+
titleStyle: t.TITLE_DESKTOP,
|
|
81
|
+
titleTabletStyle: t.TITLE_MOBILE,
|
|
82
|
+
subtitle: `${l}
|
|
83
|
+
with ${o}`,
|
|
84
|
+
subtitleStyle: t.SUBTITLE_DESKTOP,
|
|
85
|
+
subtitleTabletStyle: t.SUBTITLE_MOBILE,
|
|
86
|
+
action: {
|
|
87
|
+
label: "Reschedule on the Cuemath app",
|
|
88
|
+
onClick: y
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}, [I, u, l, o, y]), p = s(() => {
|
|
93
|
+
const _ = r ? D(r) : "SESSION SCHEDULED", E = !!r;
|
|
94
|
+
return {
|
|
95
|
+
topSection: {
|
|
96
|
+
icon: a.CALENDAR_CHECK_GREEN,
|
|
97
|
+
title: _,
|
|
98
|
+
titleColor: "GREEN_4",
|
|
99
|
+
titleStyle: E ? t.COUNTDOWN_DESKTOP : t.TITLE_DESKTOP,
|
|
100
|
+
titleTabletStyle: E ? t.COUNTDOWN_MOBILE : t.TITLE_MOBILE,
|
|
101
|
+
subtitle: l,
|
|
102
|
+
subtitleStyle: t.SUBTITLE_DESKTOP,
|
|
103
|
+
subtitleTabletStyle: t.SUBTITLE_MOBILE,
|
|
104
|
+
action: {
|
|
105
|
+
label: "Reschedule",
|
|
106
|
+
onClick: T
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
bottomSection: {
|
|
110
|
+
align: "center",
|
|
111
|
+
lottie: e ? O.TEACHER_FOUND : O.TEACHER_SEARCH,
|
|
112
|
+
title: e ? "Tutor Assigned!" : "",
|
|
113
|
+
titleColor: e ? "ORANGE_4" : "WHITE_1",
|
|
114
|
+
titleStyle: e ? t.TITLE_DESKTOP : t.SUBTITLE_MOBILE,
|
|
115
|
+
titleTabletStyle: e ? t.TITLE_MOBILE : t.SUBTITLE_MOBILE,
|
|
116
|
+
subtitle: e ? `From over 3000 expert tutors, we selected ${o} as the perfect match for ${b}!` : "Finding the perfect tutor for your child",
|
|
117
|
+
subtitleStyle: t.BODY_DESKTOP,
|
|
118
|
+
subtitleTabletStyle: t.BODY_MOBILE,
|
|
119
|
+
description: e ? void 0 : "This typically takes 24-48 hours. We'll notify you via email.",
|
|
120
|
+
maxWidth: e ? 368 : 383,
|
|
121
|
+
isLargeIcon: !0
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
}, [
|
|
125
|
+
r,
|
|
126
|
+
l,
|
|
127
|
+
T,
|
|
128
|
+
e,
|
|
129
|
+
o,
|
|
130
|
+
b
|
|
131
|
+
]);
|
|
132
|
+
return s(() => L ? f : c ? m : p, [L, c, f, m, p]);
|
|
133
|
+
};
|
|
134
|
+
export {
|
|
135
|
+
x as default
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=use-session-status-config.js.map
|
package/dist/features/parent-dashboard/comps/session-status/hooks/use-session-status-config.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-session-status-config.js","sources":["../../../../../../src/features/parent-dashboard/comps/session-status/hooks/use-session-status-config.ts"],"sourcesContent":["import type { ISessionStatusConfig, IUseSessionStatusConfigProps } from '../session-status-types';\n\nimport { pluralize } from 'humanize-plus';\nimport { useMemo, useCallback } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport { LOTTIE } from '../../../../../assets/lottie/lottie';\nimport { CUEMATH_APP_URL } from '../../../../../constants/config';\nimport { TEXT_STYLES } from '../session-status-constants';\nimport { formatSessionDateTime, formatTimeRemaining } from '../session-status-helpers';\nimport useCountdown from './use-countdown';\n\nconst useSessionStatusConfig = ({\n completedSessions,\n nextSessionStartTime,\n isTrialDone = false,\n teacherName,\n studentName,\n isStudentNoShow = false,\n onRescheduleClick,\n isOnlyTrialDone = false,\n isTutorNoShow = false,\n}: IUseSessionStatusConfigProps): ISessionStatusConfig => {\n const derivedValues = useMemo(\n () => ({\n isNoShowStatus: isStudentNoShow || isTutorNoShow,\n isTeacherAssigned: Boolean(teacherName),\n formattedSessionStart: formatSessionDateTime(nextSessionStartTime),\n }),\n [isStudentNoShow, isTutorNoShow, teacherName, nextSessionStartTime],\n );\n\n const { isNoShowStatus, isTeacherAssigned, formattedSessionStart } = derivedValues;\n\n const countdownStartTime = isTrialDone || isNoShowStatus ? null : nextSessionStartTime;\n\n const sessionCountdown = useCountdown({\n timeLeft: countdownStartTime,\n maxHoursToShow: 48,\n });\n\n const handleRedirectToApp = useCallback(() => {\n window.open(CUEMATH_APP_URL, '_blank');\n }, []);\n\n const handleReschedule = useCallback(() => {\n onRescheduleClick?.();\n }, [onRescheduleClick]);\n\n const noShowConfig = useMemo(\n (): ISessionStatusConfig => ({\n topSection: {\n icon: ILLUSTRATIONS.CALENDAR_CROSS_ORANGE,\n title: 'Session Cancelled',\n titleColor: 'ORANGE_4',\n titleStyle: TEXT_STYLES.TITLE_DESKTOP,\n titleTabletStyle: TEXT_STYLES.TITLE_MOBILE,\n subtitle: formattedSessionStart,\n subtitleStyle: TEXT_STYLES.SUBTITLE_DESKTOP,\n subtitleTabletStyle: TEXT_STYLES.SUBTITLE_MOBILE,\n subtitleLineThrough: true,\n description: isStudentNoShow\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 },\n bottomSection: {\n icon: ILLUSTRATIONS.PLATFORM_PURPLE,\n title: 'Please Reschedule',\n titleColor: 'PURPLE_4',\n titleStyle: TEXT_STYLES.TITLE_DESKTOP,\n titleTabletStyle: TEXT_STYLES.TITLE_MOBILE,\n subtitle: isStudentNoShow\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 subtitleStyle: TEXT_STYLES.BODY_DESKTOP,\n subtitleTabletStyle: TEXT_STYLES.BODY_MOBILE,\n action: {\n label: 'Reschedule',\n onClick: handleReschedule,\n },\n },\n }),\n [formattedSessionStart, isStudentNoShow, handleReschedule],\n );\n\n const completedConfig = useMemo((): ISessionStatusConfig => {\n const titleText = isOnlyTrialDone ? 'First' : completedSessions.toString();\n const sessionText = pluralize(completedSessions, 'session');\n\n return {\n topSection: {\n icon: ILLUSTRATIONS.BOOK_CHECKED_GREEN,\n title: `${titleText} ${sessionText} Completed!`,\n titleColor: 'GREEN_4',\n titleStyle: TEXT_STYLES.TITLE_DESKTOP,\n titleTabletStyle: TEXT_STYLES.TITLE_MOBILE,\n align: 'center',\n },\n bottomSection: {\n lottie: LOTTIE.CALENDAR_HOUR_GLASS_ORANGE,\n title: 'Next Session',\n titleColor: 'ORANGE_4',\n titleStyle: TEXT_STYLES.TITLE_DESKTOP,\n titleTabletStyle: TEXT_STYLES.TITLE_MOBILE,\n subtitle: `${formattedSessionStart}\\nwith ${teacherName}`,\n subtitleStyle: TEXT_STYLES.SUBTITLE_DESKTOP,\n subtitleTabletStyle: TEXT_STYLES.SUBTITLE_MOBILE,\n action: {\n label: 'Reschedule on the Cuemath app',\n onClick: handleRedirectToApp,\n },\n },\n };\n }, [isOnlyTrialDone, completedSessions, formattedSessionStart, teacherName, handleRedirectToApp]);\n\n const defaultConfig = useMemo((): ISessionStatusConfig => {\n const title = sessionCountdown ? formatTimeRemaining(sessionCountdown) : 'SESSION SCHEDULED';\n const hasCountdown = Boolean(sessionCountdown);\n\n return {\n topSection: {\n icon: ILLUSTRATIONS.CALENDAR_CHECK_GREEN,\n title,\n titleColor: 'GREEN_4',\n titleStyle: hasCountdown ? TEXT_STYLES.COUNTDOWN_DESKTOP : TEXT_STYLES.TITLE_DESKTOP,\n titleTabletStyle: hasCountdown ? TEXT_STYLES.COUNTDOWN_MOBILE : TEXT_STYLES.TITLE_MOBILE,\n subtitle: formattedSessionStart,\n subtitleStyle: TEXT_STYLES.SUBTITLE_DESKTOP,\n subtitleTabletStyle: TEXT_STYLES.SUBTITLE_MOBILE,\n action: {\n label: 'Reschedule',\n onClick: handleReschedule,\n },\n },\n bottomSection: {\n align: 'center',\n lottie: isTeacherAssigned ? LOTTIE.TEACHER_FOUND : LOTTIE.TEACHER_SEARCH,\n title: isTeacherAssigned ? 'Tutor Assigned!' : '',\n titleColor: isTeacherAssigned ? 'ORANGE_4' : 'WHITE_1',\n titleStyle: isTeacherAssigned ? TEXT_STYLES.TITLE_DESKTOP : TEXT_STYLES.SUBTITLE_MOBILE,\n titleTabletStyle: isTeacherAssigned\n ? TEXT_STYLES.TITLE_MOBILE\n : TEXT_STYLES.SUBTITLE_MOBILE,\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 subtitleStyle: TEXT_STYLES.BODY_DESKTOP,\n subtitleTabletStyle: TEXT_STYLES.BODY_MOBILE,\n description: isTeacherAssigned\n ? undefined\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 sessionCountdown,\n formattedSessionStart,\n handleReschedule,\n isTeacherAssigned,\n teacherName,\n studentName,\n ]);\n\n return useMemo((): ISessionStatusConfig => {\n if (isNoShowStatus) return noShowConfig;\n\n if (isTrialDone) return completedConfig;\n\n return defaultConfig;\n }, [isNoShowStatus, isTrialDone, noShowConfig, completedConfig, defaultConfig]);\n};\n\nexport default useSessionStatusConfig;\n"],"names":["useSessionStatusConfig","completedSessions","nextSessionStartTime","isTrialDone","teacherName","studentName","isStudentNoShow","onRescheduleClick","isOnlyTrialDone","isTutorNoShow","derivedValues","useMemo","formatSessionDateTime","isNoShowStatus","isTeacherAssigned","formattedSessionStart","sessionCountdown","useCountdown","handleRedirectToApp","useCallback","CUEMATH_APP_URL","handleReschedule","noShowConfig","ILLUSTRATIONS","TEXT_STYLES","completedConfig","titleText","sessionText","pluralize","LOTTIE","defaultConfig","title","formatTimeRemaining","hasCountdown"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const T = 1e3, O = {
|
|
2
|
+
autoplay: !0,
|
|
3
|
+
loop: !0,
|
|
4
|
+
renderer: "svg"
|
|
5
|
+
}, E = {
|
|
6
|
+
TITLE_DESKTOP: "ac3",
|
|
7
|
+
TITLE_MOBILE: "ac4",
|
|
8
|
+
SUBTITLE_DESKTOP: "ab1",
|
|
9
|
+
SUBTITLE_MOBILE: "ab2",
|
|
10
|
+
BODY_DESKTOP: "ub1",
|
|
11
|
+
BODY_MOBILE: "ub2",
|
|
12
|
+
COUNTDOWN_DESKTOP: "ub2",
|
|
13
|
+
COUNTDOWN_MOBILE: "ub3"
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
T as COUNTDOWN_INTERVAL,
|
|
17
|
+
E as TEXT_STYLES,
|
|
18
|
+
O as renderSettings
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=session-status-constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-status-constants.js","sources":["../../../../../src/features/parent-dashboard/comps/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\nexport const TEXT_STYLES = {\n TITLE_DESKTOP: 'ac3' as const,\n TITLE_MOBILE: 'ac4' as const,\n SUBTITLE_DESKTOP: 'ab1' as const,\n SUBTITLE_MOBILE: 'ab2' as const,\n BODY_DESKTOP: 'ub1' as const,\n BODY_MOBILE: 'ub2' as const,\n COUNTDOWN_DESKTOP: 'ub2' as const,\n COUNTDOWN_MOBILE: 'ub3' as const,\n} as const;\n"],"names":["COUNTDOWN_INTERVAL","renderSettings","TEXT_STYLES"],"mappings":"AACO,MAAMA,IAAqB,KAErBC,IAAiB;AAAA,EAC5B,UAAU;AAAA,EACV,MAAM;AAAA,EACN,UAAU;AACZ,GAEaC,IAAc;AAAA,EACzB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,kBAAkB;AACpB;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { fromUnixTime as i } from "../../../../node_modules/date-fns/fromUnixTime.js";
|
|
2
|
+
import { formatDate as a } from "../../../../node_modules/date-fns/format.js";
|
|
3
|
+
function h(t, m) {
|
|
4
|
+
if (!t) return "";
|
|
5
|
+
const o = i(t), n = a(o, "EEE").toUpperCase(), r = a(o, "MMM d"), s = a(o, o.getMinutes() > 0 ? "h:mm a" : "h a");
|
|
6
|
+
return `${n} . ${r} . ${s}`;
|
|
7
|
+
}
|
|
8
|
+
const e = (t) => t.toString().padStart(2, "0"), M = (t) => {
|
|
9
|
+
const m = Math.floor(Math.abs(t)), o = Math.floor(t / 3600), n = Math.floor(t % 3600 / 60), r = m % 60;
|
|
10
|
+
return `Session starts in ${e(o)}h : ${e(n)}m : ${e(
|
|
11
|
+
r
|
|
12
|
+
)}s`;
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
h as formatSessionDateTime,
|
|
16
|
+
M as formatTimeRemaining,
|
|
17
|
+
e as padTime
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=session-status-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-status-helpers.js","sources":["../../../../../src/features/parent-dashboard/comps/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, start.getMinutes() > 0 ? 'h:mm a' : 'h a');\n\n const end = endTime ? fromUnixTime(endTime) : null;\n const formattedEndTime = end ? format(end, end.getMinutes() > 0 ? 'h:mm a' : '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 totalSeconds = Math.floor(Math.abs(seconds));\n const hours = Math.floor(seconds / 3600);\n const minutes = Math.floor((seconds % 3600) / 60);\n const remainingSeconds = totalSeconds % 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","totalSeconds","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,GAAOA,EAAM,eAAe,IAAI,WAAW,KAAK;AAK3E,SAAA,GAAGE,CAAG,MAAME,CAAI,MAAMC,CAAkB;AAGjD;AAEa,MAAAC,IAAU,CAACC,MAAyBA,EAAK,WAAW,SAAS,GAAG,GAAG,GAEnEC,IAAsB,CAACC,MAA4B;AAC9D,QAAMC,IAAe,KAAK,MAAM,KAAK,IAAID,CAAO,CAAC,GAC3CE,IAAQ,KAAK,MAAMF,IAAU,IAAI,GACjCG,IAAU,KAAK,MAAOH,IAAU,OAAQ,EAAE,GAC1CI,IAAmBH,IAAe;AAEjC,SAAA,qBAAqBJ,EAAQK,CAAK,CAAC,OAAOL,EAAQM,CAAO,CAAC,OAAON;AAAA,IACtEO;AAAA,EACD,CAAA;AACH;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import e from "styled-components";
|
|
2
|
-
import o from "
|
|
3
|
-
import r from "
|
|
2
|
+
import o from "../../../ui/layout/flex-view.js";
|
|
3
|
+
import r from "../../../ui/text/text.js";
|
|
4
4
|
const l = e(o)`
|
|
5
5
|
max-width: ${({ $maxWidth: t }) => `${typeof t == "number" ? `${t}px` : `${t}`}`};
|
|
6
6
|
`, m = e(r)`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-status-styled.js","sources":["../../../../../src/features/parent-dashboard/comps/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,124 @@
|
|
|
1
|
+
import { jsx as t, jsxs as r, Fragment as o } from "react/jsx-runtime";
|
|
2
|
+
import { memo as L, useCallback as n } from "react";
|
|
3
|
+
import T from "../../../ui/buttons/text-button/text-button.js";
|
|
4
|
+
import A from "../../../ui/image/image.js";
|
|
5
|
+
import i from "../../../ui/layout/flex-view.js";
|
|
6
|
+
import w from "../../../ui/lottie-animation/lottie-animation.js";
|
|
7
|
+
import l from "../../../ui/separator/separator.js";
|
|
8
|
+
import u from "../../../ui/text/text.js";
|
|
9
|
+
import _ from "./hooks/use-session-status-config.js";
|
|
10
|
+
import { renderSettings as W } from "./session-status-constants.js";
|
|
11
|
+
import { LottieWrapper as E, ContentWrapper as O, SubTitle as X } from "./session-status-styled.js";
|
|
12
|
+
const a = 64, y = 75, k = ({
|
|
13
|
+
completedSessions: f,
|
|
14
|
+
nextSessionStartTime: p,
|
|
15
|
+
studentName: g,
|
|
16
|
+
teacherName: $,
|
|
17
|
+
isStudentNoShow: b = !1,
|
|
18
|
+
isTutorNoShow: S = !1,
|
|
19
|
+
isTrialDone: C = !1,
|
|
20
|
+
isOnlyTrialDone: I = !1,
|
|
21
|
+
onRescheduleClick: x
|
|
22
|
+
}) => {
|
|
23
|
+
const h = _({
|
|
24
|
+
completedSessions: f,
|
|
25
|
+
nextSessionStartTime: p,
|
|
26
|
+
studentName: g,
|
|
27
|
+
teacherName: $,
|
|
28
|
+
isStudentNoShow: b,
|
|
29
|
+
isTutorNoShow: S,
|
|
30
|
+
isTrialDone: C,
|
|
31
|
+
isOnlyTrialDone: I,
|
|
32
|
+
onRescheduleClick: x
|
|
33
|
+
}), d = n((e) => {
|
|
34
|
+
if (e.icon)
|
|
35
|
+
return /* @__PURE__ */ t(A, { src: e.icon, width: a, height: a });
|
|
36
|
+
if (e.lottie) {
|
|
37
|
+
const c = e.isLargeIcon ? y : a;
|
|
38
|
+
return /* @__PURE__ */ t(E, { $isLargeLottie: !!e.isLargeIcon, children: /* @__PURE__ */ t(
|
|
39
|
+
w,
|
|
40
|
+
{
|
|
41
|
+
src: e.lottie,
|
|
42
|
+
settings: W,
|
|
43
|
+
width: c,
|
|
44
|
+
height: c
|
|
45
|
+
}
|
|
46
|
+
) });
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}, []), m = n(
|
|
50
|
+
(e) => /* @__PURE__ */ r(O, { $maxWidth: e.maxWidth ?? "100%", $width: "100%", children: [
|
|
51
|
+
e.title && /* @__PURE__ */ t(
|
|
52
|
+
u,
|
|
53
|
+
{
|
|
54
|
+
$renderAs: e.titleStyle,
|
|
55
|
+
$color: e.titleColor,
|
|
56
|
+
$renderOnMobileAs: e.titleTabletStyle,
|
|
57
|
+
children: e.title
|
|
58
|
+
}
|
|
59
|
+
),
|
|
60
|
+
e.subtitle && /* @__PURE__ */ r(o, { children: [
|
|
61
|
+
/* @__PURE__ */ t(l, { height: 2 }),
|
|
62
|
+
/* @__PURE__ */ t(
|
|
63
|
+
X,
|
|
64
|
+
{
|
|
65
|
+
$renderAs: e.subtitleStyle,
|
|
66
|
+
$renderOnMobileAs: e.subtitleTabletStyle,
|
|
67
|
+
$color: "WHITE_1",
|
|
68
|
+
$whiteSpace: "pre-line",
|
|
69
|
+
$subtitleLineThrough: e.subtitleLineThrough,
|
|
70
|
+
children: e.subtitle
|
|
71
|
+
}
|
|
72
|
+
)
|
|
73
|
+
] }),
|
|
74
|
+
e.description && /* @__PURE__ */ r(o, { children: [
|
|
75
|
+
/* @__PURE__ */ t(l, { heightX: 0.5 }),
|
|
76
|
+
/* @__PURE__ */ t(
|
|
77
|
+
u,
|
|
78
|
+
{
|
|
79
|
+
$renderAs: "ub2",
|
|
80
|
+
$renderOnMobileAs: "ub3",
|
|
81
|
+
$color: e.descriptionColor ?? "WHITE_T_60",
|
|
82
|
+
children: e.description
|
|
83
|
+
}
|
|
84
|
+
)
|
|
85
|
+
] }),
|
|
86
|
+
e.action && /* @__PURE__ */ r(o, { children: [
|
|
87
|
+
/* @__PURE__ */ t(l, { heightX: 0.75 }),
|
|
88
|
+
/* @__PURE__ */ t(i, { $width: "fit-content", children: /* @__PURE__ */ t(
|
|
89
|
+
T,
|
|
90
|
+
{
|
|
91
|
+
sizeOnMobile: "small",
|
|
92
|
+
label: e.action.label,
|
|
93
|
+
color: "WHITE_1",
|
|
94
|
+
onClick: e.action.onClick
|
|
95
|
+
}
|
|
96
|
+
) })
|
|
97
|
+
] })
|
|
98
|
+
] }),
|
|
99
|
+
[]
|
|
100
|
+
), s = n(
|
|
101
|
+
(e) => /* @__PURE__ */ r(
|
|
102
|
+
i,
|
|
103
|
+
{
|
|
104
|
+
$flexDirection: "row",
|
|
105
|
+
$flexColumnGapX: e.isLargeIcon ? 0.75 : 1.5,
|
|
106
|
+
$alignItems: e.align || "flex-start",
|
|
107
|
+
children: [
|
|
108
|
+
/* @__PURE__ */ t(i, { children: d(e) }),
|
|
109
|
+
m(e)
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
),
|
|
113
|
+
[d, m]
|
|
114
|
+
);
|
|
115
|
+
return /* @__PURE__ */ r(i, { $flexDirection: "column", $justifyContent: "center", children: [
|
|
116
|
+
s(h.topSection),
|
|
117
|
+
/* @__PURE__ */ t(i, { $gutterX: 2, $gapX: 0.25, children: /* @__PURE__ */ t(l, { heightX: 3, background: "BLACK_5", width: 1 }) }),
|
|
118
|
+
s(h.bottomSection)
|
|
119
|
+
] });
|
|
120
|
+
}, R = L(k);
|
|
121
|
+
export {
|
|
122
|
+
R as default
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=session-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-status.js","sources":["../../../../../src/features/parent-dashboard/comps/session-status/session-status.tsx"],"sourcesContent":["import type { ISectionConfig, ISessionStatusProps } from './session-status-types';\n\nimport { useCallback, memo } from 'react';\n\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 useSessionStatusConfig from './hooks/use-session-status-config';\nimport { renderSettings } from './session-status-constants';\nimport * as Styled from './session-status-styled';\n\nconst ICON_SIZE = 64;\nconst LARGE_ICON_SIZE = 75;\n\nconst SessionStatus = ({\n completedSessions,\n nextSessionStartTime,\n studentName,\n teacherName,\n isStudentNoShow = false,\n isTutorNoShow = false,\n isTrialDone = false,\n isOnlyTrialDone = false,\n onRescheduleClick,\n}: ISessionStatusProps) => {\n const config = useSessionStatusConfig({\n completedSessions,\n nextSessionStartTime,\n studentName,\n teacherName,\n isStudentNoShow,\n isTutorNoShow,\n isTrialDone,\n isOnlyTrialDone,\n onRescheduleClick,\n });\n\n const renderIcon = useCallback((section: ISectionConfig) => {\n if (section.icon) {\n return <Image src={section.icon} width={ICON_SIZE} height={ICON_SIZE} />;\n }\n\n if (section.lottie) {\n const size = section.isLargeIcon ? LARGE_ICON_SIZE : ICON_SIZE;\n\n return (\n <Styled.LottieWrapper $isLargeLottie={!!section.isLargeIcon}>\n <LottieAnimation\n src={section.lottie}\n settings={renderSettings}\n width={size}\n height={size}\n />\n </Styled.LottieWrapper>\n );\n }\n\n return null;\n }, []);\n\n const renderContent = useCallback(\n (section: ISectionConfig) => (\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 <Text\n $renderAs=\"ub2\"\n $renderOnMobileAs=\"ub3\"\n $color={section.descriptionColor ?? 'WHITE_T_60'}\n >\n {section.description}\n </Text>\n </>\n )}\n\n {section.action && (\n <>\n <Separator heightX={0.75} />\n <FlexView $width=\"fit-content\">\n <TextButton\n sizeOnMobile=\"small\"\n label={section.action.label}\n color=\"WHITE_1\"\n onClick={section.action.onClick}\n />\n </FlexView>\n </>\n )}\n </Styled.ContentWrapper>\n ),\n [],\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>{renderIcon(section)}</FlexView>\n {renderContent(section)}\n </FlexView>\n ),\n [renderIcon, renderContent],\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":["ICON_SIZE","LARGE_ICON_SIZE","SessionStatus","completedSessions","nextSessionStartTime","studentName","teacherName","isStudentNoShow","isTutorNoShow","isTrialDone","isOnlyTrialDone","onRescheduleClick","config","useSessionStatusConfig","renderIcon","useCallback","section","jsx","Image","size","Styled.LottieWrapper","LottieAnimation","renderSettings","renderContent","jsxs","Styled.ContentWrapper","Text","Fragment","Separator","Styled.SubTitle","FlexView","TextButton","renderSection","SessionStatus$1","memo"],"mappings":"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"}
|
|
@@ -1,53 +1,59 @@
|
|
|
1
|
-
import { GIF as e } from "
|
|
2
|
-
import { ESummaryType as t } from "
|
|
3
|
-
const
|
|
1
|
+
import { GIF as e } from "../../../../assets/gif/gif.js";
|
|
2
|
+
import { ESummaryType as t } from "../../parent-dashboard-types.js";
|
|
3
|
+
const r = [
|
|
4
4
|
{
|
|
5
5
|
title: "introduction & goals",
|
|
6
6
|
description: "Get to know your tutor and discuss your goals and expectations",
|
|
7
|
-
|
|
7
|
+
bgImageSrc: e.YOUR_GOALS_GRID_BG,
|
|
8
|
+
bgImageSrcMobile: e.YOUR_GOALS_GRID_BG_MOBILE,
|
|
8
9
|
textBG: "ORANGE_6",
|
|
9
10
|
ctaLabel: "View Profile"
|
|
10
11
|
},
|
|
11
12
|
{
|
|
12
13
|
title: "interactive sessions",
|
|
13
14
|
description: "Watch your child learn concepts and tackle problems with their tutorʼs guidance.",
|
|
14
|
-
|
|
15
|
+
bgImageSrc: e.LEARNING_SESSION_GRID_BG,
|
|
16
|
+
bgImageSrcMobile: e.LEARNING_SESSION_GRID_BG_MOBILE,
|
|
15
17
|
textBG: "YELLOW_6",
|
|
16
18
|
ctaLabel: "View Insights"
|
|
17
19
|
},
|
|
18
20
|
{
|
|
19
21
|
title: "way forward",
|
|
20
22
|
description: "Get insights on your child’s learning and plan the journey ahead",
|
|
21
|
-
|
|
23
|
+
bgImageSrc: e.WAY_FORWARD_GRID_BG,
|
|
24
|
+
bgImageSrcMobile: e.WAY_FORWARD_GRID_BG_MOBILE,
|
|
22
25
|
textBG: "GREEN_6",
|
|
23
26
|
ctaLabel: "View Learning Plan"
|
|
24
27
|
}
|
|
25
|
-
],
|
|
28
|
+
], _ = [
|
|
26
29
|
{
|
|
27
30
|
title: "created student profile",
|
|
28
31
|
type: t.STUDENT_PROFILE,
|
|
29
|
-
|
|
32
|
+
bgImageSrc: e.YOUR_GOALS_GRID_BG,
|
|
33
|
+
bgImageSrcMobile: e.YOUR_GOALS_GRID_BG_MOBILE,
|
|
30
34
|
textBG: "ORANGE_6",
|
|
31
35
|
ctaLabel: "View Profile"
|
|
32
36
|
},
|
|
33
37
|
{
|
|
34
38
|
title: "Shared Learning insights",
|
|
35
39
|
type: t.INSIGHTS,
|
|
36
|
-
|
|
40
|
+
bgImageSrc: e.LEARNING_SESSION_GRID_BG,
|
|
41
|
+
bgImageSrcMobile: e.LEARNING_SESSION_GRID_BG_MOBILE,
|
|
37
42
|
textBG: "YELLOW_6",
|
|
38
43
|
ctaLabel: "View Insights"
|
|
39
44
|
},
|
|
40
45
|
{
|
|
41
46
|
title: "Created learning plan",
|
|
42
47
|
description: "Get insights on your child’s learning and plan the journey ahead",
|
|
43
|
-
|
|
48
|
+
bgImageSrc: e.WAY_FORWARD_GRID_BG,
|
|
49
|
+
bgImageSrcMobile: e.WAY_FORWARD_GRID_BG_MOBILE,
|
|
44
50
|
textBG: "GREEN_6",
|
|
45
51
|
ctaLabel: "View Learning Plan",
|
|
46
52
|
type: t.LEARNING_PLAN
|
|
47
53
|
}
|
|
48
54
|
];
|
|
49
55
|
export {
|
|
50
|
-
|
|
51
|
-
|
|
56
|
+
_ as sessionSummaryAfterDemo,
|
|
57
|
+
r as sessionSummaryData
|
|
52
58
|
};
|
|
53
59
|
//# sourceMappingURL=session-summary-constants.js.map
|