@cuemath/leap 3.3.32 → 3.3.33-m
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/line-icons/icons/chevron-right.js.map +1 -1
- package/dist/features/auth/pla-signup/pla-analytics-events.js +2 -4
- 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 +34 -43
- 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 +101 -140
- package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
- package/dist/features/chapters-v2/utils/index.js +16 -20
- 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 +21 -20
- 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/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 +0 -400
- package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +1 -1
- package/dist/features/milestone/constants.js +15 -28
- 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 +16 -23
- package/dist/features/milestone/create/comps/test-type-step/test-type-utils.js.map +1 -1
- package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js +22 -28
- package/dist/features/parent-dashboard/comps/pla-first-session-introduction/pla-first-session-introduction.js.map +1 -1
- 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 +46 -48
- package/dist/features/parent-dashboard/hooks/use-parent-home-data.js.map +1 -1
- package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-styled.js +12 -0
- package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary-styled.js.map +1 -0
- package/dist/features/parent-dashboard/modals/student-profile-summary/student-profile-summary.js +17 -16
- 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 +8 -4
- 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/parent-dashboard-constants.js +4 -45
- 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 +174 -197
- package/dist/features/parent-dashboard/parent-dashboard-view.js.map +1 -1
- package/dist/features/stickers/sticker-selector/hooks/use-handle-sticker-send.js +36 -0
- package/dist/features/stickers/sticker-selector/hooks/use-handle-sticker-send.js.map +1 -0
- package/dist/features/stickers/sticker-selector/hooks/use-stickers-journey/use-stickers-journey.js +72 -0
- package/dist/features/stickers/sticker-selector/hooks/use-stickers-journey/use-stickers-journey.js.map +1 -0
- package/dist/features/stickers/sticker-selector/sticker-selector.js +58 -57
- package/dist/features/stickers/sticker-selector/sticker-selector.js.map +1 -1
- package/dist/features/stickers/stickers-effects/comps/sticker-with-fallback.js +34 -0
- package/dist/features/stickers/stickers-effects/comps/sticker-with-fallback.js.map +1 -0
- package/dist/features/stickers/stickers-effects/constants.js +26 -0
- package/dist/features/stickers/stickers-effects/constants.js.map +1 -0
- package/dist/features/stickers/stickers-effects/context/sticker-provider.js +28 -0
- package/dist/features/stickers/stickers-effects/context/sticker-provider.js.map +1 -0
- package/dist/features/stickers/stickers-effects/hooks/use-stickers.js +12 -0
- package/dist/features/stickers/stickers-effects/hooks/use-stickers.js.map +1 -0
- package/dist/features/stickers/stickers-effects/stickers-effects-helper.js.map +1 -1
- package/dist/features/stickers/stickers-effects/stickers-effects-styled.js +32 -17
- package/dist/features/stickers/stickers-effects/stickers-effects-styled.js.map +1 -1
- package/dist/features/stickers/stickers-effects/stickers-effects-types.js +6 -0
- package/dist/features/stickers/stickers-effects/stickers-effects-types.js.map +1 -0
- package/dist/features/stickers/stickers-effects/stickers-effects.js +40 -56
- 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/{parent-dashboard/comps → trial-session/comps/pla}/next-steps/next-steps-constants.js +1 -1
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-constants.js.map +1 -0
- package/dist/features/{parent-dashboard/comps → trial-session/comps/pla}/next-steps/next-steps-styled.js +1 -1
- package/dist/features/trial-session/comps/pla/next-steps/next-steps-styled.js.map +1 -0
- package/dist/features/{parent-dashboard/comps → trial-session/comps/pla}/next-steps/next-steps.js +5 -5
- package/dist/features/trial-session/comps/pla/next-steps/next-steps.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js +29 -0
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js.map +1 -0
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js +132 -0
- package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.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/{parent-dashboard/comps → trial-session/comps/pla}/session-status/session-status-styled.js +2 -2
- 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 +127 -0
- package/dist/features/trial-session/comps/pla/session-status/session-status.js.map +1 -0
- package/dist/features/{parent-dashboard/comps → trial-session/comps/pla}/session-summary/session-summary-constants.js +2 -2
- 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 +53 -0
- package/dist/features/trial-session/comps/pla/session-summary/session-summary.js.map +1 -0
- package/dist/features/{parent-dashboard/comps → trial-session/comps/pla}/session-summary/summary-card/summary-card-styled.js +1 -1
- 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.map +1 -0
- package/dist/features/{parent-dashboard/comps → trial-session/comps/pla}/upcoming-sessions/upcoming-sessions-styled.js +1 -1
- 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.map +1 -0
- package/dist/features/{parent-dashboard/comps → trial-session/comps/pla}/upcoming-sessions/upcoming-sessions.js +14 -14
- package/dist/features/trial-session/comps/pla/upcoming-sessions/upcoming-sessions.js.map +1 -0
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js +44 -43
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +1 -1
- package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js +61 -60
- package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.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 +73 -71
- package/dist/features/trial-session/trial-session-view.js.map +1 -1
- package/dist/features/ui/modals/modal-styled.js +13 -45
- package/dist/features/ui/modals/modal-styled.js.map +1 -1
- package/dist/features/ui/modals/modal.js +31 -31
- package/dist/features/ui/modals/modal.js.map +1 -1
- package/dist/index.d.ts +144 -81
- package/dist/index.js +301 -292
- 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/package.json +1 -1
- package/dist/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.js +0 -86
- package/dist/features/journey/hooks/use-chapter-page-journey/use-download-block-journey.js.map +0 -1
- package/dist/features/journey/hooks/use-chapter-page-journey/use-download-node-journey.js +0 -140
- package/dist/features/journey/hooks/use-chapter-page-journey/use-download-node-journey.js.map +0 -1
- package/dist/features/parent-dashboard/api/cancel-subscription.js +0 -9
- package/dist/features/parent-dashboard/api/cancel-subscription.js.map +0 -1
- package/dist/features/parent-dashboard/comps/billing-information/billing-information-styled.js +0 -20
- package/dist/features/parent-dashboard/comps/billing-information/billing-information-styled.js.map +0 -1
- package/dist/features/parent-dashboard/comps/billing-information/billing-information.js +0 -74
- package/dist/features/parent-dashboard/comps/billing-information/billing-information.js.map +0 -1
- package/dist/features/parent-dashboard/comps/next-steps/next-steps-constants.js.map +0 -1
- package/dist/features/parent-dashboard/comps/next-steps/next-steps-styled.js.map +0 -1
- package/dist/features/parent-dashboard/comps/next-steps/next-steps.js.map +0 -1
- package/dist/features/parent-dashboard/comps/session-status/hooks/use-countdown.js +0 -34
- package/dist/features/parent-dashboard/comps/session-status/hooks/use-countdown.js.map +0 -1
- package/dist/features/parent-dashboard/comps/session-status/hooks/use-session-status-config.js +0 -137
- package/dist/features/parent-dashboard/comps/session-status/hooks/use-session-status-config.js.map +0 -1
- package/dist/features/parent-dashboard/comps/session-status/session-status-constants.js +0 -20
- package/dist/features/parent-dashboard/comps/session-status/session-status-constants.js.map +0 -1
- package/dist/features/parent-dashboard/comps/session-status/session-status-helpers.js +0 -19
- package/dist/features/parent-dashboard/comps/session-status/session-status-helpers.js.map +0 -1
- package/dist/features/parent-dashboard/comps/session-status/session-status-styled.js.map +0 -1
- package/dist/features/parent-dashboard/comps/session-status/session-status.js +0 -124
- package/dist/features/parent-dashboard/comps/session-status/session-status.js.map +0 -1
- package/dist/features/parent-dashboard/comps/session-summary/session-summary-constants.js.map +0 -1
- package/dist/features/parent-dashboard/comps/session-summary/session-summary.js +0 -53
- package/dist/features/parent-dashboard/comps/session-summary/session-summary.js.map +0 -1
- package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card-styled.js.map +0 -1
- package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card.js +0 -63
- package/dist/features/parent-dashboard/comps/session-summary/summary-card/summary-card.js.map +0 -1
- package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-constants.js.map +0 -1
- package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-styled.js.map +0 -1
- package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions-types.js.map +0 -1
- package/dist/features/parent-dashboard/comps/upcoming-sessions/upcoming-sessions.js.map +0 -1
- package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription-constants.js +0 -21
- package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription-constants.js.map +0 -1
- package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription.js +0 -85
- package/dist/features/parent-dashboard/modals/cancel-subscription/cancel-subscription.js.map +0 -1
- package/dist/features/parent-dashboard/modals/cancellation-confirmation/cancellation-confirmation.js +0 -23
- package/dist/features/parent-dashboard/modals/cancellation-confirmation/cancellation-confirmation.js.map +0 -1
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-constant.js +0 -55
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-constant.js.map +0 -1
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-styled.js +0 -71
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason-styled.js.map +0 -1
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason.js +0 -119
- package/dist/features/parent-dashboard/modals/cancellation-reason/cancellation-reason.js.map +0 -1
- package/dist/features/parent-dashboard/modals/hooks/use-pla-model-handlers.js +0 -58
- package/dist/features/parent-dashboard/modals/hooks/use-pla-model-handlers.js.map +0 -1
- package/dist/features/parent-dashboard/modals/view-payment-method/view-payment-method.js +0 -76
- package/dist/features/parent-dashboard/modals/view-payment-method/view-payment-method.js.map +0 -1
- /package/dist/features/{parent-dashboard/comps → trial-session/comps/pla}/upcoming-sessions/upcoming-sessions-constants.js +0 -0
- /package/dist/features/{parent-dashboard/comps → trial-session/comps/pla}/upcoming-sessions/upcoming-sessions-types.js +0 -0
|
@@ -1,37 +1,52 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import t, { css as o } from "styled-components";
|
|
2
|
+
import p from "../../ui/layout/flex-view.js";
|
|
3
|
+
import { effectAnimations as $ } from "./stickers-effects-animations.js";
|
|
4
|
+
const v = t(p)`
|
|
5
|
+
position: fixed;
|
|
6
|
+
top: 0;
|
|
7
|
+
left: 0;
|
|
8
|
+
width: 100vw;
|
|
9
|
+
height: 100vh;
|
|
10
|
+
z-index: 999;
|
|
11
|
+
pointer-events: none;
|
|
12
|
+
user-select: none;
|
|
13
|
+
|
|
14
|
+
& * {
|
|
15
|
+
pointer-events: none;
|
|
16
|
+
}
|
|
17
|
+
`, l = t.div`
|
|
4
18
|
position: relative;
|
|
5
19
|
width: 100vw;
|
|
6
20
|
height: 100vh;
|
|
7
21
|
background: transparent;
|
|
8
22
|
pointer-events: none;
|
|
9
|
-
`,
|
|
23
|
+
`, m = t.div`
|
|
10
24
|
position: absolute;
|
|
11
25
|
z-index: 10;
|
|
12
26
|
|
|
13
|
-
left: ${({ x:
|
|
14
|
-
top: ${({ y:
|
|
15
|
-
width: ${({ size:
|
|
16
|
-
height: ${({ size:
|
|
17
|
-
font-size: ${({ size:
|
|
27
|
+
left: ${({ x: e }) => `${e}%`};
|
|
28
|
+
top: ${({ y: e }) => `${e}%`};
|
|
29
|
+
width: ${({ size: e }) => `${e}px`};
|
|
30
|
+
height: ${({ size: e }) => `${e}px`};
|
|
31
|
+
font-size: ${({ size: e }) => `${e}px`};
|
|
18
32
|
|
|
19
33
|
pointer-events: none;
|
|
20
34
|
visibility: hidden;
|
|
21
35
|
animation-fill-mode: both;
|
|
22
36
|
|
|
23
|
-
${({ effect:
|
|
24
|
-
${
|
|
25
|
-
animation-delay: ${
|
|
37
|
+
${({ effect: e, duration: s, delay: r = 0, fromX: i, fromY: n }) => o`
|
|
38
|
+
${$[e](s)}
|
|
39
|
+
animation-delay: ${r}ms;
|
|
26
40
|
|
|
27
|
-
${
|
|
28
|
-
--from-x: ${
|
|
29
|
-
--from-y: ${
|
|
41
|
+
${i && n && o`
|
|
42
|
+
--from-x: ${i};
|
|
43
|
+
--from-y: ${n};
|
|
30
44
|
`}
|
|
31
45
|
`}
|
|
32
46
|
`;
|
|
33
47
|
export {
|
|
34
|
-
|
|
35
|
-
|
|
48
|
+
l as Container,
|
|
49
|
+
m as Sticker,
|
|
50
|
+
v as StickersWrapper
|
|
36
51
|
};
|
|
37
52
|
//# sourceMappingURL=stickers-effects-styled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stickers-effects-styled.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-effects-styled.ts"],"sourcesContent":["import type { IStickersProps } from './stickers-effects-types';\n\nimport styled, { css } from 'styled-components';\n\nimport { effectAnimations } from './stickers-effects-animations';\n\nexport const Container = styled.div`\n position: relative;\n width: 100vw;\n height: 100vh;\n background: transparent;\n pointer-events: none;\n`;\n\nexport const Sticker = styled.div<{\n effect: IStickersProps['effect'];\n duration: number;\n delay?: number;\n fromX?: string;\n fromY?: string;\n x: number;\n y: number;\n size: number;\n}>`\n position: absolute;\n z-index: 10;\n\n left: ${({ x }) => `${x}%`};\n top: ${({ y }) => `${y}%`};\n width: ${({ size }) => `${size}px`};\n height: ${({ size }) => `${size}px`};\n font-size: ${({ size }) => `${size}px`};\n\n pointer-events: none;\n visibility: hidden;\n animation-fill-mode: both;\n\n ${({ effect, duration, delay = 0, fromX, fromY }) => css`\n ${effectAnimations[effect](duration)}\n animation-delay: ${delay}ms;\n\n ${fromX &&\n fromY &&\n css`\n --from-x: ${fromX};\n --from-y: ${fromY};\n `}\n `}\n`;\n"],"names":["
|
|
1
|
+
{"version":3,"file":"stickers-effects-styled.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-effects-styled.ts"],"sourcesContent":["import type { IStickersProps } from './stickers-effects-types';\n\nimport styled, { css } from 'styled-components';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport { effectAnimations } from './stickers-effects-animations';\n\nexport const StickersWrapper = styled(FlexView)`\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n z-index: 999;\n pointer-events: none;\n user-select: none;\n\n & * {\n pointer-events: none;\n }\n`;\n\nexport const Container = styled.div`\n position: relative;\n width: 100vw;\n height: 100vh;\n background: transparent;\n pointer-events: none;\n`;\n\nexport const Sticker = styled.div<{\n effect: IStickersProps['effect'];\n duration: number;\n delay?: number;\n fromX?: string;\n fromY?: string;\n x: number;\n y: number;\n size: number;\n}>`\n position: absolute;\n z-index: 10;\n\n left: ${({ x }) => `${x}%`};\n top: ${({ y }) => `${y}%`};\n width: ${({ size }) => `${size}px`};\n height: ${({ size }) => `${size}px`};\n font-size: ${({ size }) => `${size}px`};\n\n pointer-events: none;\n visibility: hidden;\n animation-fill-mode: both;\n\n ${({ effect, duration, delay = 0, fromX, fromY }) => css`\n ${effectAnimations[effect](duration)}\n animation-delay: ${delay}ms;\n\n ${fromX &&\n fromY &&\n css`\n --from-x: ${fromX};\n --from-y: ${fromY};\n `}\n `}\n`;\n"],"names":["StickersWrapper","styled","FlexView","Container","Sticker","x","y","size","effect","duration","delay","fromX","fromY","css","effectAnimations"],"mappings":";;;AAOa,MAAAA,IAAkBC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAejCC,IAAYF,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQnBG,IAAUH,EAAO;AAAA;AAAA;AAAA;AAAA,UAapB,CAAC,EAAE,GAAAI,EAAQ,MAAA,GAAGA,CAAC,GAAG;AAAA,SACnB,CAAC,EAAE,GAAAC,EAAQ,MAAA,GAAGA,CAAC,GAAG;AAAA,WAChB,CAAC,EAAE,MAAAC,EAAW,MAAA,GAAGA,CAAI,IAAI;AAAA,YACxB,CAAC,EAAE,MAAAA,EAAW,MAAA,GAAGA,CAAI,IAAI;AAAA,eACtB,CAAC,EAAE,MAAAA,EAAW,MAAA,GAAGA,CAAI,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMpC,CAAC,EAAE,QAAAC,GAAQ,UAAAC,GAAU,OAAAC,IAAQ,GAAG,OAAAC,GAAO,OAAAC,EAAY,MAAAC;AAAA,MACjDC,EAAiBN,CAAM,EAAEC,CAAQ,CAAC;AAAA,uBACjBC,CAAK;AAAA;AAAA,MAEtBC,KACFC,KACAC;AAAA,kBACcF,CAAK;AAAA,kBACLC,CAAK;AAAA,KAClB;AAAA,GACF;AAAA;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stickers-effects-types.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-effects-types.ts"],"sourcesContent":["import type { IStickerData, TStickerAnimationEffects, TStickersPayload } from '../stickers-types';\n\nimport { createContext } from 'react';\n\nexport type TStickerAnimationData = {\n id: string;\n sticker: string;\n lottie?: string;\n x: number;\n y: number;\n size: number;\n fromX?: string;\n fromY?: string;\n};\nexport interface IStickersProps {\n stickerId: IStickerData['id'];\n effect: TStickerAnimationEffects;\n count: number;\n duration: number;\n}\n\nexport interface IGenerateStickersData extends Omit<IStickersProps, 'duration'> {\n minSize: number;\n maxSize: number;\n}\n\nexport interface StickersEffectProps {\n stickerId: string;\n effectType: TStickerAnimationEffects;\n duration?: number;\n onClose?: () => void;\n}\nexport interface StickersContextType {\n showSticker: (payload: TStickersPayload) => void;\n}\n\nexport const StickersContext = createContext<StickersContextType | undefined>(undefined);\n"],"names":["StickersContext","createContext"],"mappings":";AAoCa,MAAAA,IAAkBC,EAA+C,MAAS;"}
|
|
@@ -1,67 +1,51 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import { generateStickerData as
|
|
6
|
-
import { Container as z, Sticker as
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
E,
|
|
24
|
-
{
|
|
25
|
-
data: r,
|
|
26
|
-
width: o,
|
|
27
|
-
height: o,
|
|
28
|
-
settings: s,
|
|
29
|
-
onError: () => e(!0)
|
|
30
|
-
}
|
|
31
|
-
);
|
|
32
|
-
}), $ = ({ stickerId: t, effect: i, count: o, duration: r }) => {
|
|
33
|
-
const [f, c] = l([]);
|
|
34
|
-
return d(() => {
|
|
35
|
-
const e = y({
|
|
36
|
-
count: o,
|
|
37
|
-
effect: i,
|
|
38
|
-
stickerId: t,
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { memo as E, useState as T, useEffect as s } from "react";
|
|
3
|
+
import g from "./comps/sticker-with-fallback.js";
|
|
4
|
+
import { EFFECTS_MAP as x } from "./constants.js";
|
|
5
|
+
import { generateStickerData as D } from "./stickers-effects-helper.js";
|
|
6
|
+
import { StickersWrapper as y, Container as z, Sticker as F } from "./stickers-effects-styled.js";
|
|
7
|
+
const j = ({
|
|
8
|
+
stickerId: c,
|
|
9
|
+
effectType: u,
|
|
10
|
+
duration: n = 3500,
|
|
11
|
+
onClose: i
|
|
12
|
+
}) => {
|
|
13
|
+
const [f, m] = T([]), t = x[u];
|
|
14
|
+
return s(() => {
|
|
15
|
+
if (!i) return;
|
|
16
|
+
const e = setTimeout(i, n);
|
|
17
|
+
return () => clearTimeout(e);
|
|
18
|
+
}, [i, n]), s(() => {
|
|
19
|
+
const e = D({
|
|
20
|
+
count: t.count,
|
|
21
|
+
effect: t.effect,
|
|
22
|
+
stickerId: c,
|
|
39
23
|
minSize: 48,
|
|
40
24
|
maxSize: 72
|
|
41
25
|
});
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
return () => clearTimeout(
|
|
45
|
-
}, [
|
|
46
|
-
const { id:
|
|
47
|
-
return /* @__PURE__ */
|
|
48
|
-
|
|
26
|
+
m(e);
|
|
27
|
+
const o = setTimeout(() => m([]), t.duration);
|
|
28
|
+
return () => clearTimeout(o);
|
|
29
|
+
}, [t, c]), f.length === 0 ? null : /* @__PURE__ */ r(y, { $alignItems: "top", $justifyContent: "center", $inherit: !0, children: /* @__PURE__ */ r(z, { children: f.map((e, o) => {
|
|
30
|
+
const { id: l, sticker: p, lottie: S, x: k, y: d, size: a, fromX: h, fromY: $ } = e;
|
|
31
|
+
return /* @__PURE__ */ r(
|
|
32
|
+
F,
|
|
49
33
|
{
|
|
50
|
-
effect:
|
|
51
|
-
duration:
|
|
34
|
+
effect: t.effect,
|
|
35
|
+
duration: t.duration,
|
|
52
36
|
delay: 500,
|
|
53
|
-
fromX:
|
|
54
|
-
fromY:
|
|
37
|
+
fromX: h,
|
|
38
|
+
fromY: $,
|
|
55
39
|
x: k,
|
|
56
|
-
y:
|
|
57
|
-
size:
|
|
58
|
-
children: /* @__PURE__ */
|
|
40
|
+
y: d,
|
|
41
|
+
size: a,
|
|
42
|
+
children: /* @__PURE__ */ r(g, { url: S, sticker: p, size: a })
|
|
59
43
|
},
|
|
60
|
-
`${
|
|
44
|
+
`${l}-${o}`
|
|
61
45
|
);
|
|
62
|
-
}) });
|
|
63
|
-
},
|
|
46
|
+
}) }) });
|
|
47
|
+
}, X = E(j);
|
|
64
48
|
export {
|
|
65
|
-
|
|
49
|
+
X as default
|
|
66
50
|
};
|
|
67
51
|
//# sourceMappingURL=stickers-effects.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stickers-effects.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-effects.tsx"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"stickers-effects.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-effects.tsx"],"sourcesContent":["import type { StickersEffectProps, TStickerAnimationData } from './stickers-effects-types';\n\nimport React, { memo, useEffect, useState } from 'react';\n\nimport StickerWithFallback from './comps/sticker-with-fallback';\nimport { EFFECTS_MAP } from './constants';\nimport { generateStickerData } from './stickers-effects-helper';\nimport * as Styled from './stickers-effects-styled';\n\nconst StickersEffect: React.FC<StickersEffectProps> = ({\n stickerId,\n effectType,\n duration = 3500,\n onClose,\n}) => {\n const [stickersData, setStickersData] = useState<ReturnType<typeof generateStickerData>>([]);\n\n const effectConfig = EFFECTS_MAP[effectType];\n\n useEffect(() => {\n if (!onClose) return;\n\n const timeout = setTimeout(onClose, duration);\n\n return () => clearTimeout(timeout);\n }, [onClose, duration]);\n\n useEffect(() => {\n const stickerData = generateStickerData({\n count: effectConfig.count,\n effect: effectConfig.effect,\n stickerId,\n minSize: 48,\n maxSize: 72,\n });\n\n setStickersData(stickerData);\n\n const timeout = setTimeout(() => setStickersData([]), effectConfig.duration);\n\n return () => clearTimeout(timeout);\n }, [effectConfig, stickerId]);\n\n if (stickersData.length === 0) return null;\n\n return (\n <Styled.StickersWrapper $alignItems=\"top\" $justifyContent=\"center\" $inherit>\n <Styled.Container>\n {stickersData.map((data: TStickerAnimationData, i) => {\n const { id, sticker, lottie, x, y, size, fromX, fromY } = data;\n\n return (\n <Styled.Sticker\n key={`${id}-${i}`}\n effect={effectConfig.effect}\n duration={effectConfig.duration}\n delay={500}\n fromX={fromX}\n fromY={fromY}\n x={x}\n y={y}\n size={size}\n >\n <StickerWithFallback url={lottie} sticker={sticker} size={size} />\n </Styled.Sticker>\n );\n })}\n </Styled.Container>\n </Styled.StickersWrapper>\n );\n};\n\nexport default memo(StickersEffect);\n"],"names":["StickersEffect","stickerId","effectType","duration","onClose","stickersData","setStickersData","useState","effectConfig","EFFECTS_MAP","useEffect","timeout","stickerData","generateStickerData","Styled.StickersWrapper","jsx","Styled.Container","data","i","id","sticker","lottie","x","y","size","fromX","fromY","Styled.Sticker","StickerWithFallback","StickersEffect$1","memo"],"mappings":";;;;;;AASA,MAAMA,IAAgD,CAAC;AAAA,EACrD,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,SAAAC;AACF,MAAM;AACJ,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAAiD,CAAE,CAAA,GAErFC,IAAeC,EAAYP,CAAU;AA0BvC,SAxBJQ,EAAU,MAAM;AACd,QAAI,CAACN,EAAS;AAER,UAAAO,IAAU,WAAWP,GAASD,CAAQ;AAErC,WAAA,MAAM,aAAaQ,CAAO;AAAA,EAAA,GAChC,CAACP,GAASD,CAAQ,CAAC,GAEtBO,EAAU,MAAM;AACd,UAAME,IAAcC,EAAoB;AAAA,MACtC,OAAOL,EAAa;AAAA,MACpB,QAAQA,EAAa;AAAA,MACrB,WAAAP;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,IAAA,CACV;AAED,IAAAK,EAAgBM,CAAW;AAErB,UAAAD,IAAU,WAAW,MAAML,EAAgB,CAAA,CAAE,GAAGE,EAAa,QAAQ;AAEpE,WAAA,MAAM,aAAaG,CAAO;AAAA,EAAA,GAChC,CAACH,GAAcP,CAAS,CAAC,GAExBI,EAAa,WAAW,IAAU,yBAGnCS,GAAA,EAAuB,aAAY,OAAM,iBAAgB,UAAS,UAAQ,IACzE,UAAA,gBAAAC,EAACC,GAAA,EACE,YAAa,IAAI,CAACC,GAA6BC,MAAM;AAC9C,UAAA,EAAE,IAAAC,GAAI,SAAAC,GAAS,QAAAC,GAAQ,GAAAC,GAAG,GAAAC,GAAG,MAAAC,GAAM,OAAAC,GAAO,OAAAC,EAAU,IAAAT;AAGxD,WAAA,gBAAAF;AAAA,MAACY;AAAAA,MAAA;AAAA,QAEC,QAAQnB,EAAa;AAAA,QACrB,UAAUA,EAAa;AAAA,QACvB,OAAO;AAAA,QACP,OAAAiB;AAAA,QACA,OAAAC;AAAA,QACA,GAAAJ;AAAA,QACA,GAAAC;AAAA,QACA,MAAAC;AAAA,QAEA,UAAC,gBAAAT,EAAAa,GAAA,EAAoB,KAAKP,GAAQ,SAAAD,GAAkB,MAAAI,GAAY;AAAA,MAAA;AAAA,MAV3D,GAAGL,CAAE,IAAID,CAAC;AAAA,IAAA;AAAA,EAWjB,CAEH,GACH,EACF,CAAA;AAEJ,GAEeW,IAAAC,EAAK9B,CAAc;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { startOfDay as s } from "../../../node_modules/date-fns/startOfDay.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { isAfter as n } from "../../../node_modules/date-fns/isAfter.js";
|
|
3
|
+
import { isBefore as i } from "../../../node_modules/date-fns/isBefore.js";
|
|
4
|
+
import { addDays as f } from "../../../node_modules/date-fns/addDays.js";
|
|
5
|
+
import { isToday as d } from "../../../node_modules/date-fns/isToday.js";
|
|
6
6
|
import { formatDate as m } from "../../../node_modules/date-fns/format.js";
|
|
7
7
|
const u = (e) => {
|
|
8
|
-
const o = /* @__PURE__ */ new Date(), t = new Date(e), r =
|
|
9
|
-
return
|
|
8
|
+
const o = /* @__PURE__ */ new Date(), t = new Date(e), r = f(s(o), 7);
|
|
9
|
+
return d(t) ? `Today, ${m(t, "hh:mm a")}` : n(t, o) && i(t, r) ? m(t, "eee, hh:mm a") : m(t, "MMM dd, hh:mm a");
|
|
10
10
|
}, M = (e, o, t) => {
|
|
11
11
|
const r = m(e * 1e3, "hh:mm a"), a = m((e + o + t) * 1e3, "hh:mm a");
|
|
12
12
|
return `${r} - ${a}`;
|
|
@@ -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 @@
|
|
|
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;"}
|
package/dist/features/{parent-dashboard/comps → trial-session/comps/pla}/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/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$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;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useState as a, useRef as l, useCallback as s, useEffect as d } from "react";
|
|
2
|
+
import { COUNTDOWN_INTERVAL as T, COUNTDOWN_THRESHOLD as p } from "../session-status-constants.js";
|
|
3
|
+
import { formatTimeRemaining as I } from "../session-status-helpers.js";
|
|
4
|
+
import { differenceInSeconds as R } from "../../../../../../node_modules/date-fns/differenceInSeconds.js";
|
|
5
|
+
import { fromUnixTime as w } from "../../../../../../node_modules/date-fns/fromUnixTime.js";
|
|
6
|
+
const E = (r, c, f) => {
|
|
7
|
+
const [m, t] = a(""), n = l(null), e = s(() => {
|
|
8
|
+
n.current && (clearInterval(n.current), n.current = null);
|
|
9
|
+
}, []);
|
|
10
|
+
return d(() => {
|
|
11
|
+
if (!r || c || f) {
|
|
12
|
+
e(), t("");
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const i = w(r), u = () => {
|
|
16
|
+
const o = R(i, /* @__PURE__ */ new Date());
|
|
17
|
+
if (o <= 0 || o > p) {
|
|
18
|
+
t(""), e();
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
t(I(o));
|
|
22
|
+
};
|
|
23
|
+
return u(), n.current = setInterval(u, T), e;
|
|
24
|
+
}, [r, c, f, e]), m;
|
|
25
|
+
};
|
|
26
|
+
export {
|
|
27
|
+
E as default
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=use-session-countdown.js.map
|
package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-session-countdown.js","sources":["../../../../../../../src/features/trial-session/comps/pla/session-status/hooks/use-session-countdown.ts"],"sourcesContent":["import { differenceInSeconds, fromUnixTime } from 'date-fns';\nimport { useState, useRef, useCallback, useEffect } from 'react';\n\nimport { COUNTDOWN_INTERVAL, COUNTDOWN_THRESHOLD } from '../session-status-constants';\nimport { formatTimeRemaining } from '../session-status-helpers';\n\nconst useSessionCountdown = (\n nextSessionStartTime: number | null,\n isFirstSessionCompleted: boolean,\n isNoShowStatus: boolean,\n) => {\n const [remainingTime, setRemainingTime] = useState('');\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\n\n const clearCountdownInterval = useCallback(() => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n\n useEffect(() => {\n if (!nextSessionStartTime || isFirstSessionCompleted || isNoShowStatus) {\n clearCountdownInterval();\n setRemainingTime('');\n\n return;\n }\n\n const startTime = fromUnixTime(nextSessionStartTime);\n\n const updateCountdown = () => {\n const now = new Date();\n const diffInSeconds = differenceInSeconds(startTime, 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 updateCountdown();\n intervalRef.current = setInterval(updateCountdown, COUNTDOWN_INTERVAL);\n\n return clearCountdownInterval;\n }, [nextSessionStartTime, isFirstSessionCompleted, isNoShowStatus, clearCountdownInterval]);\n\n return remainingTime;\n};\n\nexport default useSessionCountdown;\n"],"names":["useSessionCountdown","nextSessionStartTime","isFirstSessionCompleted","isNoShowStatus","remainingTime","setRemainingTime","useState","intervalRef","useRef","clearCountdownInterval","useCallback","useEffect","startTime","fromUnixTime","updateCountdown","diffInSeconds","differenceInSeconds","COUNTDOWN_THRESHOLD","formatTimeRemaining","COUNTDOWN_INTERVAL"],"mappings":";;;;;AAMA,MAAMA,IAAsB,CAC1BC,GACAC,GACAC,MACG;AACH,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAS,EAAE,GAC/CC,IAAcC,EAA8B,IAAI,GAEhDC,IAAyBC,EAAY,MAAM;AAC/C,IAAIH,EAAY,YACd,cAAcA,EAAY,OAAO,GACjCA,EAAY,UAAU;AAAA,EAE1B,GAAG,CAAE,CAAA;AAEL,SAAAI,EAAU,MAAM;AACV,QAAA,CAACV,KAAwBC,KAA2BC,GAAgB;AAC/C,MAAAM,KACvBJ,EAAiB,EAAE;AAEnB;AAAA,IACF;AAEM,UAAAO,IAAYC,EAAaZ,CAAoB,GAE7Ca,IAAkB,MAAM;AAEtB,YAAAC,IAAgBC,EAAoBJ,uBAD1B,MACwC;AAEpD,UAAAG,KAAiB,KAAKA,IAAgBE,GAAqB;AAC7D,QAAAZ,EAAiB,EAAE,GACII;AAEvB;AAAA,MACF;AAEiB,MAAAJ,EAAAa,EAAoBH,CAAa,CAAC;AAAA,IAAA;AAGrC,WAAAD,KACJP,EAAA,UAAU,YAAYO,GAAiBK,CAAkB,GAE9DV;AAAA,KACN,CAACR,GAAsBC,GAAyBC,GAAgBM,CAAsB,CAAC,GAEnFL;AACT;"}
|
package/dist/features/trial-session/comps/pla/session-status/hooks/use-session-status-config.js
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { h } from "../../../../../../node_modules/humanize-plus/dist/humanize.js";
|
|
2
|
+
import { useCallback as o, useMemo as T } from "react";
|
|
3
|
+
import { ILLUSTRATIONS as r } from "../../../../../../assets/illustrations/illustrations.js";
|
|
4
|
+
import { LOTTIE as c } from "../../../../../../assets/lottie/lottie.js";
|
|
5
|
+
import { CUEMATH_APP_URL as d } from "../../../../../../constants/config.js";
|
|
6
|
+
import { EClassStatus as O } from "../../../../../parent-dashboard/parent-dashboard-types.js";
|
|
7
|
+
const P = ({
|
|
8
|
+
status: s,
|
|
9
|
+
completedSessions: i,
|
|
10
|
+
formattedSessionStart: e,
|
|
11
|
+
remainingTime: b,
|
|
12
|
+
isTeacherAssigned: t,
|
|
13
|
+
isFirstSessionCompleted: y,
|
|
14
|
+
isNoShowStatus: E,
|
|
15
|
+
teacherName: a,
|
|
16
|
+
studentName: S,
|
|
17
|
+
onRescheduleClick: u
|
|
18
|
+
}) => {
|
|
19
|
+
const p = o(() => {
|
|
20
|
+
window.open(d, "_blank");
|
|
21
|
+
}, []), n = o(() => {
|
|
22
|
+
u == null || u();
|
|
23
|
+
}, [u]), C = o(() => {
|
|
24
|
+
const l = s === O.S_NO_SHOW;
|
|
25
|
+
return {
|
|
26
|
+
topSection: {
|
|
27
|
+
icon: r.CALENDAR_CROSS_ORANGE,
|
|
28
|
+
title: "Session Cancelled",
|
|
29
|
+
titleColor: "ORANGE_4",
|
|
30
|
+
titleStyle: "ac3",
|
|
31
|
+
titleTabletStyle: "ac4",
|
|
32
|
+
subtitleStyle: "ab1",
|
|
33
|
+
subtitleTabletStyle: "ab2",
|
|
34
|
+
subtitle: e,
|
|
35
|
+
description: l ? "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.",
|
|
36
|
+
descriptionColor: "WHITE_1",
|
|
37
|
+
subtitleLineThrough: !0
|
|
38
|
+
},
|
|
39
|
+
bottomSection: {
|
|
40
|
+
icon: r.PLATFORM_PURPLE,
|
|
41
|
+
title: "Please Reschedule",
|
|
42
|
+
titleColor: "PURPLE_4",
|
|
43
|
+
titleStyle: "ac3",
|
|
44
|
+
titleTabletStyle: "ac4",
|
|
45
|
+
subtitleStyle: "ub1",
|
|
46
|
+
subtitleTabletStyle: "ub2",
|
|
47
|
+
subtitle: l ? "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.",
|
|
48
|
+
action: {
|
|
49
|
+
label: "Reschedule",
|
|
50
|
+
onClick: n
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}, [s, e, n]), _ = o(() => {
|
|
55
|
+
const l = i === 1 ? "First" : i.toString();
|
|
56
|
+
return {
|
|
57
|
+
topSection: {
|
|
58
|
+
icon: r.BOOK_CHECKED_GREEN,
|
|
59
|
+
title: `${l} ${h.pluralize(i, "session")} Completed!`,
|
|
60
|
+
titleColor: "GREEN_4",
|
|
61
|
+
titleStyle: "ac3",
|
|
62
|
+
titleTabletStyle: "ac4",
|
|
63
|
+
align: "center"
|
|
64
|
+
},
|
|
65
|
+
bottomSection: {
|
|
66
|
+
lottie: c.CALENDAR_HOUR_GLASS_ORANGE,
|
|
67
|
+
title: "Next Session",
|
|
68
|
+
titleColor: "ORANGE_4",
|
|
69
|
+
titleStyle: "ac3",
|
|
70
|
+
titleTabletStyle: "ac4",
|
|
71
|
+
subtitleStyle: "ab1",
|
|
72
|
+
subtitleTabletStyle: "ab2",
|
|
73
|
+
subtitle: `${e}
|
|
74
|
+
with ${a}`,
|
|
75
|
+
action: {
|
|
76
|
+
label: "Reschedule on the Cuemath app",
|
|
77
|
+
onClick: p
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}, [i, e, a, p]), f = o(() => {
|
|
82
|
+
const l = b || "SESSION SCHEDULED", R = !!b;
|
|
83
|
+
return {
|
|
84
|
+
topSection: {
|
|
85
|
+
icon: r.CALENDAR_CHECK_GREEN,
|
|
86
|
+
title: l,
|
|
87
|
+
titleColor: "GREEN_4",
|
|
88
|
+
titleStyle: R ? "ub2" : "ac3",
|
|
89
|
+
titleTabletStyle: R ? "ub3" : "ac4",
|
|
90
|
+
subtitle: e,
|
|
91
|
+
subtitleStyle: "ab1",
|
|
92
|
+
subtitleTabletStyle: "ab2",
|
|
93
|
+
action: {
|
|
94
|
+
label: "Reschedule",
|
|
95
|
+
onClick: n
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
bottomSection: {
|
|
99
|
+
align: "center",
|
|
100
|
+
lottie: t ? c.TEACHER_FOUND : c.TEACHER_SEARCH,
|
|
101
|
+
title: t ? "Tutor Assigned!" : "",
|
|
102
|
+
titleColor: t ? "ORANGE_4" : "WHITE_1",
|
|
103
|
+
titleStyle: t ? "ac3" : "ab2",
|
|
104
|
+
titleTabletStyle: t ? "ac4" : "ab3",
|
|
105
|
+
subtitleStyle: "ub1",
|
|
106
|
+
subtitleTabletStyle: "ub2",
|
|
107
|
+
subtitle: t ? `From over 3000 expert tutors, we selected ${a} as the perfect match for ${S}!` : "Finding the perfect tutor for your child",
|
|
108
|
+
description: t ? "" : "This typically takes 24-48 hours. We'll notify you via email.",
|
|
109
|
+
maxWidth: t ? 368 : 383,
|
|
110
|
+
isLargeIcon: !0
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
}, [
|
|
114
|
+
b,
|
|
115
|
+
e,
|
|
116
|
+
t,
|
|
117
|
+
a,
|
|
118
|
+
S,
|
|
119
|
+
n
|
|
120
|
+
]);
|
|
121
|
+
return T(() => E ? C() : y ? _() : f(), [
|
|
122
|
+
E,
|
|
123
|
+
y,
|
|
124
|
+
C,
|
|
125
|
+
_,
|
|
126
|
+
f
|
|
127
|
+
]);
|
|
128
|
+
};
|
|
129
|
+
export {
|
|
130
|
+
P as default
|
|
131
|
+
};
|
|
132
|
+
//# sourceMappingURL=use-session-status-config.js.map
|
package/dist/features/trial-session/comps/pla/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/trial-session/comps/pla/session-status/hooks/use-session-status-config.ts"],"sourcesContent":["import type { ISessionStatusConfig } 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 { EClassStatus } from '../../../../../parent-dashboard/parent-dashboard-types';\n\ninterface IUseSessionStatusConfigProps {\n status: string | null;\n completedSessions: number;\n formattedSessionStart: string;\n remainingTime: string;\n isTeacherAssigned: boolean;\n isFirstSessionCompleted: boolean;\n isNoShowStatus: boolean;\n teacherName?: string;\n studentName?: string;\n onRescheduleClick?: () => void;\n}\n\nconst useSessionStatusConfig = ({\n status,\n completedSessions,\n formattedSessionStart,\n remainingTime,\n isTeacherAssigned,\n isFirstSessionCompleted,\n isNoShowStatus,\n teacherName,\n studentName,\n onRescheduleClick,\n}: IUseSessionStatusConfigProps) => {\n const handleRedirectToApp = useCallback(() => {\n window.open(CUEMATH_APP_URL, '_blank');\n }, []);\n\n const handleReschedule = useCallback(() => {\n onRescheduleClick?.();\n }, [onRescheduleClick]);\n\n // No show status configuration\n const createNoShowConfig = useCallback((): ISessionStatusConfig => {\n const isStudentNoShow = status === EClassStatus.S_NO_SHOW;\n\n return {\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: 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 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: 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 action: {\n label: 'Reschedule',\n onClick: handleReschedule,\n },\n },\n };\n }, [status, formattedSessionStart, handleReschedule]);\n\n // Completed session configuration\n const createCompletedConfig = useCallback((): ISessionStatusConfig => {\n const titleText = completedSessions === 1 ? 'First' : completedSessions.toString();\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 // Default session configuration\n const createDefaultConfig = useCallback((): ISessionStatusConfig => {\n const defaultTitle = remainingTime || 'SESSION SCHEDULED';\n const hasCountdown = Boolean(remainingTime);\n\n return {\n topSection: {\n icon: ILLUSTRATIONS.CALENDAR_CHECK_GREEN,\n title: defaultTitle,\n titleColor: 'GREEN_4',\n titleStyle: hasCountdown ? 'ub2' : 'ac3',\n titleTabletStyle: hasCountdown ? 'ub3' : 'ac4',\n subtitle: formattedSessionStart,\n subtitleStyle: 'ab1',\n subtitleTabletStyle: 'ab2',\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 ? '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 handleReschedule,\n ]);\n\n // Main configuration selector\n const config = useMemo((): ISessionStatusConfig => {\n if (isNoShowStatus) {\n return createNoShowConfig();\n }\n\n if (isFirstSessionCompleted) {\n return createCompletedConfig();\n }\n\n return createDefaultConfig();\n }, [\n isNoShowStatus,\n isFirstSessionCompleted,\n createNoShowConfig,\n createCompletedConfig,\n createDefaultConfig,\n ]);\n\n return config;\n};\n\nexport default useSessionStatusConfig;\n"],"names":["useSessionStatusConfig","status","completedSessions","formattedSessionStart","remainingTime","isTeacherAssigned","isFirstSessionCompleted","isNoShowStatus","teacherName","studentName","onRescheduleClick","handleRedirectToApp","useCallback","CUEMATH_APP_URL","handleReschedule","createNoShowConfig","isStudentNoShow","EClassStatus","ILLUSTRATIONS","createCompletedConfig","titleText","pluralize","LOTTIE","createDefaultConfig","defaultTitle","hasCountdown","useMemo"],"mappings":";;;;;;AAuBA,MAAMA,IAAyB,CAAC;AAAA,EAC9B,QAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,mBAAAC;AACF,MAAoC;AAC5B,QAAAC,IAAsBC,EAAY,MAAM;AACrC,WAAA,KAAKC,GAAiB,QAAQ;AAAA,EACvC,GAAG,CAAE,CAAA,GAECC,IAAmBF,EAAY,MAAM;AACrB,IAAAF,KAAA,QAAAA;AAAA,EAAA,GACnB,CAACA,CAAiB,CAAC,GAGhBK,IAAqBH,EAAY,MAA4B;AAC3D,UAAAI,IAAkBf,MAAWgB,EAAa;AAEzC,WAAA;AAAA,MACL,YAAY;AAAA,QACV,MAAMC,EAAc;AAAA,QACpB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,eAAe;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAUf;AAAA,QACV,aAAaa,IACT,2EACA;AAAA,QACJ,kBAAkB;AAAA,QAClB,qBAAqB;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,QACb,MAAME,EAAc;AAAA,QACpB,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,eAAe;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAUF,IACN,qIACA;AAAA,QACJ,QAAQ;AAAA,UACN,OAAO;AAAA,UACP,SAASF;AAAA,QACX;AAAA,MACF;AAAA,IAAA;AAAA,EAED,GAAA,CAACb,GAAQE,GAAuBW,CAAgB,CAAC,GAG9CK,IAAwBP,EAAY,MAA4B;AACpE,UAAMQ,IAAYlB,MAAsB,IAAI,UAAUA,EAAkB;AAEjE,WAAA;AAAA,MACL,YAAY;AAAA,QACV,MAAMgB,EAAc;AAAA,QACpB,OAAO,GAAGE,CAAS,IAAIC,EAAU,UAAAnB,GAAmB,SAAS,CAAC;AAAA,QAC9D,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,OAAO;AAAA,MACT;AAAA,MACA,eAAe;AAAA,QACb,QAAQoB,EAAO;AAAA,QACf,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,eAAe;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAU,GAAGnB,CAAqB;AAAA,OAAUK,CAAW;AAAA,QACvD,QAAQ;AAAA,UACN,OAAO;AAAA,UACP,SAASG;AAAA,QACX;AAAA,MACF;AAAA,IAAA;AAAA,KAED,CAACT,GAAmBC,GAAuBK,GAAaG,CAAmB,CAAC,GAGzEY,IAAsBX,EAAY,MAA4B;AAClE,UAAMY,IAAepB,KAAiB,qBAChCqB,IAAe,EAAQrB;AAEtB,WAAA;AAAA,MACL,YAAY;AAAA,QACV,MAAMc,EAAc;AAAA,QACpB,OAAOM;AAAA,QACP,YAAY;AAAA,QACZ,YAAYC,IAAe,QAAQ;AAAA,QACnC,kBAAkBA,IAAe,QAAQ;AAAA,QACzC,UAAUtB;AAAA,QACV,eAAe;AAAA,QACf,qBAAqB;AAAA,QACrB,QAAQ;AAAA,UACN,OAAO;AAAA,UACP,SAASW;AAAA,QACX;AAAA,MACF;AAAA,MACA,eAAe;AAAA,QACb,OAAO;AAAA,QACP,QAAQT,IAAoBiB,EAAO,gBAAgBA,EAAO;AAAA,QAC1D,OAAOjB,IAAoB,oBAAoB;AAAA,QAC/C,YAAYA,IAAoB,aAAa;AAAA,QAC7C,YAAYA,IAAoB,QAAQ;AAAA,QACxC,kBAAkBA,IAAoB,QAAQ;AAAA,QAC9C,eAAe;AAAA,QACf,qBAAqB;AAAA,QACrB,UAAUA,IACN,6CAA6CG,CAAW,6BAA6BC,CAAW,MAChG;AAAA,QACJ,aAAaJ,IACT,KACA;AAAA,QACJ,UAAUA,IAAoB,MAAM;AAAA,QACpC,aAAa;AAAA,MACf;AAAA,IAAA;AAAA,EACF,GACC;AAAA,IACDD;AAAA,IACAD;AAAA,IACAE;AAAA,IACAG;AAAA,IACAC;AAAA,IACAK;AAAA,EAAA,CACD;AAqBM,SAlBQY,EAAQ,MACjBnB,IACKQ,EAAmB,IAGxBT,IACKa,EAAsB,IAGxBI,EAAoB,GAC1B;AAAA,IACDhB;AAAA,IACAD;AAAA,IACAS;AAAA,IACAI;AAAA,IACAI;AAAA,EAAA,CACD;AAGH;"}
|
|
@@ -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;"}
|
|
@@ -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/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;"}
|