@cuemath/leap 3.3.34 → 3.3.36-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/gif/gif.js +1 -4
- package/dist/assets/gif/gif.js.map +1 -1
- package/dist/assets/illustrations/illustrations.js +1 -1
- package/dist/assets/illustrations/illustrations.js.map +1 -1
- package/dist/assets/line-icons/icons/chevron-right.js.map +1 -1
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js +1 -1
- package/dist/features/auth/comps/animated-avatar-message/animated-avatar-message.js.map +1 -1
- package/dist/features/auth/comps/otp-input/otp-input.js +29 -35
- package/dist/features/auth/comps/otp-input/otp-input.js.map +1 -1
- package/dist/features/auth/pla-signup/pla-analytics-events.js +3 -12
- 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/milestone/create/milestone-create-helpers.js +7 -13
- package/dist/features/milestone/create/milestone-create-helpers.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 +32 -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/trial-session/comps/class-preference/class-preference.js +58 -74
- package/dist/features/trial-session/comps/class-preference/class-preference.js.map +1 -1
- package/dist/features/trial-session/comps/learning-plan/index.js +45 -47
- package/dist/features/trial-session/comps/learning-plan/index.js.map +1 -1
- package/dist/features/trial-session/comps/navigation-bar/index.js +40 -41
- package/dist/features/trial-session/comps/navigation-bar/index.js.map +1 -1
- 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 +12 -18
- 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/school-goals/school-goals.js +57 -59
- package/dist/features/trial-session/comps/school-goals/school-goals.js.map +1 -1
- package/dist/features/trial-session/comps/session-report/session-report.js +15 -15
- package/dist/features/trial-session/comps/session-report/session-report.js.map +1 -1
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js +40 -41
- package/dist/features/trial-session/comps/student-enrichment/student-enrichment.js.map +1 -1
- package/dist/features/trial-session/comps/student-feedback/student-feedback-constants.js +0 -5
- package/dist/features/trial-session/comps/student-feedback/student-feedback-constants.js.map +1 -1
- package/dist/features/trial-session/comps/student-feedback/student-feedback.js +51 -96
- package/dist/features/trial-session/comps/student-feedback/student-feedback.js.map +1 -1
- package/dist/features/trial-session/comps/student-profile/student-profile.js +63 -70
- package/dist/features/trial-session/comps/student-profile/student-profile.js.map +1 -1
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js +44 -43
- package/dist/features/trial-session/comps/teacher-intro/teacher-profile/teacher-profile.js.map +1 -1
- package/dist/features/trial-session/comps/test-prep/test-prep.js +40 -41
- package/dist/features/trial-session/comps/test-prep/test-prep.js.map +1 -1
- package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js +61 -60
- package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js.map +1 -1
- package/dist/features/trial-session/helper.js +61 -76
- package/dist/features/trial-session/helper.js.map +1 -1
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js +144 -174
- package/dist/features/trial-session/hooks/use-trial-session-navigation.js.map +1 -1
- package/dist/features/trial-session/trial-session-types.js.map +1 -1
- package/dist/features/trial-session/trial-session-view.js +110 -99
- package/dist/features/trial-session/trial-session-view.js.map +1 -1
- package/dist/features/ui/accordion/accordion-items/accordion-items.js +13 -13
- package/dist/features/ui/accordion/accordion-items/accordion-items.js.map +1 -1
- package/dist/features/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/features/utils/utils.js +1 -1
- package/dist/features/utils/utils.js.map +1 -1
- package/dist/index.d.ts +145 -94
- 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/dist/static/trophy.a8ea85ef.json +6813 -0
- package/package.json +3 -2
- 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 -54
- 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 -72
- 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/trial-session/api/teacher-availability.js +0 -9
- package/dist/features/trial-session/api/teacher-availability.js.map +0 -1
- package/dist/features/trial-session/comps/class-preference/helpers.js +0 -28
- package/dist/features/trial-session/comps/class-preference/helpers.js.map +0 -1
- package/dist/features/trial-session/hooks/use-slide-config-update.js +0 -49
- package/dist/features/trial-session/hooks/use-slide-config-update.js.map +0 -1
- package/dist/static/learning-session-grid-bg-mobile.8d2b7258.gif +0 -0
- package/dist/static/way-forward-grid-bg-mobile.374043d7.gif +0 -0
- package/dist/static/your-goals-grid-bg-mobile.62557024.gif +0 -0
- /package/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
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useState as r, useCallback as c } from "react";
|
|
2
|
+
import n from "../../../communication/hooks/use-inclass-message-broker/use-inclass-message-broker.js";
|
|
3
|
+
const p = (l, e) => {
|
|
4
|
+
const { publish: a } = n({
|
|
5
|
+
studentClassroomId: l
|
|
6
|
+
}), [o, d] = r(null);
|
|
7
|
+
return { sendSticker: c(
|
|
8
|
+
(t, m) => {
|
|
9
|
+
const s = {
|
|
10
|
+
message: {
|
|
11
|
+
data: {
|
|
12
|
+
selectedSticker: {
|
|
13
|
+
id: t.id,
|
|
14
|
+
name: t.name
|
|
15
|
+
},
|
|
16
|
+
effectId: m
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
type: "STICKERS"
|
|
20
|
+
};
|
|
21
|
+
d(s), a == null || a({
|
|
22
|
+
eventName: "STICKERS",
|
|
23
|
+
eventPayload: s
|
|
24
|
+
}), e == null || e(s);
|
|
25
|
+
},
|
|
26
|
+
[e, a]
|
|
27
|
+
), lastPayload: o };
|
|
28
|
+
};
|
|
29
|
+
export {
|
|
30
|
+
p as useHandleStickerSend
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=use-handle-sticker-send.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-handle-sticker-send.js","sources":["../../../../../src/features/stickers/sticker-selector/hooks/use-handle-sticker-send.tsx"],"sourcesContent":["import type {\n IStickerData,\n TStickerAnimationEffects,\n TStickersPayload,\n} from '../../stickers-types';\n\nimport { useState, useCallback } from 'react';\n\nimport useInClassMessageBroker from '../../../communication/hooks/use-inclass-message-broker/use-inclass-message-broker';\n\nexport const useHandleStickerSend = (\n studentClassroomId: string,\n onStickerSend?: (payload: TStickersPayload) => void,\n) => {\n const { publish } = useInClassMessageBroker({\n studentClassroomId,\n });\n\n const [lastPayload, setLastPayload] = useState<TStickersPayload | null>(null);\n\n const sendSticker = useCallback(\n (sticker: IStickerData, effect: TStickerAnimationEffects) => {\n const payload: TStickersPayload = {\n message: {\n data: {\n selectedSticker: {\n id: sticker.id,\n name: sticker.name,\n },\n effectId: effect,\n },\n },\n type: 'STICKERS',\n };\n\n setLastPayload(payload);\n\n publish?.({\n eventName: 'STICKERS',\n eventPayload: payload,\n });\n\n onStickerSend?.(payload);\n },\n [onStickerSend, publish],\n );\n\n return { sendSticker, lastPayload };\n};\n"],"names":["useHandleStickerSend","studentClassroomId","onStickerSend","publish","useInClassMessageBroker","lastPayload","setLastPayload","useState","useCallback","sticker","effect","payload"],"mappings":";;AAUa,MAAAA,IAAuB,CAClCC,GACAC,MACG;AACG,QAAA,EAAE,SAAAC,EAAQ,IAAIC,EAAwB;AAAA,IAC1C,oBAAAH;AAAA,EAAA,CACD,GAEK,CAACI,GAAaC,CAAc,IAAIC,EAAkC,IAAI;AA6BrE,SAAA,EAAE,aA3BWC;AAAA,IAClB,CAACC,GAAuBC,MAAqC;AAC3D,YAAMC,IAA4B;AAAA,QAChC,SAAS;AAAA,UACP,MAAM;AAAA,YACJ,iBAAiB;AAAA,cACf,IAAIF,EAAQ;AAAA,cACZ,MAAMA,EAAQ;AAAA,YAChB;AAAA,YACA,UAAUC;AAAA,UACZ;AAAA,QACF;AAAA,QACA,MAAM;AAAA,MAAA;AAGR,MAAAJ,EAAeK,CAAO,GAEZR,KAAA,QAAAA,EAAA;AAAA,QACR,WAAW;AAAA,QACX,cAAcQ;AAAA,MAAA,IAGhBT,KAAA,QAAAA,EAAgBS;AAAA,IAClB;AAAA,IACA,CAACT,GAAeC,CAAO;AAAA,EAAA,GAGH,aAAAE;AACxB;"}
|
package/dist/features/stickers/sticker-selector/hooks/use-stickers-journey/use-stickers-journey.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsxs as l, jsx as e, Fragment as p } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback as c } from "react";
|
|
3
|
+
import { JOURNEY_ID_TEACHER as t } from "../../../../journey/journey-id/journey-id-teacher.js";
|
|
4
|
+
import { IndicatorType as h } from "../../../../journey/use-journey/constants.js";
|
|
5
|
+
import { useJourney as u } from "../../../../journey/use-journey/use-journey.js";
|
|
6
|
+
import T from "../../../../ui/buttons/button/button.js";
|
|
7
|
+
import d from "../../../../ui/layout/flex-view.js";
|
|
8
|
+
import C from "../../../../ui/separator/separator.js";
|
|
9
|
+
import m from "../../../../ui/text/text.js";
|
|
10
|
+
const N = ({
|
|
11
|
+
triggerRef: o,
|
|
12
|
+
tooltipConfig: r
|
|
13
|
+
}) => {
|
|
14
|
+
const { setJourney: n, nextCoachmark: i, endJourney: a } = u(), s = c(() => {
|
|
15
|
+
a(t.STICKERS_INTRO_JOURNEY);
|
|
16
|
+
}, [a]);
|
|
17
|
+
return {
|
|
18
|
+
startTeacherStickersJourney: c(() => {
|
|
19
|
+
if (!o.current) return;
|
|
20
|
+
const O = {
|
|
21
|
+
position: r.position,
|
|
22
|
+
tooltipXCoOrdinates: r.tooltipXCoOrdinates,
|
|
23
|
+
tooltipYCoOrdinates: r.tooltipYCoOrdinates,
|
|
24
|
+
arrowXCoOrdinates: r.arrowXCoOrdinates,
|
|
25
|
+
arrowYCoOrdinates: r.arrowYCoOrdinates,
|
|
26
|
+
borderColor: "BLACK",
|
|
27
|
+
arrowColor: "BLACK",
|
|
28
|
+
backgroundColor: "PURPLE_4",
|
|
29
|
+
tooltipItem: /* @__PURE__ */ l(d, { children: [
|
|
30
|
+
/* @__PURE__ */ e(d, { children: /* @__PURE__ */ l(
|
|
31
|
+
m,
|
|
32
|
+
{
|
|
33
|
+
$renderOnMobileAs: "ab3",
|
|
34
|
+
$renderAs: "ab3",
|
|
35
|
+
as: "span",
|
|
36
|
+
$inline: !0,
|
|
37
|
+
$whiteSpace: "normal",
|
|
38
|
+
children: [
|
|
39
|
+
/* @__PURE__ */ e(m, { $renderAs: "ab3-bold", as: "span", $inline: !0, children: "New Stickers" }),
|
|
40
|
+
" ",
|
|
41
|
+
"- Use them to celebrate little moments of joy!"
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
) }),
|
|
45
|
+
/* @__PURE__ */ e(C, { height: 10 }),
|
|
46
|
+
/* @__PURE__ */ e(
|
|
47
|
+
T,
|
|
48
|
+
{
|
|
49
|
+
renderAs: "secondary",
|
|
50
|
+
label: "Got It",
|
|
51
|
+
size: "xsmall",
|
|
52
|
+
width: "50%",
|
|
53
|
+
onClick: s
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
] })
|
|
57
|
+
};
|
|
58
|
+
n(t.STICKERS_INTRO_JOURNEY, [
|
|
59
|
+
{
|
|
60
|
+
originalElementToHighlightRef: o,
|
|
61
|
+
type: h.TOOLTIP,
|
|
62
|
+
elementToHighlight: /* @__PURE__ */ e(p, {}),
|
|
63
|
+
indicator: O
|
|
64
|
+
}
|
|
65
|
+
]), i(t.STICKERS_INTRO_JOURNEY);
|
|
66
|
+
}, [o, n, s, i, r])
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
export {
|
|
70
|
+
N as useStickersJourney
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=use-stickers-journey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-stickers-journey.js","sources":["../../../../../../src/features/stickers/sticker-selector/hooks/use-stickers-journey/use-stickers-journey.tsx"],"sourcesContent":["import type { IArrowTooltipProps } from '../../../../ui/arrow-tooltip/arrow-tooltip-types';\nimport type {\n IUseTeacherStickersJourneyProps,\n TArrowTooltipConfigProps,\n} from './use-stickers-journey-types';\n\nimport React, { useCallback } from 'react';\n\nimport { JOURNEY_ID_TEACHER } from '../../../../journey/journey-id/journey-id-teacher';\nimport { IndicatorType } from '../../../../journey/use-journey/constants';\nimport { useJourney } from '../../../../journey/use-journey/use-journey';\nimport Button from '../../../../ui/buttons/button/button';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\n\nexport const useStickersJourney = ({\n triggerRef,\n tooltipConfig,\n}: IUseTeacherStickersJourneyProps) => {\n const { setJourney, nextCoachmark, endJourney } = useJourney();\n\n const endTeacherStickersOnboarding = useCallback(() => {\n endJourney(JOURNEY_ID_TEACHER.STICKERS_INTRO_JOURNEY);\n }, [endJourney]);\n\n const startTeacherStickersJourney = useCallback(() => {\n if (!triggerRef.current) return;\n\n const indicatorPayload: TArrowTooltipConfigProps & {\n borderColor: string;\n arrowColor: string;\n backgroundColor: string;\n tooltipItem: React.ReactNode;\n } = {\n position: tooltipConfig.position,\n tooltipXCoOrdinates: tooltipConfig.tooltipXCoOrdinates,\n tooltipYCoOrdinates: tooltipConfig.tooltipYCoOrdinates,\n arrowXCoOrdinates: tooltipConfig.arrowXCoOrdinates,\n arrowYCoOrdinates: tooltipConfig.arrowYCoOrdinates,\n borderColor: 'BLACK',\n arrowColor: 'BLACK',\n backgroundColor: 'PURPLE_4',\n tooltipItem: (\n <FlexView>\n <FlexView>\n <Text\n $renderOnMobileAs=\"ab3\"\n $renderAs=\"ab3\"\n as=\"span\"\n $inline={true}\n $whiteSpace=\"normal\"\n >\n <Text $renderAs=\"ab3-bold\" as=\"span\" $inline={true}>\n New Stickers\n </Text>{' '}\n - Use them to celebrate little moments of joy!\n </Text>\n </FlexView>\n <Separator height={10} />\n <Button\n renderAs=\"secondary\"\n label=\"Got It\"\n size=\"xsmall\"\n width=\"50%\"\n onClick={endTeacherStickersOnboarding}\n />\n </FlexView>\n ),\n };\n\n setJourney(JOURNEY_ID_TEACHER.STICKERS_INTRO_JOURNEY, [\n {\n originalElementToHighlightRef: triggerRef,\n type: IndicatorType.TOOLTIP,\n elementToHighlight: <></>,\n indicator: indicatorPayload as IArrowTooltipProps,\n },\n ]);\n\n nextCoachmark(JOURNEY_ID_TEACHER.STICKERS_INTRO_JOURNEY);\n }, [triggerRef, setJourney, endTeacherStickersOnboarding, nextCoachmark, tooltipConfig]);\n\n return {\n startTeacherStickersJourney,\n };\n};\n"],"names":["useStickersJourney","triggerRef","tooltipConfig","setJourney","nextCoachmark","endJourney","useJourney","endTeacherStickersOnboarding","useCallback","JOURNEY_ID_TEACHER","indicatorPayload","FlexView","jsx","jsxs","Text","Separator","Button","IndicatorType","Fragment"],"mappings":";;;;;;;;;AAgBO,MAAMA,IAAqB,CAAC;AAAA,EACjC,YAAAC;AAAA,EACA,eAAAC;AACF,MAAuC;AACrC,QAAM,EAAE,YAAAC,GAAY,eAAAC,GAAe,YAAAC,MAAeC,EAAW,GAEvDC,IAA+BC,EAAY,MAAM;AACrD,IAAAH,EAAWI,EAAmB,sBAAsB;AAAA,EAAA,GACnD,CAACJ,CAAU,CAAC;AA2DR,SAAA;AAAA,IACL,6BA1DkCG,EAAY,MAAM;AAChD,UAAA,CAACP,EAAW,QAAS;AAEzB,YAAMS,IAKF;AAAA,QACF,UAAUR,EAAc;AAAA,QACxB,qBAAqBA,EAAc;AAAA,QACnC,qBAAqBA,EAAc;AAAA,QACnC,mBAAmBA,EAAc;AAAA,QACjC,mBAAmBA,EAAc;AAAA,QACjC,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,iBAAiB;AAAA,QACjB,+BACGS,GACC,EAAA,UAAA;AAAA,UAAA,gBAAAC,EAACD,GACC,EAAA,UAAA,gBAAAE;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,mBAAkB;AAAA,cAClB,WAAU;AAAA,cACV,IAAG;AAAA,cACH,SAAS;AAAA,cACT,aAAY;AAAA,cAEZ,UAAA;AAAA,gBAAA,gBAAAF,EAACE,KAAK,WAAU,YAAW,IAAG,QAAO,SAAS,IAAM,UAEpD,eAAA,CAAA;AAAA,gBAAQ;AAAA,gBAAI;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA,GAGhB;AAAA,UACA,gBAAAF,EAACG,GAAU,EAAA,QAAQ,GAAI,CAAA;AAAA,UACvB,gBAAAH;AAAA,YAACI;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,OAAM;AAAA,cACN,MAAK;AAAA,cACL,OAAM;AAAA,cACN,SAAST;AAAA,YAAA;AAAA,UACX;AAAA,QAAA,GACF;AAAA,MAAA;AAIJ,MAAAJ,EAAWM,EAAmB,wBAAwB;AAAA,QACpD;AAAA,UACE,+BAA+BR;AAAA,UAC/B,MAAMgB,EAAc;AAAA,UACpB,oBAAsB,gBAAAL,EAAAM,GAAA,EAAA;AAAA,UACtB,WAAWR;AAAA,QACb;AAAA,MAAA,CACD,GAEDN,EAAcK,EAAmB,sBAAsB;AAAA,IAAA,GACtD,CAACR,GAAYE,GAAYI,GAA8BH,GAAeF,CAAa,CAAC;AAAA,EAGrF;AAEJ;"}
|
|
@@ -1,85 +1,86 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { TriggerWrapper as
|
|
6
|
-
const
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { memo as j, useState as B, useCallback as G, useMemo as d } from "react";
|
|
3
|
+
import K from "../../ui/arrow-tooltip/arrow-tooltip.js";
|
|
4
|
+
import R from "./comps/stiker-selector-grid/sticker-selector-grid.js";
|
|
5
|
+
import { TriggerWrapper as _ } from "./sticker-selector-styled.js";
|
|
6
|
+
const $ = ({
|
|
7
7
|
triggerNode: e,
|
|
8
|
-
onStickerSend:
|
|
8
|
+
onStickerSend: r,
|
|
9
9
|
gridConfig: c,
|
|
10
|
-
tooltipConfig:
|
|
11
|
-
visible:
|
|
10
|
+
tooltipConfig: p,
|
|
11
|
+
visible: f
|
|
12
12
|
}) => {
|
|
13
13
|
const { columns: i = 4, gap: s = 8, stickerSize: a = 48 } = c, {
|
|
14
14
|
isAnimated: u,
|
|
15
|
-
arrowColor:
|
|
15
|
+
arrowColor: C,
|
|
16
16
|
arrowSize: b,
|
|
17
|
-
arrowXCoOrdinates:
|
|
17
|
+
arrowXCoOrdinates: h,
|
|
18
18
|
arrowYCoOrdinates: w,
|
|
19
|
-
backgroundColor:
|
|
20
|
-
borderColor:
|
|
21
|
-
position:
|
|
22
|
-
renderAs:
|
|
23
|
-
textVariant:
|
|
24
|
-
tooltipOffset:
|
|
19
|
+
backgroundColor: T,
|
|
20
|
+
borderColor: g,
|
|
21
|
+
position: k = "bottom",
|
|
22
|
+
renderAs: x = "primary",
|
|
23
|
+
textVariant: E,
|
|
24
|
+
tooltipOffset: O,
|
|
25
25
|
tooltipXCoOrdinates: y,
|
|
26
|
-
tooltipYCoOrdinates:
|
|
27
|
-
width:
|
|
28
|
-
widthX:
|
|
29
|
-
zIndex:
|
|
30
|
-
parentWidth:
|
|
31
|
-
isBlocking:
|
|
32
|
-
} =
|
|
33
|
-
(
|
|
34
|
-
if (
|
|
35
|
-
|
|
36
|
-
|
|
26
|
+
tooltipYCoOrdinates: I,
|
|
27
|
+
width: z,
|
|
28
|
+
widthX: A,
|
|
29
|
+
zIndex: M,
|
|
30
|
+
parentWidth: S,
|
|
31
|
+
isBlocking: X = !1
|
|
32
|
+
} = p, [o, l] = B(!1), n = G(
|
|
33
|
+
(V) => {
|
|
34
|
+
if (o) return;
|
|
35
|
+
const m = ["burst-from-edges", "pop-expand", "float-up", "fall-down"], W = m[Math.floor(Math.random() * m.length)];
|
|
36
|
+
r == null || r(V, W), l(!0);
|
|
37
|
+
const Y = setTimeout(() => {
|
|
37
38
|
l(!1);
|
|
38
39
|
}, 5e3);
|
|
39
|
-
return () => clearTimeout(
|
|
40
|
+
return () => clearTimeout(Y);
|
|
40
41
|
},
|
|
41
|
-
[
|
|
42
|
-
),
|
|
43
|
-
() => /* @__PURE__ */
|
|
44
|
-
|
|
42
|
+
[r, o]
|
|
43
|
+
), D = d(
|
|
44
|
+
() => /* @__PURE__ */ t(
|
|
45
|
+
R,
|
|
45
46
|
{
|
|
46
47
|
columns: i,
|
|
47
48
|
gap: s,
|
|
48
49
|
stickerSize: a,
|
|
49
|
-
onStickerClick:
|
|
50
|
-
disabled:
|
|
50
|
+
onStickerClick: n,
|
|
51
|
+
disabled: o
|
|
51
52
|
}
|
|
52
53
|
),
|
|
53
|
-
[i, s, a,
|
|
54
|
-
),
|
|
55
|
-
return /* @__PURE__ */
|
|
56
|
-
|
|
54
|
+
[i, s, a, n, o]
|
|
55
|
+
), F = d(() => /* @__PURE__ */ t(_, { $disabled: o, children: e }), [o, e]);
|
|
56
|
+
return /* @__PURE__ */ t(
|
|
57
|
+
K,
|
|
57
58
|
{
|
|
58
|
-
children:
|
|
59
|
+
children: F,
|
|
59
60
|
alwaysVisible: !0,
|
|
60
|
-
hidden: !
|
|
61
|
-
tooltipItem:
|
|
62
|
-
renderAs:
|
|
63
|
-
position:
|
|
64
|
-
isBlocking:
|
|
61
|
+
hidden: !f,
|
|
62
|
+
tooltipItem: D,
|
|
63
|
+
renderAs: x,
|
|
64
|
+
position: k,
|
|
65
|
+
isBlocking: X,
|
|
65
66
|
isAnimated: u,
|
|
66
|
-
zIndex:
|
|
67
|
-
width:
|
|
68
|
-
widthX:
|
|
69
|
-
parentWidth:
|
|
70
|
-
backgroundColor:
|
|
71
|
-
borderColor:
|
|
72
|
-
textVariant:
|
|
73
|
-
tooltipOffset:
|
|
74
|
-
arrowColor:
|
|
67
|
+
zIndex: M,
|
|
68
|
+
width: z,
|
|
69
|
+
widthX: A,
|
|
70
|
+
parentWidth: S,
|
|
71
|
+
backgroundColor: T,
|
|
72
|
+
borderColor: g,
|
|
73
|
+
textVariant: E,
|
|
74
|
+
tooltipOffset: O,
|
|
75
|
+
arrowColor: C,
|
|
75
76
|
arrowSize: b,
|
|
76
|
-
arrowXCoOrdinates:
|
|
77
|
+
arrowXCoOrdinates: h,
|
|
77
78
|
arrowYCoOrdinates: w,
|
|
78
79
|
tooltipXCoOrdinates: y,
|
|
79
|
-
tooltipYCoOrdinates:
|
|
80
|
+
tooltipYCoOrdinates: I
|
|
80
81
|
}
|
|
81
82
|
);
|
|
82
|
-
}, P =
|
|
83
|
+
}, P = j($);
|
|
83
84
|
export {
|
|
84
85
|
P as default
|
|
85
86
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sticker-selector.js","sources":["../../../../src/features/stickers/sticker-selector/sticker-selector.tsx"],"sourcesContent":["import type { IStickerData } from '../stickers-types';\nimport type { IStickerSelectorProps } from './sticker-selector-types';\nimport type { FC } from 'react';\n\nimport { memo, useMemo, useState, useCallback } from 'react';\n\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport StickerSelectorGrid from './comps/stiker-selector-grid/sticker-selector-grid';\nimport * as Styled from './sticker-selector-styled';\n\nconst StickerSelector: FC<IStickerSelectorProps> = ({\n triggerNode,\n onStickerSend,\n gridConfig,\n tooltipConfig,\n visible,\n}) => {\n const { columns = 4, gap = 8, stickerSize = 48 } = gridConfig;\n const {\n isAnimated,\n arrowColor,\n arrowSize,\n arrowXCoOrdinates,\n arrowYCoOrdinates,\n backgroundColor,\n borderColor,\n position = 'bottom',\n renderAs = 'primary',\n textVariant,\n tooltipOffset,\n tooltipXCoOrdinates,\n tooltipYCoOrdinates,\n width,\n widthX,\n zIndex,\n parentWidth,\n isBlocking = false,\n } = tooltipConfig;\n\n const [isTemporarilyDisabled, setIsTemporarilyDisabled] = useState(false);\n\n const handleStickerSend = useCallback(\n (sticker: IStickerData) => {\n if (isTemporarilyDisabled) return;\n\n onStickerSend?.(sticker);\n setIsTemporarilyDisabled(true);\n\n const timeout = setTimeout(() => {\n setIsTemporarilyDisabled(false);\n }, 5000);\n\n return () => clearTimeout(timeout);\n },\n [onStickerSend, isTemporarilyDisabled],\n );\n\n const tooltipItem = useMemo(\n () => (\n <StickerSelectorGrid\n columns={columns}\n gap={gap}\n stickerSize={stickerSize}\n onStickerClick={handleStickerSend}\n disabled={isTemporarilyDisabled}\n />\n ),\n [columns, gap, stickerSize, handleStickerSend, isTemporarilyDisabled],\n );\n\n const triggerEle = useMemo(() => {\n return (\n <Styled.TriggerWrapper $disabled={isTemporarilyDisabled}>{triggerNode}</Styled.TriggerWrapper>\n );\n }, [isTemporarilyDisabled, triggerNode]);\n\n return (\n <ArrowTooltip\n children={triggerEle}\n alwaysVisible\n hidden={!visible}\n tooltipItem={tooltipItem}\n renderAs={renderAs}\n position={position}\n isBlocking={isBlocking}\n isAnimated={isAnimated}\n zIndex={zIndex}\n width={width}\n widthX={widthX}\n parentWidth={parentWidth}\n backgroundColor={backgroundColor}\n borderColor={borderColor}\n textVariant={textVariant}\n tooltipOffset={tooltipOffset}\n arrowColor={arrowColor}\n arrowSize={arrowSize}\n arrowXCoOrdinates={arrowXCoOrdinates}\n arrowYCoOrdinates={arrowYCoOrdinates}\n tooltipXCoOrdinates={tooltipXCoOrdinates}\n tooltipYCoOrdinates={tooltipYCoOrdinates}\n />\n );\n};\n\nexport default memo(StickerSelector);\n"],"names":["StickerSelector","triggerNode","onStickerSend","gridConfig","tooltipConfig","visible","columns","gap","stickerSize","isAnimated","arrowColor","arrowSize","arrowXCoOrdinates","arrowYCoOrdinates","backgroundColor","borderColor","position","renderAs","textVariant","tooltipOffset","tooltipXCoOrdinates","tooltipYCoOrdinates","width","widthX","zIndex","parentWidth","isBlocking","isTemporarilyDisabled","setIsTemporarilyDisabled","useState","handleStickerSend","useCallback","sticker","timeout","tooltipItem","useMemo","jsx","StickerSelectorGrid","triggerEle","Styled.TriggerWrapper","ArrowTooltip","stickerSelector","memo"],"mappings":";;;;;AAUA,MAAMA,IAA6C,CAAC;AAAA,EAClD,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,SAAAC;AACF,MAAM;AACJ,QAAM,EAAE,SAAAC,IAAU,GAAG,KAAAC,IAAM,GAAG,aAAAC,IAAc,GAAO,IAAAL,GAC7C;AAAA,IACJ,YAAAM;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,UAAAC,IAAW;AAAA,IACX,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,EACX,IAAAtB,GAEE,CAACuB,GAAuBC,CAAwB,IAAIC,EAAS,EAAK,GAElEC,IAAoBC;AAAA,IACxB,CAACC,MAA0B;AACzB,UAAIL,EAAuB;AAE3B,
|
|
1
|
+
{"version":3,"file":"sticker-selector.js","sources":["../../../../src/features/stickers/sticker-selector/sticker-selector.tsx"],"sourcesContent":["import type { IStickerData, TStickerAnimationEffects } from '../stickers-types';\nimport type { IStickerSelectorProps } from './sticker-selector-types';\nimport type { FC } from 'react';\n\nimport { memo, useMemo, useState, useCallback } from 'react';\n\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\nimport StickerSelectorGrid from './comps/stiker-selector-grid/sticker-selector-grid';\nimport * as Styled from './sticker-selector-styled';\n\nconst StickerSelector: FC<IStickerSelectorProps> = ({\n triggerNode,\n onStickerSend,\n gridConfig,\n tooltipConfig,\n visible,\n}) => {\n const { columns = 4, gap = 8, stickerSize = 48 } = gridConfig;\n const {\n isAnimated,\n arrowColor,\n arrowSize,\n arrowXCoOrdinates,\n arrowYCoOrdinates,\n backgroundColor,\n borderColor,\n position = 'bottom',\n renderAs = 'primary',\n textVariant,\n tooltipOffset,\n tooltipXCoOrdinates,\n tooltipYCoOrdinates,\n width,\n widthX,\n zIndex,\n parentWidth,\n isBlocking = false,\n } = tooltipConfig;\n\n const [isTemporarilyDisabled, setIsTemporarilyDisabled] = useState(false);\n\n const handleStickerSend = useCallback(\n (sticker: IStickerData) => {\n if (isTemporarilyDisabled) return;\n\n const STICKER_EFFECTS = ['burst-from-edges', 'pop-expand', 'float-up', 'fall-down'] as const;\n\n const randomEffect: TStickerAnimationEffects =\n STICKER_EFFECTS[Math.floor(Math.random() * STICKER_EFFECTS.length)]!;\n\n onStickerSend?.(sticker, randomEffect);\n setIsTemporarilyDisabled(true);\n\n const timeout = setTimeout(() => {\n setIsTemporarilyDisabled(false);\n }, 5000);\n\n return () => clearTimeout(timeout);\n },\n [onStickerSend, isTemporarilyDisabled],\n );\n\n const tooltipItem = useMemo(\n () => (\n <StickerSelectorGrid\n columns={columns}\n gap={gap}\n stickerSize={stickerSize}\n onStickerClick={handleStickerSend}\n disabled={isTemporarilyDisabled}\n />\n ),\n [columns, gap, stickerSize, handleStickerSend, isTemporarilyDisabled],\n );\n\n const triggerEle = useMemo(() => {\n return (\n <Styled.TriggerWrapper $disabled={isTemporarilyDisabled}>{triggerNode}</Styled.TriggerWrapper>\n );\n }, [isTemporarilyDisabled, triggerNode]);\n\n return (\n <ArrowTooltip\n children={triggerEle}\n alwaysVisible\n hidden={!visible}\n tooltipItem={tooltipItem}\n renderAs={renderAs}\n position={position}\n isBlocking={isBlocking}\n isAnimated={isAnimated}\n zIndex={zIndex}\n width={width}\n widthX={widthX}\n parentWidth={parentWidth}\n backgroundColor={backgroundColor}\n borderColor={borderColor}\n textVariant={textVariant}\n tooltipOffset={tooltipOffset}\n arrowColor={arrowColor}\n arrowSize={arrowSize}\n arrowXCoOrdinates={arrowXCoOrdinates}\n arrowYCoOrdinates={arrowYCoOrdinates}\n tooltipXCoOrdinates={tooltipXCoOrdinates}\n tooltipYCoOrdinates={tooltipYCoOrdinates}\n />\n );\n};\n\nexport default memo(StickerSelector);\n"],"names":["StickerSelector","triggerNode","onStickerSend","gridConfig","tooltipConfig","visible","columns","gap","stickerSize","isAnimated","arrowColor","arrowSize","arrowXCoOrdinates","arrowYCoOrdinates","backgroundColor","borderColor","position","renderAs","textVariant","tooltipOffset","tooltipXCoOrdinates","tooltipYCoOrdinates","width","widthX","zIndex","parentWidth","isBlocking","isTemporarilyDisabled","setIsTemporarilyDisabled","useState","handleStickerSend","useCallback","sticker","STICKER_EFFECTS","randomEffect","timeout","tooltipItem","useMemo","jsx","StickerSelectorGrid","triggerEle","Styled.TriggerWrapper","ArrowTooltip","stickerSelector","memo"],"mappings":";;;;;AAUA,MAAMA,IAA6C,CAAC;AAAA,EAClD,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,SAAAC;AACF,MAAM;AACJ,QAAM,EAAE,SAAAC,IAAU,GAAG,KAAAC,IAAM,GAAG,aAAAC,IAAc,GAAO,IAAAL,GAC7C;AAAA,IACJ,YAAAM;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,UAAAC,IAAW;AAAA,IACX,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,EACX,IAAAtB,GAEE,CAACuB,GAAuBC,CAAwB,IAAIC,EAAS,EAAK,GAElEC,IAAoBC;AAAA,IACxB,CAACC,MAA0B;AACzB,UAAIL,EAAuB;AAE3B,YAAMM,IAAkB,CAAC,oBAAoB,cAAc,YAAY,WAAW,GAE5EC,IACJD,EAAgB,KAAK,MAAM,KAAK,WAAWA,EAAgB,MAAM,CAAC;AAEpE,MAAA/B,KAAA,QAAAA,EAAgB8B,GAASE,IACzBN,EAAyB,EAAI;AAEvB,YAAAO,IAAU,WAAW,MAAM;AAC/B,QAAAP,EAAyB,EAAK;AAAA,SAC7B,GAAI;AAEA,aAAA,MAAM,aAAaO,CAAO;AAAA,IACnC;AAAA,IACA,CAACjC,GAAeyB,CAAqB;AAAA,EAAA,GAGjCS,IAAcC;AAAA,IAClB,MACE,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,SAAAjC;AAAA,QACA,KAAAC;AAAA,QACA,aAAAC;AAAA,QACA,gBAAgBsB;AAAA,QAChB,UAAUH;AAAA,MAAA;AAAA,IACZ;AAAA,IAEF,CAACrB,GAASC,GAAKC,GAAasB,GAAmBH,CAAqB;AAAA,EAAA,GAGhEa,IAAaH,EAAQ,wBAEtBI,GAAA,EAAsB,WAAWd,GAAwB,UAAY1B,EAAA,CAAA,GAEvE,CAAC0B,GAAuB1B,CAAW,CAAC;AAGrC,SAAA,gBAAAqC;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,UAAUF;AAAA,MACV,eAAa;AAAA,MACb,QAAQ,CAACnC;AAAA,MACT,aAAA+B;AAAA,MACA,UAAAnB;AAAA,MACA,UAAAD;AAAA,MACA,YAAAU;AAAA,MACA,YAAAjB;AAAA,MACA,QAAAe;AAAA,MACA,OAAAF;AAAA,MACA,QAAAC;AAAA,MACA,aAAAE;AAAA,MACA,iBAAAX;AAAA,MACA,aAAAC;AAAA,MACA,aAAAG;AAAA,MACA,eAAAC;AAAA,MACA,YAAAT;AAAA,MACA,WAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,mBAAAC;AAAA,MACA,qBAAAO;AAAA,MACA,qBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN,GAEesB,IAAAC,EAAK5C,CAAe;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as n, Fragment as l } from "react/jsx-runtime";
|
|
2
|
+
import { memo as d, useState as f, useEffect as p } from "react";
|
|
3
|
+
import h from "../../../ui/dot-lottie-animations/dot-lottie-animation.js";
|
|
4
|
+
import { preloadLottieFile as g } from "../stickers-effects-cache.js";
|
|
5
|
+
const D = d(({ url: t, sticker: s, size: o }) => {
|
|
6
|
+
const [i, m] = f(), [u, e] = f(!1), c = {
|
|
7
|
+
loop: !0,
|
|
8
|
+
autoplay: !0
|
|
9
|
+
};
|
|
10
|
+
return p(() => {
|
|
11
|
+
let r = !0;
|
|
12
|
+
if (t)
|
|
13
|
+
return g(t).then((a) => {
|
|
14
|
+
r && (a ? m(a) : e(!0));
|
|
15
|
+
}).catch(() => {
|
|
16
|
+
r && e(!0);
|
|
17
|
+
}), () => {
|
|
18
|
+
r = !1;
|
|
19
|
+
};
|
|
20
|
+
}, [t]), !t || u || !i ? /* @__PURE__ */ n(l, { children: s }) : /* @__PURE__ */ n(
|
|
21
|
+
h,
|
|
22
|
+
{
|
|
23
|
+
data: i,
|
|
24
|
+
width: o,
|
|
25
|
+
height: o,
|
|
26
|
+
settings: c,
|
|
27
|
+
onError: () => e(!0)
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
});
|
|
31
|
+
export {
|
|
32
|
+
D as default
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=sticker-with-fallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sticker-with-fallback.js","sources":["../../../../../src/features/stickers/stickers-effects/comps/sticker-with-fallback.tsx"],"sourcesContent":["import type { Data } from '@lottiefiles/dotlottie-web';\n\nimport { memo, useEffect, useState, type FC } from 'react';\n\nimport DotLottieAnimation from '../../../ui/dot-lottie-animations/dot-lottie-animation';\nimport { preloadLottieFile } from '../stickers-effects-cache';\n\nconst StickerWithFallback: FC<{\n url?: string;\n sticker: string;\n size: number;\n}> = memo(({ url, sticker, size }) => {\n const [data, setData] = useState<Data>();\n const [failed, setFailed] = useState(false);\n const renderSettings = {\n loop: true,\n autoplay: true,\n };\n\n useEffect(() => {\n let isMounted = true;\n\n if (!url) return;\n\n preloadLottieFile(url)\n .then(result => {\n if (isMounted) {\n if (result) {\n setData(result);\n } else {\n setFailed(true);\n }\n }\n })\n .catch(() => {\n if (isMounted) setFailed(true);\n });\n\n return () => {\n isMounted = false;\n };\n }, [url]);\n\n if (!url || failed || !data) {\n return <>{sticker}</>;\n }\n\n return (\n <DotLottieAnimation\n data={data}\n width={size}\n height={size}\n settings={renderSettings}\n onError={() => setFailed(true)}\n />\n );\n});\n\nexport default StickerWithFallback;\n"],"names":["StickerWithFallback","memo","url","sticker","size","data","setData","useState","failed","setFailed","renderSettings","useEffect","isMounted","preloadLottieFile","result","jsx","DotLottieAnimation"],"mappings":";;;;AAOA,MAAMA,IAIDC,EAAK,CAAC,EAAE,KAAAC,GAAK,SAAAC,GAAS,MAAAC,QAAW;AACpC,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAAe,GACjC,CAACC,GAAQC,CAAS,IAAIF,EAAS,EAAK,GACpCG,IAAiB;AAAA,IACrB,MAAM;AAAA,IACN,UAAU;AAAA,EAAA;AA2BZ,SAxBAC,EAAU,MAAM;AACd,QAAIC,IAAY;AAEhB,QAAKV;AAEa,aAAAW,EAAAX,CAAG,EAClB,KAAK,CAAUY,MAAA;AACd,QAAIF,MACEE,IACFR,EAAQQ,CAAM,IAEdL,EAAU,EAAI;AAAA,MAElB,CACD,EACA,MAAM,MAAM;AACP,QAAAG,OAAqB,EAAI;AAAA,MAAA,CAC9B,GAEI,MAAM;AACC,QAAAA,IAAA;AAAA,MAAA;AAAA,EACd,GACC,CAACV,CAAG,CAAC,GAEJ,CAACA,KAAOM,KAAU,CAACH,2BACX,UAAQF,EAAA,CAAA,IAIlB,gBAAAY;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAAX;AAAA,MACA,OAAOD;AAAA,MACP,QAAQA;AAAA,MACR,UAAUM;AAAA,MACV,SAAS,MAAMD,EAAU,EAAI;AAAA,IAAA;AAAA,EAAA;AAGnC,CAAC;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const e = {
|
|
2
|
+
"burst-from-edges": {
|
|
3
|
+
effect: "burst-from-edges",
|
|
4
|
+
duration: 3e3,
|
|
5
|
+
count: 10
|
|
6
|
+
},
|
|
7
|
+
"pop-expand": {
|
|
8
|
+
effect: "pop-expand",
|
|
9
|
+
duration: 3e3,
|
|
10
|
+
count: 5
|
|
11
|
+
},
|
|
12
|
+
"float-up": {
|
|
13
|
+
effect: "float-up",
|
|
14
|
+
duration: 3e3,
|
|
15
|
+
count: 7
|
|
16
|
+
},
|
|
17
|
+
"fall-down": {
|
|
18
|
+
effect: "fall-down",
|
|
19
|
+
duration: 3e3,
|
|
20
|
+
count: 7
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
e as EFFECTS_MAP
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/features/stickers/stickers-effects/constants.ts"],"sourcesContent":["import type { TStickerAnimationEffects } from '../stickers-types';\nimport type { IStickersProps } from './stickers-effects-types';\n\nexport const EFFECTS_MAP: Record<TStickerAnimationEffects, Omit<IStickersProps, 'stickerId'>> = {\n 'burst-from-edges': {\n effect: 'burst-from-edges',\n duration: 3000,\n count: 10,\n },\n 'pop-expand': {\n effect: 'pop-expand',\n duration: 3000,\n count: 5,\n },\n 'float-up': {\n effect: 'float-up',\n duration: 3000,\n count: 7,\n },\n 'fall-down': {\n effect: 'fall-down',\n duration: 3000,\n count: 7,\n },\n};\n"],"names":["EFFECTS_MAP"],"mappings":"AAGO,MAAMA,IAAmF;AAAA,EAC9F,oBAAoB;AAAA,IAClB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA,cAAc;AAAA,IACZ,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA,aAAa;AAAA,IACX,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AACF;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsxs as n, jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import { useState as d, useCallback as r } from "react";
|
|
3
|
+
import m from "../stickers-effects.js";
|
|
4
|
+
import { StickersContext as f } from "../stickers-effects-types.js";
|
|
5
|
+
const x = ({ children: s }) => {
|
|
6
|
+
const [e, t] = d(null), o = r((a) => {
|
|
7
|
+
t(a);
|
|
8
|
+
}, []), c = r(() => {
|
|
9
|
+
t(null);
|
|
10
|
+
}, []), i = {
|
|
11
|
+
showSticker: o
|
|
12
|
+
};
|
|
13
|
+
return /* @__PURE__ */ n(f.Provider, { value: i, children: [
|
|
14
|
+
s,
|
|
15
|
+
e && /* @__PURE__ */ l(
|
|
16
|
+
m,
|
|
17
|
+
{
|
|
18
|
+
stickerId: e.message.data.selectedSticker.id,
|
|
19
|
+
effectType: e.message.data.effectId,
|
|
20
|
+
onClose: c
|
|
21
|
+
}
|
|
22
|
+
)
|
|
23
|
+
] });
|
|
24
|
+
};
|
|
25
|
+
export {
|
|
26
|
+
x as StickersProvider
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=sticker-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sticker-provider.js","sources":["../../../../../src/features/stickers/stickers-effects/context/sticker-provider.tsx"],"sourcesContent":["import type { TStickerAnimationEffects, TStickersPayload } from '../../stickers-types';\nimport type { StickersContextType } from '../stickers-effects-types';\n\nimport { useCallback, useState, type ReactNode } from 'react';\n\nimport StickersEffect from '../stickers-effects';\nimport { StickersContext } from '../stickers-effects-types';\n\ninterface StickersProviderProps {\n children: ReactNode;\n}\n\nexport const StickersProvider = ({ children }: StickersProviderProps) => {\n const [stickerData, setStickerData] = useState<TStickersPayload | null>(null);\n\n const showSticker = useCallback((payload: TStickersPayload) => {\n setStickerData(payload);\n }, []);\n\n const handleAnimationEnd = useCallback(() => {\n setStickerData(null);\n }, []);\n\n const contextValue: StickersContextType = {\n showSticker,\n };\n\n return (\n <StickersContext.Provider value={contextValue}>\n {children}\n {stickerData && (\n <StickersEffect\n stickerId={stickerData.message.data.selectedSticker.id}\n effectType={stickerData.message.data.effectId as TStickerAnimationEffects}\n onClose={handleAnimationEnd}\n />\n )}\n </StickersContext.Provider>\n );\n};\n"],"names":["StickersProvider","children","stickerData","setStickerData","useState","showSticker","useCallback","payload","handleAnimationEnd","contextValue","jsxs","StickersContext","jsx","StickersEffect"],"mappings":";;;;AAYO,MAAMA,IAAmB,CAAC,EAAE,UAAAC,QAAsC;AACvE,QAAM,CAACC,GAAaC,CAAc,IAAIC,EAAkC,IAAI,GAEtEC,IAAcC,EAAY,CAACC,MAA8B;AAC7D,IAAAJ,EAAeI,CAAO;AAAA,EACxB,GAAG,CAAE,CAAA,GAECC,IAAqBF,EAAY,MAAM;AAC3C,IAAAH,EAAe,IAAI;AAAA,EACrB,GAAG,CAAE,CAAA,GAECM,IAAoC;AAAA,IACxC,aAAAJ;AAAA,EAAA;AAGF,SACG,gBAAAK,EAAAC,EAAgB,UAAhB,EAAyB,OAAOF,GAC9B,UAAA;AAAA,IAAAR;AAAA,IACAC,KACC,gBAAAU;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAWX,EAAY,QAAQ,KAAK,gBAAgB;AAAA,QACpD,YAAYA,EAAY,QAAQ,KAAK;AAAA,QACrC,SAASM;AAAA,MAAA;AAAA,IACX;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useContext as r } from "react";
|
|
2
|
+
import { StickersContext as e } from "../stickers-effects-types.js";
|
|
3
|
+
const i = () => {
|
|
4
|
+
const t = r(e);
|
|
5
|
+
if (!t)
|
|
6
|
+
throw new Error("useStickers must be used within a StickersProvider");
|
|
7
|
+
return t;
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
i as useStickers
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=use-stickers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-stickers.js","sources":["../../../../../src/features/stickers/stickers-effects/hooks/use-stickers.tsx"],"sourcesContent":["import { useContext } from 'react';\n\nimport { StickersContext, type StickersContextType } from '../stickers-effects-types';\n\nexport const useStickers = (): StickersContextType => {\n const context = useContext(StickersContext);\n\n if (!context) {\n throw new Error('useStickers must be used within a StickersProvider');\n }\n\n return context;\n};\n"],"names":["useStickers","context","useContext","StickersContext"],"mappings":";;AAIO,MAAMA,IAAc,MAA2B;AAC9C,QAAAC,IAAUC,EAAWC,CAAe;AAE1C,MAAI,CAACF;AACG,UAAA,IAAI,MAAM,oDAAoD;AAG/D,SAAAA;AACT;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stickers-effects-helper.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-effects-helper.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"stickers-effects-helper.js","sources":["../../../../src/features/stickers/stickers-effects/stickers-effects-helper.ts"],"sourcesContent":["import type { TStickerAnimationData, IGenerateStickersData } from './stickers-effects-types';\n\nimport { STICKERS_DATA } from '../constants';\n\nconst getBurstPosition = (\n index: number,\n total: number,\n): {\n fromX: string;\n fromY: string;\n x: number;\n y: number;\n} => {\n const countPerSide = Math.ceil(total / 4);\n const sideIndex = Math.floor(index / countPerSide);\n const pos = index % countPerSide;\n\n const sides = ['top', 'right', 'bottom', 'left'] as const;\n const side = sides[sideIndex] ?? 'left';\n\n const basePercent = ((pos + 0.5) / countPerSide) * 100;\n const jitter = (Math.random() - 0.5) * 25;\n const edgePercent = Math.min(Math.max(basePercent + jitter, 0), 100);\n\n const centerX = 45 + Math.random() * 10;\n const centerY = 45 + Math.random() * 10;\n\n let fromX = 0;\n let fromY = 0;\n\n switch (side) {\n case 'top':\n fromX = edgePercent - centerX;\n fromY = -centerY + jitter;\n break;\n case 'right':\n fromX = 100 - centerX + jitter;\n fromY = edgePercent - centerY;\n break;\n case 'bottom':\n fromX = edgePercent - centerX;\n fromY = 100 - centerY + jitter;\n break;\n case 'left':\n fromX = -centerX + jitter;\n fromY = edgePercent - centerY;\n break;\n }\n\n return {\n fromX: `${fromX}vw`,\n fromY: `${fromY}vh`,\n x: centerX,\n y: centerY,\n };\n};\n\nconst getRandomNonOverlappingPositions = (count: number, buffer = 10): number[] => {\n const used: number[] = [];\n let attempts = 0;\n const maxAttempts = count;\n\n while (used.length < count && attempts < maxAttempts) {\n const value = Math.floor(Math.random() * (100 - 2 * buffer) + buffer);\n\n if (used.every(v => Math.abs(v - value) >= buffer)) {\n used.push(value);\n }\n attempts++;\n }\n\n while (used.length < count) {\n used.push(Math.floor(Math.random() * (100 - 2 * buffer) + buffer));\n }\n\n return used;\n};\n\nexport function generateStickerData({\n count,\n effect,\n stickerId,\n minSize,\n maxSize,\n}: IGenerateStickersData): TStickerAnimationData[] {\n const buffer = (100 / count) * 2;\n const getSize = () => Math.random() * (maxSize - minSize) + minSize;\n const result: TStickerAnimationData[] = [];\n const xPositions = ['float-up', 'fall-down'].includes(effect)\n ? getRandomNonOverlappingPositions(count, buffer)\n : [];\n\n for (let i = 0; i < count; i++) {\n const { emoji: sticker = '', lottieUrl: lottie } =\n STICKERS_DATA.find(({ id }) => id === stickerId) || {};\n\n const size = getSize();\n const x = xPositions[i]!;\n const common = { id: stickerId, sticker, size };\n\n switch (effect) {\n case 'float-up':\n result.push({\n ...common,\n x,\n y: 110 + (Math.random() - 0.5) * size,\n lottie: lottie,\n });\n break;\n\n case 'fall-down':\n result.push({\n ...common,\n x,\n y: -10 + (Math.random() - 0.5) * size,\n lottie: lottie,\n });\n break;\n\n case 'burst-from-edges': {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { x, y, fromX, fromY } = getBurstPosition(i, count);\n\n result.push({\n ...common,\n x,\n y,\n fromX,\n fromY,\n size,\n lottie: lottie,\n });\n break;\n }\n\n case 'pop-expand':\n result.push({\n ...common,\n x: 50,\n y: 100,\n fromX: `${(Math.random() - 0.5) * 27.5}vw`,\n fromY: `${-50 - Math.random() * 27.5}vh`,\n lottie: lottie,\n });\n break;\n\n default:\n result.push({\n ...common,\n x: Math.random() * 100,\n y: Math.random() * 100,\n });\n }\n }\n\n return result;\n}\n\nexport const randomizeDuration = (base: number, variancePercent = 0.2): number => {\n const delta = base * variancePercent;\n const min = base - delta;\n const max = base + delta;\n\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\n"],"names":["getBurstPosition","index","total","countPerSide","sideIndex","pos","side","basePercent","jitter","edgePercent","centerX","centerY","fromX","fromY","getRandomNonOverlappingPositions","count","buffer","used","attempts","maxAttempts","value","v","generateStickerData","effect","stickerId","minSize","maxSize","getSize","result","xPositions","i","sticker","lottie","STICKERS_DATA","id","size","x","common","y","randomizeDuration","base","variancePercent","delta","min","max"],"mappings":"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"}
|
|
@@ -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;"}
|