@cuemath/leap 3.2.25-mb → 3.2.26
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/lottie/lottie.js +1 -1
- package/dist/assets/lottie/lottie.js.map +1 -1
- package/dist/features/analytics-events/whitelist-events.js +17 -15
- package/dist/features/analytics-events/whitelist-events.js.map +1 -1
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-constants.js +2 -1
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-constants.js.map +1 -1
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js +8 -8
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message-styled.js.map +1 -1
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js +82 -60
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js.map +1 -1
- package/dist/features/auth/comps/pill-button/pill-button.js +41 -38
- package/dist/features/auth/comps/pill-button/pill-button.js.map +1 -1
- package/dist/features/auth/comps/resend-otp/resend-otp.js +18 -14
- package/dist/features/auth/comps/resend-otp/resend-otp.js.map +1 -1
- package/dist/features/auth/comps/selectable-info-card/selectable-info-card.js +32 -26
- package/dist/features/auth/comps/selectable-info-card/selectable-info-card.js.map +1 -1
- package/dist/features/auth/pla-signup/pla-analytics-events.js +23 -0
- package/dist/features/auth/pla-signup/pla-analytics-events.js.map +1 -0
- package/dist/features/auth/pla-signup/signup-options/signup-options.js +42 -35
- package/dist/features/auth/pla-signup/signup-options/signup-options.js.map +1 -1
- package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapters-list.js +68 -53
- package/dist/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapters-list.js.map +1 -1
- package/dist/features/notification/notification.js +129 -0
- package/dist/features/notification/notification.js.map +1 -0
- package/dist/features/ui/carousal/carousal-styles.js +45 -0
- package/dist/features/ui/carousal/carousal-styles.js.map +1 -0
- package/dist/features/ui/carousal/carousal.js +76 -0
- package/dist/features/ui/carousal/carousal.js.map +1 -0
- package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js +75 -88
- package/dist/features/ui/dot-lottie-animations/dot-lottie-animation.js.map +1 -1
- package/dist/features/ui/inputs/base-select-input/base-select-input.js +77 -67
- package/dist/features/ui/inputs/base-select-input/base-select-input.js.map +1 -1
- package/dist/features/ui/lottie-animation/lottie-animation.js +43 -45
- package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
- package/dist/features/ui/modals/modal-styled.js +8 -39
- 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/features/{stickers/sticker-selector/sticker-selector-styles.js → ui/sticker-grid/sticker-grid-styles.js} +31 -21
- package/dist/features/ui/sticker-grid/sticker-grid-styles.js.map +1 -0
- package/dist/features/ui/sticker-grid/sticker-grid.js +24 -0
- package/dist/features/ui/sticker-grid/sticker-grid.js.map +1 -0
- package/dist/features/ui/sticker-grid/sticker.js +57 -0
- package/dist/features/ui/sticker-grid/sticker.js.map +1 -0
- package/dist/features/ui/stickers/constants.js +6 -0
- package/dist/features/ui/stickers/constants.js.map +1 -0
- package/dist/features/{stickers/stickers-effects/effects.js → ui/stickers/stickers-effects.js} +6 -6
- package/dist/features/ui/stickers/stickers-effects.js.map +1 -0
- package/dist/features/{stickers/stickers-effects/stickers-effects-styled.js → ui/stickers/stickers-styled.js} +2 -2
- package/dist/features/ui/stickers/stickers-styled.js.map +1 -0
- package/dist/features/ui/stickers/stickers-utils.js +91 -0
- package/dist/features/ui/stickers/stickers-utils.js.map +1 -0
- package/dist/features/ui/stickers/stickers.js +40 -0
- package/dist/features/ui/stickers/stickers.js.map +1 -0
- package/dist/features/ui/theme/layout.js +3 -3
- package/dist/features/ui/theme/layout.js.map +1 -1
- package/dist/index.d.ts +114 -81
- package/dist/index.js +452 -448
- package/dist/index.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/native.js +7 -0
- package/dist/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
- package/dist/node_modules/uuid/dist/esm-browser/rng.js +3 -2
- package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js +6 -10
- package/dist/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -1
- package/dist/node_modules/uuid/dist/esm-browser/v4.js +12 -9
- package/dist/node_modules/uuid/dist/esm-browser/v4.js.map +1 -1
- package/dist/static/animated-avatar.c3a0fa98.json +1 -0
- package/package.json +1 -1
- package/dist/features/stickers/sticker-data.js +0 -234
- package/dist/features/stickers/sticker-data.js.map +0 -1
- package/dist/features/stickers/sticker-selector/sticker-selector-styles.js.map +0 -1
- package/dist/features/stickers/sticker-selector/sticker-selector.js +0 -27
- package/dist/features/stickers/sticker-selector/sticker-selector.js.map +0 -1
- package/dist/features/stickers/sticker-selector/sticker.js +0 -57
- package/dist/features/stickers/sticker-selector/sticker.js.map +0 -1
- package/dist/features/stickers/stickers-effects/effects.js.map +0 -1
- package/dist/features/stickers/stickers-effects/stickers-cache.js +0 -19
- package/dist/features/stickers/stickers-effects/stickers-cache.js.map +0 -1
- package/dist/features/stickers/stickers-effects/stickers-effects-helper.js +0 -86
- package/dist/features/stickers/stickers-effects/stickers-effects-helper.js.map +0 -1
- package/dist/features/stickers/stickers-effects/stickers-effects-styled.js.map +0 -1
- package/dist/features/stickers/stickers-effects/stickers-effects.js +0 -54
- package/dist/features/stickers/stickers-effects/stickers-effects.js.map +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/regex.js +0 -5
- package/dist/node_modules/uuid/dist/esm-browser/regex.js.map +0 -1
- package/dist/node_modules/uuid/dist/esm-browser/validate.js +0 -8
- package/dist/node_modules/uuid/dist/esm-browser/validate.js.map +0 -1
- package/dist/static/animated-avatar.1ad58b1d.json +0 -1
- package/dist/static/animated-avatar.69b07505.json +0 -1
- package/dist/static/animated-avatar.9c560b46.json +0 -1
- package/dist/static/cuemath-app-qr-code.4beefe48.svg +0 -1
- package/dist/static/cuemath-app-qr-code.ba6cc09b.svg +0 -1
- package/dist/static/cuemath-app-qr-code.d0912fc7.png +0 -0
- package/dist/static/otp.2d08f874.json +0 -1
- package/dist/static/phone-number.84f55562.json +0 -1
- package/dist/static/target-achieved-text.053bd142.json +0 -2830
- package/dist/static/user-type-selector-grid-bg.3c9c8ad6.svg +0 -1
- package/dist/static/user-type-selector-grid-bg.3ce8142d.svg +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { jsx as r, jsxs as n, Fragment as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
1
|
+
import { jsx as r, jsxs as n, Fragment as w } from "react/jsx-runtime";
|
|
2
|
+
import { memo as A, useCallback as f } from "react";
|
|
3
|
+
import I from "../../../ui/buttons/button/button.js";
|
|
4
4
|
import $ from "../../../ui/buttons/text-button/text-button.js";
|
|
5
5
|
import m from "../../../ui/layout/flex-view.js";
|
|
6
6
|
import a from "../../../ui/text/text.js";
|
|
7
|
-
import { useResendTimer as
|
|
8
|
-
const
|
|
7
|
+
import { useResendTimer as E } from "./hooks/use-resend-timer.js";
|
|
8
|
+
const H = ({
|
|
9
9
|
onResendOTP: l,
|
|
10
10
|
onResendVoiceOTP: i,
|
|
11
11
|
timerSeconds: h = 15,
|
|
@@ -14,18 +14,20 @@ const I = ({
|
|
|
14
14
|
renderAs: x = "text",
|
|
15
15
|
width: k,
|
|
16
16
|
textButtonColor: s = "WHITE_T_60",
|
|
17
|
-
size: d = "small"
|
|
17
|
+
size: d = "small",
|
|
18
|
+
analyticsLabel: _,
|
|
19
|
+
analyticsProps: C
|
|
18
20
|
}) => {
|
|
19
|
-
const { canResend: c, resetTimer: t, timeLeft: u } =
|
|
21
|
+
const { canResend: c, resetTimer: t, timeLeft: u } = E({
|
|
20
22
|
initialSeconds: h
|
|
21
23
|
}), b = f(() => {
|
|
22
24
|
l == null || l(), t();
|
|
23
|
-
}, [l, t]),
|
|
25
|
+
}, [l, t]), g = f(() => {
|
|
24
26
|
i == null || i(), t();
|
|
25
27
|
}, [i, t]);
|
|
26
28
|
if (x === "submit")
|
|
27
29
|
return /* @__PURE__ */ r(
|
|
28
|
-
|
|
30
|
+
I,
|
|
29
31
|
{
|
|
30
32
|
size: d,
|
|
31
33
|
renderAs: "secondary-dark",
|
|
@@ -45,10 +47,12 @@ const I = ({
|
|
|
45
47
|
label: "Resend",
|
|
46
48
|
size: e ? "small" : "regular",
|
|
47
49
|
color: s,
|
|
48
|
-
onClick: b
|
|
50
|
+
onClick: b,
|
|
51
|
+
analyticsLabel: _,
|
|
52
|
+
analyticsProps: C
|
|
49
53
|
}
|
|
50
54
|
),
|
|
51
|
-
p && /* @__PURE__ */ n(
|
|
55
|
+
p && /* @__PURE__ */ n(w, { children: [
|
|
52
56
|
/* @__PURE__ */ r(a, { $renderAs: e ? "ub3" : "ub2", $color: s, children: "or" }),
|
|
53
57
|
/* @__PURE__ */ r(m, { $width: 116, children: /* @__PURE__ */ r(
|
|
54
58
|
$,
|
|
@@ -56,7 +60,7 @@ const I = ({
|
|
|
56
60
|
label: "Get code via call",
|
|
57
61
|
size: e ? "small" : "regular",
|
|
58
62
|
color: s,
|
|
59
|
-
onClick:
|
|
63
|
+
onClick: g
|
|
60
64
|
}
|
|
61
65
|
) })
|
|
62
66
|
] })
|
|
@@ -65,8 +69,8 @@ const I = ({
|
|
|
65
69
|
" ",
|
|
66
70
|
/* @__PURE__ */ r(a, { $renderAs: e ? "ub3-bold" : "ub2-bold", $inline: !0, $color: "WHITE_T_60", children: u })
|
|
67
71
|
] }) }) });
|
|
68
|
-
},
|
|
72
|
+
}, X = A(H);
|
|
69
73
|
export {
|
|
70
|
-
|
|
74
|
+
X as default
|
|
71
75
|
};
|
|
72
76
|
//# sourceMappingURL=resend-otp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resend-otp.js","sources":["../../../../../src/features/auth/comps/resend-otp/resend-otp.tsx"],"sourcesContent":["import type { IOTPResendProps } from './resend-otp-types';\n\nimport { useCallback, memo } from 'react';\n\nimport Button from '../../../ui/buttons/button/button';\nimport TextButton from '../../../ui/buttons/text-button/text-button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { useResendTimer } from './hooks/use-resend-timer';\n\nconst ResendOTP: React.FC<IOTPResendProps> = ({\n onResendOTP,\n onResendVoiceOTP,\n timerSeconds = 15,\n showVoiceOTP = false,\n disabled,\n renderAs = 'text',\n width,\n textButtonColor = 'WHITE_T_60',\n size = 'small',\n}) => {\n const { canResend, resetTimer, timeLeft } = useResendTimer({\n initialSeconds: timerSeconds,\n });\n\n const handleResendClick = useCallback(() => {\n onResendOTP?.();\n resetTimer();\n }, [onResendOTP, resetTimer]);\n\n const handleVoiceResendClick = useCallback(() => {\n onResendVoiceOTP?.();\n resetTimer();\n }, [onResendVoiceOTP, resetTimer]);\n\n if (renderAs === 'submit') {\n return (\n <Button\n size={size}\n renderAs=\"secondary-dark\"\n type=\"submit\"\n label={canResend ? 'Resend' : `Resend in ${timeLeft}`}\n width={width}\n onClick={handleResendClick}\n disabled={!canResend || disabled}\n />\n );\n }\n\n const isXSmallSize = size === 'xsmall';\n\n return (\n <FlexView>\n {!canResend ? (\n <FlexView $width={105}>\n <Text $renderAs={isXSmallSize ? 'ub3' : 'ub2'} $color=\"WHITE_T_60\">\n Resend in{' '}\n <Text $renderAs={isXSmallSize ? 'ub3-bold' : 'ub2-bold'} $inline $color=\"WHITE_T_60\">\n {timeLeft}\n </Text>\n </Text>\n </FlexView>\n ) : (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexColumnGapX={0.5}>\n <TextButton\n disabled={disabled}\n label=\"Resend\"\n size={isXSmallSize ? 'small' : 'regular'}\n color={textButtonColor}\n onClick={handleResendClick}\n />\n {showVoiceOTP && (\n <>\n <Text $renderAs={isXSmallSize ? 'ub3' : 'ub2'} $color={textButtonColor}>\n or\n </Text>\n <FlexView $width={116}>\n <TextButton\n label=\"Get code via call\"\n size={isXSmallSize ? 'small' : 'regular'}\n color={textButtonColor}\n onClick={handleVoiceResendClick}\n />\n </FlexView>\n </>\n )}\n </FlexView>\n )}\n </FlexView>\n );\n};\n\nexport default memo(ResendOTP);\n"],"names":["ResendOTP","onResendOTP","onResendVoiceOTP","timerSeconds","showVoiceOTP","disabled","renderAs","width","textButtonColor","size","canResend","resetTimer","timeLeft","useResendTimer","handleResendClick","useCallback","handleVoiceResendClick","jsx","Button","isXSmallSize","FlexView","jsxs","TextButton","Fragment","Text","ResendOtp","memo"],"mappings":";;;;;;;AAUA,MAAMA,IAAuC,CAAC;AAAA,EAC5C,aAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,cAAAC,IAAe;AAAA,EACf,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,OAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,MAAAC,IAAO;
|
|
1
|
+
{"version":3,"file":"resend-otp.js","sources":["../../../../../src/features/auth/comps/resend-otp/resend-otp.tsx"],"sourcesContent":["import type { IOTPResendProps } from './resend-otp-types';\n\nimport { useCallback, memo } from 'react';\n\nimport Button from '../../../ui/buttons/button/button';\nimport TextButton from '../../../ui/buttons/text-button/text-button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { useResendTimer } from './hooks/use-resend-timer';\n\nconst ResendOTP: React.FC<IOTPResendProps> = ({\n onResendOTP,\n onResendVoiceOTP,\n timerSeconds = 15,\n showVoiceOTP = false,\n disabled,\n renderAs = 'text',\n width,\n textButtonColor = 'WHITE_T_60',\n size = 'small',\n analyticsLabel,\n analyticsProps,\n}) => {\n const { canResend, resetTimer, timeLeft } = useResendTimer({\n initialSeconds: timerSeconds,\n });\n\n const handleResendClick = useCallback(() => {\n onResendOTP?.();\n resetTimer();\n }, [onResendOTP, resetTimer]);\n\n const handleVoiceResendClick = useCallback(() => {\n onResendVoiceOTP?.();\n resetTimer();\n }, [onResendVoiceOTP, resetTimer]);\n\n if (renderAs === 'submit') {\n return (\n <Button\n size={size}\n renderAs=\"secondary-dark\"\n type=\"submit\"\n label={canResend ? 'Resend' : `Resend in ${timeLeft}`}\n width={width}\n onClick={handleResendClick}\n disabled={!canResend || disabled}\n />\n );\n }\n\n const isXSmallSize = size === 'xsmall';\n\n return (\n <FlexView>\n {!canResend ? (\n <FlexView $width={105}>\n <Text $renderAs={isXSmallSize ? 'ub3' : 'ub2'} $color=\"WHITE_T_60\">\n Resend in{' '}\n <Text $renderAs={isXSmallSize ? 'ub3-bold' : 'ub2-bold'} $inline $color=\"WHITE_T_60\">\n {timeLeft}\n </Text>\n </Text>\n </FlexView>\n ) : (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexColumnGapX={0.5}>\n <TextButton\n disabled={disabled}\n label=\"Resend\"\n size={isXSmallSize ? 'small' : 'regular'}\n color={textButtonColor}\n onClick={handleResendClick}\n analyticsLabel={analyticsLabel}\n analyticsProps={analyticsProps}\n />\n {showVoiceOTP && (\n <>\n <Text $renderAs={isXSmallSize ? 'ub3' : 'ub2'} $color={textButtonColor}>\n or\n </Text>\n <FlexView $width={116}>\n <TextButton\n label=\"Get code via call\"\n size={isXSmallSize ? 'small' : 'regular'}\n color={textButtonColor}\n onClick={handleVoiceResendClick}\n />\n </FlexView>\n </>\n )}\n </FlexView>\n )}\n </FlexView>\n );\n};\n\nexport default memo(ResendOTP);\n"],"names":["ResendOTP","onResendOTP","onResendVoiceOTP","timerSeconds","showVoiceOTP","disabled","renderAs","width","textButtonColor","size","analyticsLabel","analyticsProps","canResend","resetTimer","timeLeft","useResendTimer","handleResendClick","useCallback","handleVoiceResendClick","jsx","Button","isXSmallSize","FlexView","jsxs","TextButton","Fragment","Text","ResendOtp","memo"],"mappings":";;;;;;;AAUA,MAAMA,IAAuC,CAAC;AAAA,EAC5C,aAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,cAAAC,IAAe;AAAA,EACf,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,OAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,MAAAC,IAAO;AAAA,EACP,gBAAAC;AAAA,EACA,gBAAAC;AACF,MAAM;AACJ,QAAM,EAAE,WAAAC,GAAW,YAAAC,GAAY,UAAAC,EAAA,IAAaC,EAAe;AAAA,IACzD,gBAAgBZ;AAAA,EAAA,CACjB,GAEKa,IAAoBC,EAAY,MAAM;AAC5B,IAAAhB,KAAA,QAAAA,KACHY;EAAA,GACV,CAACZ,GAAaY,CAAU,CAAC,GAEtBK,IAAyBD,EAAY,MAAM;AAC5B,IAAAf,KAAA,QAAAA,KACRW;EAAA,GACV,CAACX,GAAkBW,CAAU,CAAC;AAEjC,MAAIP,MAAa;AAEb,WAAA,gBAAAa;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAX;AAAA,QACA,UAAS;AAAA,QACT,MAAK;AAAA,QACL,OAAOG,IAAY,WAAW,aAAaE,CAAQ;AAAA,QACnD,OAAAP;AAAA,QACA,SAASS;AAAA,QACT,UAAU,CAACJ,KAAaP;AAAA,MAAA;AAAA,IAAA;AAK9B,QAAMgB,IAAeZ,MAAS;AAE9B,SACG,gBAAAU,EAAAG,GAAA,EACE,UAACV,IAUC,gBAAAW,EAAAD,GAAA,EAAS,gBAAe,OAAM,aAAY,UAAS,iBAAiB,KACnE,UAAA;AAAA,IAAA,gBAAAH;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,UAAAnB;AAAA,QACA,OAAM;AAAA,QACN,MAAMgB,IAAe,UAAU;AAAA,QAC/B,OAAOb;AAAA,QACP,SAASQ;AAAA,QACT,gBAAAN;AAAA,QACA,gBAAAC;AAAA,MAAA;AAAA,IACF;AAAA,IACCP,KAEG,gBAAAmB,EAAAE,GAAA,EAAA,UAAA;AAAA,MAAA,gBAAAN,EAACO,KAAK,WAAWL,IAAe,QAAQ,OAAO,QAAQb,GAAiB,UAExE,KAAA,CAAA;AAAA,MACA,gBAAAW,EAACG,GAAS,EAAA,QAAQ,KAChB,UAAA,gBAAAH;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,MAAMH,IAAe,UAAU;AAAA,UAC/B,OAAOb;AAAA,UACP,SAASU;AAAA,QAAA;AAAA,MAAA,GAEb;AAAA,IAAA,GACF;AAAA,EAAA,EAEJ,CAAA,sBAlCCI,GAAS,EAAA,QAAQ,KAChB,UAAA,gBAAAC,EAACG,KAAK,WAAWL,IAAe,QAAQ,OAAO,QAAO,cAAa,UAAA;AAAA,IAAA;AAAA,IACvD;AAAA,IACV,gBAAAF,EAACO,GAAK,EAAA,WAAWL,IAAe,aAAa,YAAY,SAAO,IAAC,QAAO,cACrE,UACHP,EAAA,CAAA;AAAA,EACF,EAAA,CAAA,EACF,CAAA,EA6BJ,CAAA;AAEJ,GAEea,IAAAC,EAAK5B,CAAS;"}
|
|
@@ -1,26 +1,32 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
1
|
+
import { jsxs as m, jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { memo as g, useRef as x, useCallback as t, useMemo as I } from "react";
|
|
3
|
+
import T from "../../../ui/hooks/use-click-handler.js";
|
|
4
|
+
import _ from "../../../ui/layout/flex-view.js";
|
|
5
|
+
import A from "../../../ui/lottie-animation/lottie-animation.js";
|
|
6
|
+
import u from "../../../ui/text/text.js";
|
|
7
|
+
import { Wrapper as E } from "./selectable-info-card-styled.js";
|
|
8
|
+
const L = ({
|
|
8
9
|
id: a,
|
|
9
|
-
title:
|
|
10
|
+
title: l,
|
|
10
11
|
description: c,
|
|
11
12
|
icon: i,
|
|
12
13
|
selected: r,
|
|
13
|
-
onClick:
|
|
14
|
+
onClick: s,
|
|
15
|
+
analyticsLabel: f,
|
|
16
|
+
analyticsProps: p
|
|
14
17
|
}) => {
|
|
15
|
-
const e =
|
|
16
|
-
|
|
17
|
-
}, [a,
|
|
18
|
+
const e = x(null), d = t(() => {
|
|
19
|
+
s(a);
|
|
20
|
+
}, [a, s]), { handleClick: h } = T(
|
|
21
|
+
{ label: l, analyticsLabel: f, analyticsProps: p },
|
|
22
|
+
d
|
|
23
|
+
), $ = t(() => {
|
|
18
24
|
var o;
|
|
19
25
|
(o = e.current) == null || o.play();
|
|
20
|
-
}, []),
|
|
26
|
+
}, []), C = t(() => {
|
|
21
27
|
var o;
|
|
22
28
|
r || (o = e.current) == null || o.stop();
|
|
23
|
-
}, [r]),
|
|
29
|
+
}, [r]), b = I(
|
|
24
30
|
() => ({
|
|
25
31
|
autoplay: r,
|
|
26
32
|
loop: !0,
|
|
@@ -28,40 +34,40 @@ const T = ({
|
|
|
28
34
|
}),
|
|
29
35
|
[r]
|
|
30
36
|
);
|
|
31
|
-
return /* @__PURE__ */
|
|
32
|
-
|
|
37
|
+
return /* @__PURE__ */ m(
|
|
38
|
+
E,
|
|
33
39
|
{
|
|
34
40
|
$gutterX: 1,
|
|
35
41
|
$gapX: 1,
|
|
36
42
|
$borderColor: "WHITE",
|
|
37
43
|
$flexDirection: "row",
|
|
38
44
|
$background: r ? "WHITE_1" : "BLACK_1",
|
|
39
|
-
onMouseEnter:
|
|
40
|
-
onMouseLeave:
|
|
41
|
-
onClick:
|
|
45
|
+
onMouseEnter: $,
|
|
46
|
+
onMouseLeave: C,
|
|
47
|
+
onClick: h,
|
|
42
48
|
$flexColumnGapX: 0.5,
|
|
43
49
|
selected: r,
|
|
44
50
|
$alignItems: "center",
|
|
45
51
|
children: [
|
|
46
52
|
i && /* @__PURE__ */ n(
|
|
47
|
-
|
|
53
|
+
A,
|
|
48
54
|
{
|
|
49
55
|
src: i,
|
|
50
56
|
ref: e,
|
|
51
|
-
settings:
|
|
57
|
+
settings: b,
|
|
52
58
|
width: 40,
|
|
53
59
|
height: 40
|
|
54
60
|
}
|
|
55
61
|
),
|
|
56
|
-
/* @__PURE__ */
|
|
57
|
-
/* @__PURE__ */ n(
|
|
58
|
-
/* @__PURE__ */ n(
|
|
62
|
+
/* @__PURE__ */ m(_, { children: [
|
|
63
|
+
/* @__PURE__ */ n(u, { $renderAs: "ab3", $color: r ? "BLACK_1" : "WHITE", children: l }),
|
|
64
|
+
/* @__PURE__ */ n(u, { $renderAs: "ub3", $color: r ? "BLACK_T_60" : "WHITE_T_60", children: c })
|
|
59
65
|
] })
|
|
60
66
|
]
|
|
61
67
|
}
|
|
62
68
|
);
|
|
63
|
-
},
|
|
69
|
+
}, K = g(L);
|
|
64
70
|
export {
|
|
65
|
-
|
|
71
|
+
K as default
|
|
66
72
|
};
|
|
67
73
|
//# sourceMappingURL=selectable-info-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectable-info-card.js","sources":["../../../../../src/features/auth/comps/selectable-info-card/selectable-info-card.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../../ui/lottie-animation/types';\nimport type { ISelectableInfoCardProps } from './selectable-info-card-types';\n\nimport { useCallback, useMemo, useRef, memo } from 'react';\n\nimport FlexView from '../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../ui/lottie-animation/lottie-animation';\nimport Text from '../../../ui/text/text';\nimport * as Styled from './selectable-info-card-styled';\n\nconst SelectableInfoCard = ({\n id,\n title,\n description,\n icon,\n selected,\n onClick,\n}: ISelectableInfoCardProps) => {\n const animationRef = useRef<ILottieAnimationRef | null>(null);\n\n const
|
|
1
|
+
{"version":3,"file":"selectable-info-card.js","sources":["../../../../../src/features/auth/comps/selectable-info-card/selectable-info-card.tsx"],"sourcesContent":["import type { ILottieAnimationRef } from '../../../ui/lottie-animation/types';\nimport type { ISelectableInfoCardProps } from './selectable-info-card-types';\n\nimport { useCallback, useMemo, useRef, memo } from 'react';\n\nimport useClickHandler from '../../../ui/hooks/use-click-handler';\nimport FlexView from '../../../ui/layout/flex-view';\nimport LottieAnimation from '../../../ui/lottie-animation/lottie-animation';\nimport Text from '../../../ui/text/text';\nimport * as Styled from './selectable-info-card-styled';\n\nconst SelectableInfoCard = ({\n id,\n title,\n description,\n icon,\n selected,\n onClick,\n analyticsLabel,\n analyticsProps,\n}: ISelectableInfoCardProps) => {\n const animationRef = useRef<ILottieAnimationRef | null>(null);\n\n const handleSelect = useCallback(() => {\n onClick(id);\n }, [id, onClick]);\n\n const { handleClick } = useClickHandler(\n { label: title, analyticsLabel, analyticsProps },\n handleSelect,\n );\n\n const handleOnMouseEnter = useCallback(() => {\n animationRef.current?.play();\n }, []);\n\n const handleOnMouseLeave = useCallback(() => {\n if (selected) return;\n animationRef.current?.stop();\n }, [selected]);\n\n const renderSettings = useMemo(\n () => ({\n autoplay: selected,\n loop: true,\n renderer: 'canvas',\n }),\n [selected],\n );\n\n return (\n <Styled.Wrapper\n $gutterX={1}\n $gapX={1}\n $borderColor=\"WHITE\"\n $flexDirection=\"row\"\n $background={selected ? 'WHITE_1' : 'BLACK_1'}\n onMouseEnter={handleOnMouseEnter}\n onMouseLeave={handleOnMouseLeave}\n onClick={handleClick}\n $flexColumnGapX={0.5}\n selected={selected}\n $alignItems=\"center\"\n >\n {icon && (\n <LottieAnimation\n src={icon}\n ref={animationRef}\n settings={renderSettings}\n width={40}\n height={40}\n />\n )}\n\n <FlexView>\n <Text $renderAs=\"ab3\" $color={selected ? 'BLACK_1' : 'WHITE'}>\n {title}\n </Text>\n <Text $renderAs=\"ub3\" $color={selected ? 'BLACK_T_60' : 'WHITE_T_60'}>\n {description}\n </Text>\n </FlexView>\n </Styled.Wrapper>\n );\n};\n\nexport default memo(SelectableInfoCard);\n"],"names":["SelectableInfoCard","id","title","description","icon","selected","onClick","analyticsLabel","analyticsProps","animationRef","useRef","handleSelect","useCallback","handleClick","useClickHandler","handleOnMouseEnter","_a","handleOnMouseLeave","renderSettings","useMemo","jsxs","Styled.Wrapper","jsx","LottieAnimation","FlexView","Text","selectableInfoCard","memo"],"mappings":";;;;;;;AAWA,MAAMA,IAAqB,CAAC;AAAA,EAC1B,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AACF,MAAgC;AACxB,QAAAC,IAAeC,EAAmC,IAAI,GAEtDC,IAAeC,EAAY,MAAM;AACrC,IAAAN,EAAQL,CAAE;AAAA,EAAA,GACT,CAACA,GAAIK,CAAO,CAAC,GAEV,EAAE,aAAAO,MAAgBC;AAAA,IACtB,EAAE,OAAOZ,GAAO,gBAAAK,GAAgB,gBAAAC,EAAe;AAAA,IAC/CG;AAAA,EAAA,GAGII,IAAqBH,EAAY,MAAM;;AAC3C,KAAAI,IAAAP,EAAa,YAAb,QAAAO,EAAsB;AAAA,EACxB,GAAG,CAAE,CAAA,GAECC,IAAqBL,EAAY,MAAM;;AAC3C,IAAIP,MACJW,IAAAP,EAAa,YAAb,QAAAO,EAAsB;AAAA,EAAK,GAC1B,CAACX,CAAQ,CAAC,GAEPa,IAAiBC;AAAA,IACrB,OAAO;AAAA,MACL,UAAUd;AAAA,MACV,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,IAEZ,CAACA,CAAQ;AAAA,EAAA;AAIT,SAAA,gBAAAe;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,UAAU;AAAA,MACV,OAAO;AAAA,MACP,cAAa;AAAA,MACb,gBAAe;AAAA,MACf,aAAahB,IAAW,YAAY;AAAA,MACpC,cAAcU;AAAA,MACd,cAAcE;AAAA,MACd,SAASJ;AAAA,MACT,iBAAiB;AAAA,MACjB,UAAAR;AAAA,MACA,aAAY;AAAA,MAEX,UAAA;AAAA,QACCD,KAAA,gBAAAkB;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,KAAKnB;AAAA,YACL,KAAKK;AAAA,YACL,UAAUS;AAAA,YACV,OAAO;AAAA,YACP,QAAQ;AAAA,UAAA;AAAA,QACV;AAAA,0BAGDM,GACC,EAAA,UAAA;AAAA,UAAA,gBAAAF,EAACG,KAAK,WAAU,OAAM,QAAQpB,IAAW,YAAY,SAClD,UACHH,EAAA,CAAA;AAAA,UACA,gBAAAoB,EAACG,KAAK,WAAU,OAAM,QAAQpB,IAAW,eAAe,cACrD,UACHF,EAAA,CAAA;AAAA,QAAA,GACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GAEeuB,IAAAC,EAAK3B,CAAkB;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PLUGINS as _ } from "../../../node_modules/@cuemath/analytics-v2/dist/constants.js";
|
|
2
|
+
var s = /* @__PURE__ */ ((e) => (e.START_SIGNUP_CTA_CLICKED = "start_signup_cta_clicked", e.ECNA_STEP_VIEWED = "ecna_step_viewed", e.ECNA_RESPONSE_RECORDED_DEBUG = "ecna_response_recorded_debug", e.PARENT_SIGNUP_CTA_CLICKED = "parent_signup_cta_clicked", e.PARENT_SIGNUP_SUCCESSFUL = "parent_signup_successful", e.PARENT_SIGNUP_FAILED = "parent_signup_failed", e.STUDENT_SIGNUP_SUCCESSFUL = "signup_successful", e.STUDENT_SIGNUP_FAILED = "signup_failed", e.SIGNUP_OTP_ENTERED = "signup_otp_entered", e.SIGNUP_OTP_VERIFIED = "signup_otp_verified", e.SIGNUP_OTP_FAILED = "signup_otp_failed", e.SLOTS_SHOWN = "slots_shown", e.SLOT_DATE_SELECTED = "slot_date_selected", e.SLOT_TIME_SELECTED = "slot_time_selected", e))(s || {});
|
|
3
|
+
const i = {
|
|
4
|
+
start_signup_cta_clicked: [_.MIXPANEL],
|
|
5
|
+
ecna_step_viewed: [_.MIXPANEL],
|
|
6
|
+
ecna_response_recorded_debug: [_.MIXPANEL],
|
|
7
|
+
parent_signup_cta_clicked: [_.MIXPANEL],
|
|
8
|
+
parent_signup_successful: [_.MIXPANEL],
|
|
9
|
+
parent_signup_failed: [_.MIXPANEL],
|
|
10
|
+
signup_successful: [_.MIXPANEL],
|
|
11
|
+
signup_failed: [_.MIXPANEL],
|
|
12
|
+
signup_otp_entered: [_.MIXPANEL],
|
|
13
|
+
signup_otp_verified: [_.MIXPANEL],
|
|
14
|
+
signup_otp_failed: [_.MIXPANEL],
|
|
15
|
+
slots_shown: [_.MIXPANEL],
|
|
16
|
+
slot_date_selected: [_.MIXPANEL],
|
|
17
|
+
slot_time_selected: [_.MIXPANEL]
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
s as PLA_ANALYTICS_EVENTS,
|
|
21
|
+
i as PLA_ANALYTICS_WHITELIST_EVENTS
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=pla-analytics-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pla-analytics-events.js","sources":["../../../../src/features/auth/pla-signup/pla-analytics-events.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\nexport enum PLA_ANALYTICS_EVENTS {\n START_SIGNUP_CTA_CLICKED = 'start_signup_cta_clicked',\n ECNA_STEP_VIEWED = 'ecna_step_viewed',\n ECNA_RESPONSE_RECORDED_DEBUG = 'ecna_response_recorded_debug',\n PARENT_SIGNUP_CTA_CLICKED = 'parent_signup_cta_clicked',\n PARENT_SIGNUP_SUCCESSFUL = 'parent_signup_successful',\n PARENT_SIGNUP_FAILED = 'parent_signup_failed',\n STUDENT_SIGNUP_SUCCESSFUL = 'signup_successful',\n STUDENT_SIGNUP_FAILED = 'signup_failed',\n SIGNUP_OTP_ENTERED = 'signup_otp_entered',\n SIGNUP_OTP_VERIFIED = 'signup_otp_verified',\n SIGNUP_OTP_FAILED = 'signup_otp_failed',\n SLOTS_SHOWN = 'slots_shown',\n SLOT_DATE_SELECTED = 'slot_date_selected',\n SLOT_TIME_SELECTED = 'slot_time_selected',\n}\n\nexport const PLA_ANALYTICS_WHITELIST_EVENTS = {\n [PLA_ANALYTICS_EVENTS.START_SIGNUP_CTA_CLICKED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.ECNA_STEP_VIEWED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.ECNA_RESPONSE_RECORDED_DEBUG]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.PARENT_SIGNUP_CTA_CLICKED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.PARENT_SIGNUP_SUCCESSFUL]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.PARENT_SIGNUP_FAILED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.STUDENT_SIGNUP_SUCCESSFUL]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.STUDENT_SIGNUP_FAILED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SIGNUP_OTP_ENTERED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SIGNUP_OTP_VERIFIED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SIGNUP_OTP_FAILED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SLOTS_SHOWN]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SLOT_DATE_SELECTED]: [PLUGINS.MIXPANEL],\n [PLA_ANALYTICS_EVENTS.SLOT_TIME_SELECTED]: [PLUGINS.MIXPANEL],\n};\n"],"names":["PLA_ANALYTICS_EVENTS","PLA_ANALYTICS_WHITELIST_EVENTS","PLUGINS"],"mappings":";AAEY,IAAAA,sBAAAA,OACVA,EAAA,2BAA2B,4BAC3BA,EAAA,mBAAmB,oBACnBA,EAAA,+BAA+B,gCAC/BA,EAAA,4BAA4B,6BAC5BA,EAAA,2BAA2B,4BAC3BA,EAAA,uBAAuB,wBACvBA,EAAA,4BAA4B,qBAC5BA,EAAA,wBAAwB,iBACxBA,EAAA,qBAAqB,sBACrBA,EAAA,sBAAsB,uBACtBA,EAAA,oBAAoB,qBACpBA,EAAA,cAAc,eACdA,EAAA,qBAAqB,sBACrBA,EAAA,qBAAqB,sBAdXA,IAAAA,KAAA,CAAA,CAAA;AAiBL,MAAMC,IAAiC;AAAA,EAC3C,0BAAgD,CAACC,EAAQ,QAAQ;AAAA,EACjE,kBAAwC,CAACA,EAAQ,QAAQ;AAAA,EACzD,8BAAoD,CAACA,EAAQ,QAAQ;AAAA,EACrE,2BAAiD,CAACA,EAAQ,QAAQ;AAAA,EAClE,0BAAgD,CAACA,EAAQ,QAAQ;AAAA,EACjE,sBAA4C,CAACA,EAAQ,QAAQ;AAAA,EAC7D,mBAAiD,CAACA,EAAQ,QAAQ;AAAA,EAClE,eAA6C,CAACA,EAAQ,QAAQ;AAAA,EAC9D,oBAA0C,CAACA,EAAQ,QAAQ;AAAA,EAC3D,qBAA2C,CAACA,EAAQ,QAAQ;AAAA,EAC5D,mBAAyC,CAACA,EAAQ,QAAQ;AAAA,EAC1D,aAAmC,CAACA,EAAQ,QAAQ;AAAA,EACpD,oBAA0C,CAACA,EAAQ,QAAQ;AAAA,EAC3D,oBAA0C,CAACA,EAAQ,QAAQ;AAC9D;"}
|
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
import { jsxs as i, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { memo as b } from "react";
|
|
3
|
-
import { useTheme as
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
3
|
+
import { useTheme as g } from "styled-components";
|
|
4
|
+
import I from "../../../../assets/line-icons/icons/apple-icon-white.js";
|
|
5
|
+
import C from "../../../../assets/line-icons/icons/google-icon.js";
|
|
6
|
+
import l from "../../../ui/buttons/button/button.js";
|
|
7
|
+
import u from "../../../ui/buttons/text-button/text-button.js";
|
|
8
|
+
import r from "../../../ui/layout/flex-view.js";
|
|
9
|
+
import p from "../../../ui/separator/separator.js";
|
|
10
10
|
import c from "../../../ui/text/text.js";
|
|
11
|
-
import { EDeviceType as
|
|
12
|
-
|
|
11
|
+
import { EDeviceType as $ } from "../../../ui/theme/constants.js";
|
|
12
|
+
import { PLA_ANALYTICS_EVENTS as t } from "../pla-analytics-events.js";
|
|
13
|
+
const S = ({
|
|
13
14
|
onEmailSignup: m,
|
|
14
|
-
onAppleSignup:
|
|
15
|
-
onGoogleSignup:
|
|
16
|
-
loadingProvider:
|
|
17
|
-
onGoToLogin:
|
|
18
|
-
title:
|
|
15
|
+
onAppleSignup: d,
|
|
16
|
+
onGoogleSignup: h,
|
|
17
|
+
loadingProvider: n,
|
|
18
|
+
onGoToLogin: A,
|
|
19
|
+
title: T
|
|
19
20
|
}) => {
|
|
20
|
-
const { device:
|
|
21
|
-
return /* @__PURE__ */ i(
|
|
22
|
-
/* @__PURE__ */ e(c, { $renderAs: "ah3-bold", $renderOnMobileAs: "ah4-bold", $color: "WHITE", $whiteSpace: "pre", children:
|
|
23
|
-
/* @__PURE__ */ e(
|
|
21
|
+
const { device: f } = g(), o = f <= $.TABLET, a = n === "google", s = n === "apple";
|
|
22
|
+
return /* @__PURE__ */ i(r, { $alignItems: "flex-start", children: [
|
|
23
|
+
/* @__PURE__ */ e(c, { $renderAs: "ah3-bold", $renderOnMobileAs: "ah4-bold", $color: "WHITE", $whiteSpace: "pre", children: T }),
|
|
24
|
+
/* @__PURE__ */ e(p, { heightX: o ? 1.5 : 2.5 }),
|
|
24
25
|
/* @__PURE__ */ i(
|
|
25
|
-
|
|
26
|
+
r,
|
|
26
27
|
{
|
|
27
28
|
$flexGapX: 1,
|
|
28
29
|
$flex: 1,
|
|
@@ -31,53 +32,59 @@ const k = ({
|
|
|
31
32
|
$width: "100%",
|
|
32
33
|
children: [
|
|
33
34
|
/* @__PURE__ */ e(
|
|
34
|
-
|
|
35
|
+
l,
|
|
35
36
|
{
|
|
36
37
|
renderAs: "black-dark",
|
|
37
|
-
Icon:
|
|
38
|
+
Icon: C,
|
|
38
39
|
width: o ? "100%" : 320,
|
|
39
40
|
label: "Signup with Google",
|
|
40
|
-
onClick:
|
|
41
|
+
onClick: h,
|
|
41
42
|
size: "small",
|
|
42
|
-
busy:
|
|
43
|
-
disabled:
|
|
43
|
+
busy: a,
|
|
44
|
+
disabled: a,
|
|
45
|
+
analyticsLabel: t.START_SIGNUP_CTA_CLICKED,
|
|
46
|
+
analyticsProps: { provider: "google" }
|
|
44
47
|
}
|
|
45
48
|
),
|
|
46
49
|
/* @__PURE__ */ e(
|
|
47
|
-
|
|
50
|
+
l,
|
|
48
51
|
{
|
|
49
52
|
renderAs: "black-dark",
|
|
50
53
|
size: "small",
|
|
51
54
|
width: o ? "100%" : 320,
|
|
52
|
-
Icon:
|
|
55
|
+
Icon: I,
|
|
53
56
|
label: "Signup with Apple",
|
|
54
|
-
onClick:
|
|
57
|
+
onClick: d,
|
|
55
58
|
busy: s,
|
|
56
|
-
disabled: s
|
|
59
|
+
disabled: s,
|
|
60
|
+
analyticsLabel: t.START_SIGNUP_CTA_CLICKED,
|
|
61
|
+
analyticsProps: { provider: "apple" }
|
|
57
62
|
}
|
|
58
63
|
),
|
|
59
64
|
/* @__PURE__ */ e(
|
|
60
|
-
|
|
65
|
+
l,
|
|
61
66
|
{
|
|
62
67
|
renderAs: "black-dark",
|
|
63
68
|
size: "small",
|
|
64
69
|
width: o ? "100%" : 320,
|
|
65
70
|
label: "Continue with Email",
|
|
66
|
-
onClick: m
|
|
71
|
+
onClick: m,
|
|
72
|
+
analyticsLabel: t.START_SIGNUP_CTA_CLICKED,
|
|
73
|
+
analyticsProps: { provider: "email" }
|
|
67
74
|
}
|
|
68
75
|
)
|
|
69
76
|
]
|
|
70
77
|
}
|
|
71
78
|
),
|
|
72
|
-
/* @__PURE__ */ e(
|
|
73
|
-
/* @__PURE__ */ i(
|
|
79
|
+
/* @__PURE__ */ e(p, { heightX: 1.5 }),
|
|
80
|
+
/* @__PURE__ */ i(r, { $flexDirection: "row", $alignItems: "center", children: [
|
|
74
81
|
/* @__PURE__ */ e(c, { $renderAs: "ub3", $color: "WHITE", children: "Already have an account?" }),
|
|
75
82
|
" ",
|
|
76
|
-
/* @__PURE__ */ e(
|
|
83
|
+
/* @__PURE__ */ e(u, { size: "small", label: "Log In", color: "WHITE", onClick: A })
|
|
77
84
|
] })
|
|
78
85
|
] });
|
|
79
|
-
},
|
|
86
|
+
}, z = b(S);
|
|
80
87
|
export {
|
|
81
|
-
|
|
88
|
+
z as default
|
|
82
89
|
};
|
|
83
90
|
//# sourceMappingURL=signup-options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signup-options.js","sources":["../../../../../src/features/auth/pla-signup/signup-options/signup-options.tsx"],"sourcesContent":["import type { ISignupOptionsProps } from './signup-options-types';\n\nimport { memo, type FC } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport AppleIcon from '../../../../assets/line-icons/icons/apple-icon-white';\nimport GoogleIcon from '../../../../assets/line-icons/icons/google-icon';\nimport Button from '../../../ui/buttons/button/button';\nimport TextButton from '../../../ui/buttons/text-button/text-button';\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';\n\nconst SignupOptions: FC<ISignupOptionsProps> = ({\n onEmailSignup,\n onAppleSignup,\n onGoogleSignup,\n loadingProvider,\n onGoToLogin,\n title,\n}) => {\n const { device } = useTheme();\n const isCompact = device <= EDeviceType.TABLET;\n const isLoadingGoogle = loadingProvider === 'google';\n const isLoadingApple = loadingProvider === 'apple';\n\n return (\n <FlexView $alignItems=\"flex-start\">\n <Text $renderAs=\"ah3-bold\" $renderOnMobileAs=\"ah4-bold\" $color=\"WHITE\" $whiteSpace=\"pre\">\n {title}\n </Text>\n <Separator heightX={isCompact ? 1.5 : 2.5} />\n <FlexView\n $flexGapX={1}\n $flex={1}\n $justifyContent=\"center\"\n $alignItems=\"flex-start\"\n $width=\"100%\"\n >\n <Button\n renderAs=\"black-dark\"\n Icon={GoogleIcon}\n width={isCompact ? '100%' : 320}\n label=\"Signup with Google\"\n onClick={onGoogleSignup}\n size=\"small\"\n busy={isLoadingGoogle}\n disabled={isLoadingGoogle}\n />\n <Button\n renderAs=\"black-dark\"\n size=\"small\"\n width={isCompact ? '100%' : 320}\n Icon={AppleIcon}\n label=\"Signup with Apple\"\n onClick={onAppleSignup}\n busy={isLoadingApple}\n disabled={isLoadingApple}\n />\n <Button\n renderAs=\"black-dark\"\n size=\"small\"\n width={isCompact ? '100%' : 320}\n label=\"Continue with Email\"\n onClick={onEmailSignup}\n />\n </FlexView>\n <Separator heightX={1.5} />\n <FlexView $flexDirection=\"row\" $alignItems=\"center\">\n <Text $renderAs=\"ub3\" $color=\"WHITE\">\n Already have an account?\n </Text>\n \n <TextButton size=\"small\" label=\"Log In\" color=\"WHITE\" onClick={onGoToLogin} />\n </FlexView>\n </FlexView>\n );\n};\n\nexport default memo(SignupOptions);\n"],"names":["SignupOptions","onEmailSignup","onAppleSignup","onGoogleSignup","loadingProvider","onGoToLogin","title","device","useTheme","isCompact","EDeviceType","isLoadingGoogle","isLoadingApple","jsxs","FlexView","jsx","Text","Separator","Button","GoogleIcon","AppleIcon","TextButton","signupOptions","memo"],"mappings":"
|
|
1
|
+
{"version":3,"file":"signup-options.js","sources":["../../../../../src/features/auth/pla-signup/signup-options/signup-options.tsx"],"sourcesContent":["import type { ISignupOptionsProps } from './signup-options-types';\n\nimport { memo, type FC } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport AppleIcon from '../../../../assets/line-icons/icons/apple-icon-white';\nimport GoogleIcon from '../../../../assets/line-icons/icons/google-icon';\nimport Button from '../../../ui/buttons/button/button';\nimport TextButton from '../../../ui/buttons/text-button/text-button';\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 { PLA_ANALYTICS_EVENTS } from '../pla-analytics-events';\n\nconst SignupOptions: FC<ISignupOptionsProps> = ({\n onEmailSignup,\n onAppleSignup,\n onGoogleSignup,\n loadingProvider,\n onGoToLogin,\n title,\n}) => {\n const { device } = useTheme();\n const isCompact = device <= EDeviceType.TABLET;\n const isLoadingGoogle = loadingProvider === 'google';\n const isLoadingApple = loadingProvider === 'apple';\n\n return (\n <FlexView $alignItems=\"flex-start\">\n <Text $renderAs=\"ah3-bold\" $renderOnMobileAs=\"ah4-bold\" $color=\"WHITE\" $whiteSpace=\"pre\">\n {title}\n </Text>\n <Separator heightX={isCompact ? 1.5 : 2.5} />\n <FlexView\n $flexGapX={1}\n $flex={1}\n $justifyContent=\"center\"\n $alignItems=\"flex-start\"\n $width=\"100%\"\n >\n <Button\n renderAs=\"black-dark\"\n Icon={GoogleIcon}\n width={isCompact ? '100%' : 320}\n label=\"Signup with Google\"\n onClick={onGoogleSignup}\n size=\"small\"\n busy={isLoadingGoogle}\n disabled={isLoadingGoogle}\n analyticsLabel={PLA_ANALYTICS_EVENTS.START_SIGNUP_CTA_CLICKED}\n analyticsProps={{ provider: 'google' }}\n />\n <Button\n renderAs=\"black-dark\"\n size=\"small\"\n width={isCompact ? '100%' : 320}\n Icon={AppleIcon}\n label=\"Signup with Apple\"\n onClick={onAppleSignup}\n busy={isLoadingApple}\n disabled={isLoadingApple}\n analyticsLabel={PLA_ANALYTICS_EVENTS.START_SIGNUP_CTA_CLICKED}\n analyticsProps={{ provider: 'apple' }}\n />\n <Button\n renderAs=\"black-dark\"\n size=\"small\"\n width={isCompact ? '100%' : 320}\n label=\"Continue with Email\"\n onClick={onEmailSignup}\n analyticsLabel={PLA_ANALYTICS_EVENTS.START_SIGNUP_CTA_CLICKED}\n analyticsProps={{ provider: 'email' }}\n />\n </FlexView>\n <Separator heightX={1.5} />\n <FlexView $flexDirection=\"row\" $alignItems=\"center\">\n <Text $renderAs=\"ub3\" $color=\"WHITE\">\n Already have an account?\n </Text>\n \n <TextButton size=\"small\" label=\"Log In\" color=\"WHITE\" onClick={onGoToLogin} />\n </FlexView>\n </FlexView>\n );\n};\n\nexport default memo(SignupOptions);\n"],"names":["SignupOptions","onEmailSignup","onAppleSignup","onGoogleSignup","loadingProvider","onGoToLogin","title","device","useTheme","isCompact","EDeviceType","isLoadingGoogle","isLoadingApple","jsxs","FlexView","jsx","Text","Separator","Button","GoogleIcon","PLA_ANALYTICS_EVENTS","AppleIcon","TextButton","signupOptions","memo"],"mappings":";;;;;;;;;;;;AAeA,MAAMA,IAAyC,CAAC;AAAA,EAC9C,eAAAC;AAAA,EACA,eAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,OAAAC;AACF,MAAM;AACE,QAAA,EAAE,QAAAC,MAAWC,KACbC,IAAYF,KAAUG,EAAY,QAClCC,IAAkBP,MAAoB,UACtCQ,IAAiBR,MAAoB;AAGzC,SAAA,gBAAAS,EAACC,GAAS,EAAA,aAAY,cACpB,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAK,WAAU,YAAW,mBAAkB,YAAW,QAAO,SAAQ,aAAY,OAChF,UACHV,EAAA,CAAA;AAAA,IACC,gBAAAS,EAAAE,GAAA,EAAU,SAASR,IAAY,MAAM,KAAK;AAAA,IAC3C,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,QACX,OAAO;AAAA,QACP,iBAAgB;AAAA,QAChB,aAAY;AAAA,QACZ,QAAO;AAAA,QAEP,UAAA;AAAA,UAAA,gBAAAC;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,MAAMC;AAAA,cACN,OAAOV,IAAY,SAAS;AAAA,cAC5B,OAAM;AAAA,cACN,SAASN;AAAA,cACT,MAAK;AAAA,cACL,MAAMQ;AAAA,cACN,UAAUA;AAAA,cACV,gBAAgBS,EAAqB;AAAA,cACrC,gBAAgB,EAAE,UAAU,SAAS;AAAA,YAAA;AAAA,UACvC;AAAA,UACA,gBAAAL;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,MAAK;AAAA,cACL,OAAOT,IAAY,SAAS;AAAA,cAC5B,MAAMY;AAAAA,cACN,OAAM;AAAA,cACN,SAASnB;AAAA,cACT,MAAMU;AAAA,cACN,UAAUA;AAAA,cACV,gBAAgBQ,EAAqB;AAAA,cACrC,gBAAgB,EAAE,UAAU,QAAQ;AAAA,YAAA;AAAA,UACtC;AAAA,UACA,gBAAAL;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,MAAK;AAAA,cACL,OAAOT,IAAY,SAAS;AAAA,cAC5B,OAAM;AAAA,cACN,SAASR;AAAA,cACT,gBAAgBmB,EAAqB;AAAA,cACrC,gBAAgB,EAAE,UAAU,QAAQ;AAAA,YAAA;AAAA,UACtC;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,IACA,gBAAAL,EAACE,GAAU,EAAA,SAAS,IAAK,CAAA;AAAA,IACxB,gBAAAJ,EAAAC,GAAA,EAAS,gBAAe,OAAM,aAAY,UACzC,UAAA;AAAA,MAAA,gBAAAC,EAACC,GAAK,EAAA,WAAU,OAAM,QAAO,SAAQ,UAErC,4BAAA;AAAA,MAAO;AAAA,MAEP,gBAAAD,EAACO,KAAW,MAAK,SAAQ,OAAM,UAAS,OAAM,SAAQ,SAASjB,EAAa,CAAA;AAAA,IAAA,GAC9E;AAAA,EACF,EAAA,CAAA;AAEJ,GAEekB,IAAAC,EAAKxB,CAAa;"}
|
|
@@ -1,73 +1,88 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { jsx as r, jsxs as f, Fragment as X } from "react/jsx-runtime";
|
|
2
|
+
import { memo as _, useContext as b, useCallback as k } from "react";
|
|
3
|
+
import C from "../../../../../ui/layout/flex-view.js";
|
|
4
|
+
import w from "../../../../../ui/loader/app-loader/app-loader.js";
|
|
5
|
+
import F from "../../../../../ui/separator/separator.js";
|
|
6
|
+
import m from "../../../../../ui/text/text.js";
|
|
7
|
+
import N from "../../../milestone-create-context.js";
|
|
8
|
+
import $ from "../../chapter-item/chapter-item.js";
|
|
9
|
+
import { computeRecommendedNCustomChapters as R } from "../utils.js";
|
|
10
|
+
import { ChaptersListWrapper as T } from "./chapter-selection-step-styled.js";
|
|
11
|
+
const x = (p, u, d, i) => !p || u ? !0 : (d === "EDIT" || d === "DRAFT_EDIT") && i.recommended === !0, v = _((p) => {
|
|
12
|
+
const { formData: u, isProcessing: d, onFormDataChange: i, isGoalCreation: n } = p, { testType: A, primaryChaptersList: o, chapterGoalCategory: D } = u, { primaryGoalCategory: G } = D || {}, a = A === "no-test", { flow: c } = b(N), { recommendedChaptersList: h, customChaptersList: s } = R(
|
|
12
13
|
o,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
),
|
|
16
|
-
(
|
|
17
|
-
if (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
14
|
+
G,
|
|
15
|
+
n
|
|
16
|
+
), g = k(
|
|
17
|
+
(t) => {
|
|
18
|
+
if (n && !a) {
|
|
19
|
+
const e = o == null ? void 0 : o.find((I) => I.id === t);
|
|
20
|
+
if (!((c === "EDIT" || c === "DRAFT_EDIT") && (e == null ? void 0 : e.recommended) === !0)) return null;
|
|
21
|
+
}
|
|
22
|
+
const l = o == null ? void 0 : o.map((e) => e.id === t ? {
|
|
23
|
+
...e,
|
|
24
|
+
added: !e.added
|
|
25
|
+
} : e);
|
|
26
|
+
i({
|
|
27
|
+
primaryChaptersList: l
|
|
24
28
|
});
|
|
25
29
|
},
|
|
26
|
-
[o, a,
|
|
30
|
+
[o, a, n, i, c]
|
|
27
31
|
);
|
|
28
|
-
return
|
|
29
|
-
|
|
32
|
+
return d ? /* @__PURE__ */ r(
|
|
33
|
+
T,
|
|
30
34
|
{
|
|
31
35
|
$gapX: 1.5,
|
|
32
36
|
$gutterX: 1.5,
|
|
33
37
|
$flexGapX: 1.25,
|
|
34
38
|
$justifyContent: "center",
|
|
35
39
|
$alignItems: "center",
|
|
36
|
-
children: /* @__PURE__ */
|
|
40
|
+
children: /* @__PURE__ */ r(w, {})
|
|
37
41
|
}
|
|
38
|
-
) : /* @__PURE__ */
|
|
39
|
-
/* @__PURE__ */
|
|
40
|
-
/* @__PURE__ */
|
|
41
|
-
a && /* @__PURE__ */
|
|
42
|
+
) : /* @__PURE__ */ f(T, { $gapX: 1.5, $gutterX: 1.5, $flexGapX: 1.25, children: [
|
|
43
|
+
/* @__PURE__ */ f(C, { $flexDirection: "row", $flexGap: 4, $alignItems: "center", children: [
|
|
44
|
+
/* @__PURE__ */ r(m, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: "Recommended Chapters" }),
|
|
45
|
+
a && /* @__PURE__ */ r(m, { $renderAs: "ub2", $color: "BLACK_T_60", children: "(Click on any chapter to exclude it)" })
|
|
42
46
|
] }),
|
|
43
|
-
/* @__PURE__ */
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
chapterNo: n + 1,
|
|
48
|
-
canAddChapter: !t || a,
|
|
49
|
-
onChapterItemClick: h
|
|
50
|
-
},
|
|
51
|
-
r.id
|
|
52
|
-
)) : /* @__PURE__ */ e(l, { $renderAs: "ub1", children: "No recommended chapters available" }) }),
|
|
53
|
-
!!(c != null && c.length) && /* @__PURE__ */ p(G, { children: [
|
|
54
|
-
/* @__PURE__ */ e(D, { height: 8, background: "TRANSPARENT" }),
|
|
55
|
-
/* @__PURE__ */ e(l, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: "Custom chapters" }),
|
|
56
|
-
/* @__PURE__ */ e(d, { $flexDirection: "row", $flexWrap: !0, $flexGapX: 1.25, children: c.map((r, n) => /* @__PURE__ */ e(
|
|
57
|
-
C,
|
|
47
|
+
/* @__PURE__ */ r(C, { $flexDirection: "row", $flexWrap: !0, $flexGapX: 1.25, children: h.length > 0 ? h.map((t, l) => {
|
|
48
|
+
const e = x(n, a, c, t);
|
|
49
|
+
return /* @__PURE__ */ r(
|
|
50
|
+
$,
|
|
58
51
|
{
|
|
59
|
-
chapterData:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
onChapterItemClick:
|
|
63
|
-
showChapterTags: !0
|
|
52
|
+
chapterData: t,
|
|
53
|
+
chapterNo: l + 1,
|
|
54
|
+
canAddChapter: e,
|
|
55
|
+
onChapterItemClick: g
|
|
64
56
|
},
|
|
65
|
-
|
|
66
|
-
)
|
|
57
|
+
t.id
|
|
58
|
+
);
|
|
59
|
+
}) : /* @__PURE__ */ r(m, { $renderAs: "ub1", children: "No recommended chapters available" }) }),
|
|
60
|
+
!!(s != null && s.length) && /* @__PURE__ */ f(X, { children: [
|
|
61
|
+
/* @__PURE__ */ r(F, { height: 8, background: "TRANSPARENT" }),
|
|
62
|
+
/* @__PURE__ */ r(m, { $renderAs: "ac4-black", $color: "BLACK_T_60", children: "Custom chapters" }),
|
|
63
|
+
/* @__PURE__ */ r(C, { $flexDirection: "row", $flexWrap: !0, $flexGapX: 1.25, children: s.map((t, l) => {
|
|
64
|
+
const e = x(
|
|
65
|
+
n,
|
|
66
|
+
a,
|
|
67
|
+
c,
|
|
68
|
+
t
|
|
69
|
+
);
|
|
70
|
+
return /* @__PURE__ */ r(
|
|
71
|
+
$,
|
|
72
|
+
{
|
|
73
|
+
chapterData: t,
|
|
74
|
+
canAddChapter: e,
|
|
75
|
+
chapterNo: l + 1,
|
|
76
|
+
onChapterItemClick: g,
|
|
77
|
+
showChapterTags: !0
|
|
78
|
+
},
|
|
79
|
+
t.id
|
|
80
|
+
);
|
|
81
|
+
}) })
|
|
67
82
|
] })
|
|
68
83
|
] });
|
|
69
84
|
});
|
|
70
85
|
export {
|
|
71
|
-
|
|
86
|
+
v as default
|
|
72
87
|
};
|
|
73
88
|
//# sourceMappingURL=chapters-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chapters-list.js","sources":["../../../../../../../src/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapters-list.tsx"],"sourcesContent":["import type { IChaptersListProps } from './chapter-selection-step-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback } from 'react';\n\nimport FlexView from '../../../../../ui/layout/flex-view';\nimport AppLoader from '../../../../../ui/loader/app-loader/app-loader';\nimport Seperator from '../../../../../ui/separator/separator';\nimport Text from '../../../../../ui/text/text';\nimport ChapterItemV2 from '../../chapter-item/chapter-item';\nimport { computeRecommendedNCustomChapters } from '../utils';\nimport * as Styled from './chapter-selection-step-styled';\n\nconst ChaptersList: FC<IChaptersListProps> = memo(props => {\n const { formData, isProcessing, onFormDataChange, isGoalCreation } = props;\n const { testType, primaryChaptersList, chapterGoalCategory } = formData;\n const { primaryGoalCategory } = chapterGoalCategory || {};\n const isSchoolSuccess = testType === 'no-test';\n\n const { recommendedChaptersList, customChaptersList } = computeRecommendedNCustomChapters(\n primaryChaptersList,\n primaryGoalCategory,\n isGoalCreation,\n );\n\n const handleChapterToggled = useCallback(\n (chapterId: string) => {\n //* If category is Test prep or Enrichment, Then one can not deselect the chapters.\n if (isGoalCreation && !isSchoolSuccess) return null;\n\n const updatedChaptersList = primaryChaptersList?.map(chapter => {\n if (chapter.id === chapterId) {\n return {\n ...chapter,\n added: !chapter.added,\n };\n }\n\n return chapter;\n });\n\n onFormDataChange({\n primaryChaptersList: updatedChaptersList,\n });\n },\n [primaryChaptersList, isSchoolSuccess, isGoalCreation, onFormDataChange],\n );\n\n if (isProcessing) {\n return (\n <Styled.ChaptersListWrapper\n $gapX={1.5}\n $gutterX={1.5}\n $flexGapX={1.25}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n <AppLoader />\n </Styled.ChaptersListWrapper>\n );\n }\n\n return (\n <Styled.ChaptersListWrapper $gapX={1.5} $gutterX={1.5} $flexGapX={1.25}>\n <FlexView $flexDirection=\"row\" $flexGap={4} $alignItems=\"center\">\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Recommended Chapters\n </Text>\n\n {isSchoolSuccess && (\n <Text $renderAs=\"ub2\" $color=\"BLACK_T_60\">\n (Click on any chapter to exclude it)\n </Text>\n )}\n </FlexView>\n\n <FlexView $flexDirection=\"row\" $flexWrap $flexGapX={1.25}>\n {recommendedChaptersList.length > 0 ? (\n recommendedChaptersList.map((chapter, idx) => {\n return (\n <ChapterItemV2\n key={chapter.id}\n chapterData={chapter}\n chapterNo={idx + 1}\n canAddChapter={
|
|
1
|
+
{"version":3,"file":"chapters-list.js","sources":["../../../../../../../src/features/milestone/create/comps/chapters-selection-step/chapter-selection-step-v2/chapters-list.tsx"],"sourcesContent":["import type { TMilestoneFormFlow } from '../../../milestone-create-types';\nimport type { IChapter } from '../../chapter-item/chapter-item-types';\nimport type { IChaptersListProps } from './chapter-selection-step-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useContext } from 'react';\n\nimport FlexView from '../../../../../ui/layout/flex-view';\nimport AppLoader from '../../../../../ui/loader/app-loader/app-loader';\nimport Seperator from '../../../../../ui/separator/separator';\nimport Text from '../../../../../ui/text/text';\nimport MilestoneCreateContext from '../../../milestone-create-context';\nimport ChapterItemV2 from '../../chapter-item/chapter-item';\nimport { computeRecommendedNCustomChapters } from '../utils';\nimport * as Styled from './chapter-selection-step-styled';\n\nconst getCanAddChapter = (\n isGoalCreation: boolean | undefined,\n isSchoolSuccess: boolean,\n flow: TMilestoneFormFlow | null,\n chapter: IChapter,\n): boolean => {\n // For school success, chapters can always be toggled\n if (!isGoalCreation || isSchoolSuccess) {\n return true;\n }\n\n // For non-school success test types\n const canToggleBasedOnFlow =\n (flow === 'EDIT' || flow === 'DRAFT_EDIT') && chapter.recommended === true;\n\n return canToggleBasedOnFlow;\n};\n\nconst ChaptersList: FC<IChaptersListProps> = memo(props => {\n const { formData, isProcessing, onFormDataChange, isGoalCreation } = props;\n const { testType, primaryChaptersList, chapterGoalCategory } = formData;\n const { primaryGoalCategory } = chapterGoalCategory || {};\n const isSchoolSuccess = testType === 'no-test';\n\n const { flow } = useContext(MilestoneCreateContext);\n\n const { recommendedChaptersList, customChaptersList } = computeRecommendedNCustomChapters(\n primaryChaptersList,\n primaryGoalCategory,\n isGoalCreation,\n );\n\n const handleChapterToggled = useCallback(\n (chapterId: string) => {\n //* If category is Test prep or Enrichment, Then one can not deselect the chapters.\n //* Unless the flow is EDIT or DRAFT_EDIT and chapter has recommended info true.\n if (isGoalCreation && !isSchoolSuccess) {\n const chapter = primaryChaptersList?.find(ch => ch.id === chapterId);\n const canToggle =\n (flow === 'EDIT' || flow === 'DRAFT_EDIT') && chapter?.recommended === true;\n\n if (!canToggle) return null;\n }\n\n const updatedChaptersList = primaryChaptersList?.map(chapter => {\n if (chapter.id === chapterId) {\n return {\n ...chapter,\n added: !chapter.added,\n };\n }\n\n return chapter;\n });\n\n onFormDataChange({\n primaryChaptersList: updatedChaptersList,\n });\n },\n [primaryChaptersList, isSchoolSuccess, isGoalCreation, onFormDataChange, flow],\n );\n\n if (isProcessing) {\n return (\n <Styled.ChaptersListWrapper\n $gapX={1.5}\n $gutterX={1.5}\n $flexGapX={1.25}\n $justifyContent=\"center\"\n $alignItems=\"center\"\n >\n <AppLoader />\n </Styled.ChaptersListWrapper>\n );\n }\n\n return (\n <Styled.ChaptersListWrapper $gapX={1.5} $gutterX={1.5} $flexGapX={1.25}>\n <FlexView $flexDirection=\"row\" $flexGap={4} $alignItems=\"center\">\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Recommended Chapters\n </Text>\n\n {isSchoolSuccess && (\n <Text $renderAs=\"ub2\" $color=\"BLACK_T_60\">\n (Click on any chapter to exclude it)\n </Text>\n )}\n </FlexView>\n\n <FlexView $flexDirection=\"row\" $flexWrap $flexGapX={1.25}>\n {recommendedChaptersList.length > 0 ? (\n recommendedChaptersList.map((chapter, idx) => {\n const canAddChapter = getCanAddChapter(isGoalCreation, isSchoolSuccess, flow, chapter);\n\n return (\n <ChapterItemV2\n key={chapter.id}\n chapterData={chapter}\n chapterNo={idx + 1}\n canAddChapter={canAddChapter}\n onChapterItemClick={handleChapterToggled}\n />\n );\n })\n ) : (\n <Text $renderAs=\"ub1\">No recommended chapters available</Text>\n )}\n </FlexView>\n\n {!!customChaptersList?.length && (\n <>\n <Seperator height={8} background=\"TRANSPARENT\" />\n\n <Text $renderAs=\"ac4-black\" $color=\"BLACK_T_60\">\n Custom chapters\n </Text>\n\n <FlexView $flexDirection=\"row\" $flexWrap $flexGapX={1.25}>\n {customChaptersList.map((chapter, idx) => {\n const canAddChapter = getCanAddChapter(\n isGoalCreation,\n isSchoolSuccess,\n flow,\n chapter,\n );\n\n return (\n <ChapterItemV2\n key={chapter.id}\n chapterData={chapter}\n canAddChapter={canAddChapter}\n chapterNo={idx + 1}\n onChapterItemClick={handleChapterToggled}\n showChapterTags\n />\n );\n })}\n </FlexView>\n </>\n )}\n </Styled.ChaptersListWrapper>\n );\n});\n\nexport default ChaptersList;\n"],"names":["getCanAddChapter","isGoalCreation","isSchoolSuccess","flow","chapter","ChaptersList","memo","props","formData","isProcessing","onFormDataChange","testType","primaryChaptersList","chapterGoalCategory","primaryGoalCategory","useContext","MilestoneCreateContext","recommendedChaptersList","customChaptersList","computeRecommendedNCustomChapters","handleChapterToggled","useCallback","chapterId","ch","updatedChaptersList","jsx","Styled.ChaptersListWrapper","AppLoader","jsxs","FlexView","Text","idx","canAddChapter","ChapterItemV2","Fragment","Seperator"],"mappings":"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"}
|