diff --git a/src/components/CompatibilityV2/pages/Birthdate/index.tsx b/src/components/CompatibilityV2/pages/Birthdate/index.tsx index f192e1c..82bbf40 100644 --- a/src/components/CompatibilityV2/pages/Birthdate/index.tsx +++ b/src/components/CompatibilityV2/pages/Birthdate/index.tsx @@ -12,6 +12,8 @@ import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useSession } from "@/hooks/session/useSession"; import { ESourceAuthorization } from "@/api/resources/User"; +import { usePreloadImages } from "@/hooks/preload/images"; +import { getZodiacSignByDate, ZODIACS } from "@/services/zodiac-sign"; function Birthdate() { const { translate } = useTranslations(ELocalesPlacement.CompatibilityV2); @@ -21,6 +23,18 @@ function Birthdate() { const birthdateFromStore = useSelector(selectors.selectBirthdate); const [birthdate, setBirthdate] = useState(birthdateFromStore); const [isDisabled, setIsDisabled] = useState(true); + const { gender } = useSelector(selectors.selectQuestionnaire); + const zodiacSign = getZodiacSignByDate(birthdate); + + usePreloadImages( + !!zodiacSign?.length ? + [ + `/zodiac-signs/${gender?.toLowerCase()}/${zodiacSign?.toLowerCase()}.svg` + ] : + ZODIACS.map( + (zodiac) => `/zodiac-signs/${gender?.toLowerCase()}/${zodiac?.toLowerCase()}.svg` + ) + ); const handleValid = (_birthdate: string) => { setBirthdate(_birthdate); diff --git a/src/components/CompatibilityV2/pages/BirthdatePartner/index.tsx b/src/components/CompatibilityV2/pages/BirthdatePartner/index.tsx index 90d25cf..288f0cb 100644 --- a/src/components/CompatibilityV2/pages/BirthdatePartner/index.tsx +++ b/src/components/CompatibilityV2/pages/BirthdatePartner/index.tsx @@ -11,15 +11,28 @@ import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useSession } from "@/hooks/session/useSession"; import { ESourceAuthorization } from "@/api/resources/User"; +import { usePreloadImages } from "@/hooks/preload/images"; +import { getZodiacSignByDate, ZODIACS } from "@/services/zodiac-sign"; function BirthdatePartner() { const { translate } = useTranslations(ELocalesPlacement.CompatibilityV2); const { updateSession } = useSession(); const navigate = useNavigate(); const dispatch = useDispatch(); - const { partnerBirthdate } = useSelector(selectors.selectQuestionnaire); + const { partnerBirthdate, partnerGender } = useSelector(selectors.selectQuestionnaire); const [birthdate, setBirthdate] = useState(partnerBirthdate || ""); const [isDisabled, setIsDisabled] = useState(true); + const zodiacSign = getZodiacSignByDate(birthdate); + + usePreloadImages( + !!zodiacSign?.length ? + [ + `/zodiac-signs/${partnerGender?.toLowerCase()}/${zodiacSign?.toLowerCase()}.svg` + ] : + ZODIACS.map( + (zodiac) => `/zodiac-signs/${partnerGender?.toLowerCase()}/${zodiac?.toLowerCase()}.svg` + ) + ); const handleValid = (_birthdate: string) => { setBirthdate(_birthdate); diff --git a/src/components/CompatibilityV2/pages/CheckingPhone/index.tsx b/src/components/CompatibilityV2/pages/CheckingPhone/index.tsx index 1d937d9..9998afb 100644 --- a/src/components/CompatibilityV2/pages/CheckingPhone/index.tsx +++ b/src/components/CompatibilityV2/pages/CheckingPhone/index.tsx @@ -10,7 +10,6 @@ import { answerTimeOut } from "../../data"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useMemo } from "react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV2 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; @@ -23,9 +22,6 @@ function CheckingPhone() { const { checkingPhone, relationshipStatus } = useSelector( selectors.selectCompatibilityV2Answers ); - useLottie({ - preloadKey: ELottieKeys.scalesNeutralPalmistry, - }); const answers: { id: IAnswersSessionCompatibilityV2["checking_phone"]; diff --git a/src/components/CompatibilityV2/pages/Gender/index.tsx b/src/components/CompatibilityV2/pages/Gender/index.tsx index 433be74..0b2f6b0 100644 --- a/src/components/CompatibilityV2/pages/Gender/index.tsx +++ b/src/components/CompatibilityV2/pages/Gender/index.tsx @@ -10,9 +10,8 @@ import { sleep } from "@/services/date"; import metricService, { useMetricABFlags } from "@/services/metric/metricService"; import { genders } from "@/components/pages/ABDesign/v1/data/genders"; import { useNavigate } from "react-router-dom"; -import routes from "@/routes"; +import routes, { compatibilityV2Prefix } from "@/routes"; import { usePreloadImages } from "@/hooks/preload/images"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { EGender, ESourceAuthorization } from "@/api/resources/User"; import Loader, { LoaderColor } from "@/components/Loader"; @@ -33,10 +32,8 @@ function GenderPage() { const { gender } = useSelector(selectors.selectQuestionnaire); const [isSelected, setIsSelected] = useState(false); - usePreloadImages(["/v1/palmistry/hand-with-eye.svg"]); - useLottie({ - preloadKey: ELottieKeys.handSymbols, - }); + + usePreloadImages([`${compatibilityV2Prefix}/hand-with-eye.svg`]); const { flags, ready } = useMetricABFlags(); diff --git a/src/components/CompatibilityV2/pages/GenderPartner/index.tsx b/src/components/CompatibilityV2/pages/GenderPartner/index.tsx index 73276e8..80f6777 100644 --- a/src/components/CompatibilityV2/pages/GenderPartner/index.tsx +++ b/src/components/CompatibilityV2/pages/GenderPartner/index.tsx @@ -3,16 +3,14 @@ import Title from "@/components/Title"; import { useDispatch, useSelector } from "react-redux"; import { actions, selectors } from "@/store"; import { Gender } from "@/data"; -// import Toast from "@/components/pages/ABDesign/v1/components/Toast"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useCallback, useEffect, useState } from "react"; import { sleep } from "@/services/date"; import { genders } from "@/components/pages/ABDesign/v1/data/genders"; import { useNavigate } from "react-router-dom"; -import routes from "@/routes"; +import routes, { compatibilityV2Prefix } from "@/routes"; import { usePreloadImages } from "@/hooks/preload/images"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { EGender, ESourceAuthorization } from "@/api/resources/User"; import Answer from "../../components/Answer"; @@ -29,10 +27,8 @@ function GenderPartner() { const { partnerGender } = useSelector(selectors.selectQuestionnaire); const [isSelected, setIsSelected] = useState(false); - usePreloadImages(["/v1/palmistry/hand-with-eye.svg"]); - useLottie({ - preloadKey: ELottieKeys.handSymbols, - }); + + usePreloadImages([`${compatibilityV2Prefix}/hand-with-eye.svg`]); const localGenders = genders.map((gender) => ({ id: gender.id, @@ -49,18 +45,12 @@ function GenderPartner() { if (!partnerGender) return; dispatch(actions.privacyPolicy.updateChecked(true)); await sleep(1000); - // metricService.userParams({ - // gender: genders.find((g) => g.id === gender)?.name, - // }); const session = await createSession( ESourceAuthorization["aura.compatibility.v2"] ); if (session?.sessionId?.length) { updateSession( { - // profile: { - // gender: EGender[gender as keyof typeof EGender], - // }, partner: { gender: EGender[partnerGender as keyof typeof EGender], } @@ -90,8 +80,6 @@ function GenderPartner() {

{translate("/gender-partner.description", { br:
, })}

- {/* */} - {/* */}
{localGenders?.map((_gender, index) => ( ))}
- {/* */} - {/* {gender && !privacyPolicyChecked && ( - - {translate("/gender.toast", undefined, ELocalesPlacement.V1)} - - )} */} ); } diff --git a/src/components/CompatibilityV2/pages/HeadOrHeart/index.tsx b/src/components/CompatibilityV2/pages/HeadOrHeart/index.tsx index 4ac440f..36cdd95 100644 --- a/src/components/CompatibilityV2/pages/HeadOrHeart/index.tsx +++ b/src/components/CompatibilityV2/pages/HeadOrHeart/index.tsx @@ -14,7 +14,6 @@ import { usePreloadImages } from "@/hooks/preload/images"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV2 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; function HeadOrHeart() { const { translate } = useTranslations(ELocalesPlacement.CompatibilityV2); @@ -22,21 +21,11 @@ function HeadOrHeart() { const navigate = useNavigate(); const dispatch = useDispatch(); const { headOrHeart } = useSelector(selectors.selectCompatibilityV2Answers); - usePreloadImages([ - "/v1/palmistry/money-back.svg", - "/v1/palmistry/hand.svg", - "/v1/palmistry/1_1.svg", - "/v1/palmistry/daily.svg", - "/v1/palmistry/cosmic.svg", - "/v1/palmistry/calendar.svg", - "/v1/palmistry/reviews/rebecca.png", - "/v1/palmistry/reviews/mika.png", - "/v1/palmistry/reviews/amanda.png", - "/v1/palmistry/partners.png", - ]); - useLottie({ - preloadKey: ELottieKeys.letScan, - }); + usePreloadImages( + ["head", "heart", "both"].map( + (headOrHeart) => `/v2/compatibility/head-or-heart-result/${headOrHeart}.svg` + ) + ); const answers: { id: IAnswersSessionCompatibilityV2["head_or_heart"]; title: string }[] = useMemo( diff --git a/src/components/CompatibilityV2/pages/HeadOrHeartResult/index.tsx b/src/components/CompatibilityV2/pages/HeadOrHeartResult/index.tsx index 926f1d9..9500939 100644 --- a/src/components/CompatibilityV2/pages/HeadOrHeartResult/index.tsx +++ b/src/components/CompatibilityV2/pages/HeadOrHeartResult/index.tsx @@ -1,6 +1,4 @@ -// import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import styles from "./styles.module.scss"; -// import { DotLottieReact } from "@lottiefiles/dotlottie-react"; import Title from "@/components/Title"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; @@ -13,13 +11,8 @@ import routes from "@/routes"; import { useMemo } from "react"; import { EUnleashFlags, useUnleash } from "@/hooks/ab/unleash/useUnleash"; import Loader, { LoaderColor } from "@/components/Loader"; - -// const animations = { -// both: ELottieKeys.scalesNeutralPalmistry, -// heart: ELottieKeys.scalesHeartPalmistry, -// head: ELottieKeys.scalesHeadPalmistry, -// depends: ELottieKeys.scalesNeutralPalmistry, -// }; +import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; +import { useTheme } from "@/hooks/theme/useTheme"; function HeadOrHeartResult() { const navigate = useNavigate(); @@ -28,14 +21,15 @@ function HeadOrHeartResult() { const { gender, partnerGender, partnerBirthdate } = useSelector(selectors.selectQuestionnaire); const translatePrefix = relationshipStatus === "single" ? "single" : "with-partner"; + const { darkTheme } = useTheme(); + useLottie({ + preloadKey: darkTheme ? ELottieKeys.letScanDark : ELottieKeys.letScan, + }); + const { isReady, variant } = useUnleash({ flag: EUnleashFlags.headOrHeartResultPageCompatibilityV2, }); - // const { animationData } = useLottie({ - // loadKey: animations[headOrHeart as keyof typeof animations], - // }); - const birthdate = useSelector(selectors.selectBirthdate); const zodiacSign = getZodiacSignByDate(birthdate); const zodiacSignPartner = getZodiacSignByDate(partnerBirthdate); @@ -45,7 +39,6 @@ function HeadOrHeartResult() { }; const handleNext = () => { - // navigate(`${routes.client.compatibilityV2RelateFollowing()}/1`); navigate(routes.client.compatibilityV2LetScan()); }; @@ -58,16 +51,6 @@ function HeadOrHeartResult() { return (
- {/*
- {animationData && ( - - )} -
*/} {variant === "v1" && result image - {/* {animationData && ( - - )} */} {zodiacImages !== "new" && (
Zodiac sign
@@ -62,7 +50,6 @@ function PalmsInformation() {
Zodiac sign diff --git a/src/components/CompatibilityV2/pages/PalmsInformationPartner/index.tsx b/src/components/CompatibilityV2/pages/PalmsInformationPartner/index.tsx index dfeacfa..b3f6fbd 100644 --- a/src/components/CompatibilityV2/pages/PalmsInformationPartner/index.tsx +++ b/src/components/CompatibilityV2/pages/PalmsInformationPartner/index.tsx @@ -1,18 +1,17 @@ -import routes from "@/routes"; +import routes, { compatibilityV2Prefix } from "@/routes"; import styles from "./styles.module.scss"; import Title from "@/components/Title"; import Button from "../../components/Button"; import { useTranslations } from "@/hooks/translations"; import { useNavigate } from "react-router-dom"; import { ELocalesPlacement } from "@/locales"; -// import { DotLottieReact } from "@lottiefiles/dotlottie-react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { selectors } from "@/store"; import { useSelector } from "react-redux"; import { images } from "../../data"; import { getZodiacSignByDate } from "@/services/zodiac-sign"; import { EUnleashFlags, useUnleash } from "@/hooks/ab/unleash/useUnleash"; import Loader, { LoaderColor } from "@/components/Loader"; +import { usePreloadImages } from "@/hooks/preload/images"; function PalmsInformationPartner() { const { translate } = useTranslations(ELocalesPlacement.CompatibilityV2); @@ -20,11 +19,8 @@ function PalmsInformationPartner() { const zodiacSign = getZodiacSignByDate(partnerBirthdate); const navigate = useNavigate(); - // const { animationData } = - useLottie({ - // loadKey: ELottieKeys.handSymbols, - preloadKey: ELottieKeys.scalesHeadPalmistry, - }); + + usePreloadImages([`${compatibilityV2Prefix}/hand-with-eye.svg`]); const { isReady, variant: zodiacImages } = useUnleash({ flag: EUnleashFlags.zodiacImages @@ -40,20 +36,11 @@ function PalmsInformationPartner() { return (
- {/* {animationData && ( - - )} */} {zodiacImages !== "new" && (
Zodiac sign
@@ -62,7 +49,6 @@ function PalmsInformationPartner() {
Zodiac sign @@ -77,37 +63,6 @@ function PalmsInformationPartner() { - {/* - {translate("privacy_policy", { - eulaLink: ( - - {translate("eula_link")} - - ), - privacyLink: ( - - {translate("privacy_notice")} - - ), - clickHere: ( - - {translate("policy_here")} - - ), - })} - */}
); } diff --git a/src/components/CompatibilityV2/pages/RelationshipStatus/index.tsx b/src/components/CompatibilityV2/pages/RelationshipStatus/index.tsx index 3585094..757dfa6 100644 --- a/src/components/CompatibilityV2/pages/RelationshipStatus/index.tsx +++ b/src/components/CompatibilityV2/pages/RelationshipStatus/index.tsx @@ -10,7 +10,6 @@ import { answerTimeOut } from "../../data"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useMemo } from "react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV2 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; @@ -23,9 +22,6 @@ function RelationshipStatus() { const { relationshipStatus } = useSelector( selectors.selectCompatibilityV2Answers ); - useLottie({ - preloadKey: ELottieKeys.scalesNeutralPalmistry, - }); const answers: { id: IAnswersSessionCompatibilityV2["relationship_status"]; diff --git a/src/components/CompatibilityV2/pages/RomanticGestures/index.tsx b/src/components/CompatibilityV2/pages/RomanticGestures/index.tsx index 3bee891..29b6f3b 100644 --- a/src/components/CompatibilityV2/pages/RomanticGestures/index.tsx +++ b/src/components/CompatibilityV2/pages/RomanticGestures/index.tsx @@ -10,7 +10,6 @@ import { answerTimeOut } from "../../data"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useMemo } from "react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV2 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; @@ -23,9 +22,6 @@ function RomanticGestures() { const { romanticGestures } = useSelector( selectors.selectCompatibilityV2Answers ); - useLottie({ - preloadKey: ELottieKeys.scalesNeutralPalmistry, - }); const answers: { id: IAnswersSessionCompatibilityV2["romantic_gestures"]; diff --git a/src/components/CompatibilityV2/pages/ScanInstruction/index.tsx b/src/components/CompatibilityV2/pages/ScanInstruction/index.tsx index 5c54054..233ea0a 100644 --- a/src/components/CompatibilityV2/pages/ScanInstruction/index.tsx +++ b/src/components/CompatibilityV2/pages/ScanInstruction/index.tsx @@ -10,16 +10,19 @@ import ScanInstructionSVG from "../../images/SVG/ScanInstruction"; import { usePreloadImages } from "@/hooks/preload/images"; import { useUploadImage } from "@/hooks/palmistry/useUploadImage"; import Loader, { LoaderColor } from "@/components/Loader"; +import { images } from "../../data"; +import { useSelector } from "react-redux"; +import { selectors } from "@/store"; function ScanInstruction() { const { translate } = useTranslations(ELocalesPlacement.CompatibilityV2); const navigate = useNavigate(); + + const gender = useSelector(selectors.selectQuestionnaire)?.gender || "female"; + usePreloadImages([ - "/v1/palmistry/love-line.svg", - "/v1/palmistry/head-line.svg", - "/v1/palmistry/life-line.svg", - "/v1/palmistry/fate-line.svg", - "/v1/palmistry/hand-little-finger.svg", + images("scan-hand/Palm-tach-A.gif"), + images(`scan-hand/${gender}-Palm-A.png`) ]); const handleToScannedPhoto = () => { diff --git a/src/components/CompatibilityV2/pages/ScannedPhoto/index.tsx b/src/components/CompatibilityV2/pages/ScannedPhoto/index.tsx index 90c2318..83471c6 100644 --- a/src/components/CompatibilityV2/pages/ScannedPhoto/index.tsx +++ b/src/components/CompatibilityV2/pages/ScannedPhoto/index.tsx @@ -15,6 +15,7 @@ import Modal from "@/components/Modal"; import { useAuthentication } from "@/hooks/authentication/use-authentication"; import { ESourceAuthorization } from "@/api/resources/User"; import { getRandomArbitrary } from "@/services/random-value"; +import { usePreloadImages } from "@/hooks/preload/images"; const drawElementChangeDelay = 1500; const startDelay = 500; @@ -55,6 +56,16 @@ function ScannedPhoto() { const { authorization } = useAuthentication(); + usePreloadImages([ + "/v2/compatibility/download-app.png", + "/v2/compatibility/love-line.svg", + "/v2/compatibility/head-line.svg", + "/v2/compatibility/life-line.svg", + "/v2/compatibility/fate-line.svg", + "/v2/compatibility/hand-little-finger.svg", + "/v2/compatibility/partners.png" + ]) + const drawElements = useMemo(() => [...fingers, ...lines], [fingers, lines]); const { relationshipStatus } = useSelector(selectors.selectCompatibilityV2Answers) diff --git a/src/components/CompatibilityV2/pages/TrialChoice/index.tsx b/src/components/CompatibilityV2/pages/TrialChoice/index.tsx index f3305e2..7a4f17b 100644 --- a/src/components/CompatibilityV2/pages/TrialChoice/index.tsx +++ b/src/components/CompatibilityV2/pages/TrialChoice/index.tsx @@ -21,6 +21,8 @@ import { useTranslations } from "@/hooks/translations"; import { getLongText } from "./abText"; import metricService, { EGoals, EMetrics, useMetricABFlags } from "@/services/metric/metricService"; import TrialChoiceV1 from "./v1"; +import { usePreloadImages } from "@/hooks/preload/images"; +import { getZodiacSignByDate } from "@/services/zodiac-sign"; function TrialChoice() { const { translate } = useTranslations(ELocalesPlacement.CompatibilityV2); @@ -30,6 +32,26 @@ function TrialChoice() { placementKey: EPlacementKeys["aura.placement.compatibility.v2"], localesPlacement: ELocalesPlacement.CompatibilityV2, }); + const { gender, partnerGender, birthdate, partnerBirthdate } = useSelector(selectors.selectQuestionnaire) + const zodiacSign = getZodiacSignByDate(birthdate); + const zodiacSignPartner = getZodiacSignByDate(partnerBirthdate); + + usePreloadImages([ + `/zodiac-signs/${gender}/${zodiacSign?.toLowerCase()}.svg`, + `/zodiac-signs/${partnerGender}/${zodiacSignPartner?.toLowerCase()}.svg`, + "/v2/compatibility/reviews.png", + "/v2/compatibility/trial-payment/girl2.png", + "/v2/compatibility/trial-payment/avatar-1.png", + "/v2/compatibility/trial-payment/avatar-2.png", + "/v2/compatibility/trial-payment/avatar-4.png", + "/v2/compatibility/money-back.svg", + "/v2/compatibility/love-line.svg", + "/v2/compatibility/head-line.svg", + "/v2/compatibility/life-line.svg", + "/v2/compatibility/fate-line.svg", + "/v2/compatibility/hand-little-finger.svg", + "/v2/compatibility/partners.png" + ]) const locale = getDefaultLocaleByLanguage(language); diff --git a/src/components/CompatibilityV3/pages/Birthdate/index.tsx b/src/components/CompatibilityV3/pages/Birthdate/index.tsx index fc57155..3c49d6d 100644 --- a/src/components/CompatibilityV3/pages/Birthdate/index.tsx +++ b/src/components/CompatibilityV3/pages/Birthdate/index.tsx @@ -12,6 +12,8 @@ import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useSession } from "@/hooks/session/useSession"; import { ESourceAuthorization } from "@/api/resources/User"; +import { usePreloadImages } from "@/hooks/preload/images"; +import { getZodiacSignByDate, ZODIACS } from "@/services/zodiac-sign"; function Birthdate() { const { translate } = useTranslations(ELocalesPlacement.CompatibilityV3); @@ -21,6 +23,18 @@ function Birthdate() { const birthdateFromStore = useSelector(selectors.selectBirthdate); const [birthdate, setBirthdate] = useState(birthdateFromStore); const [isDisabled, setIsDisabled] = useState(true); + const { gender } = useSelector(selectors.selectQuestionnaire); + const zodiacSign = getZodiacSignByDate(birthdate); + + usePreloadImages( + !!zodiacSign?.length ? + [ + `/zodiac-signs/${gender?.toLowerCase()}/${zodiacSign?.toLowerCase()}.svg` + ] : + ZODIACS.map( + (zodiac) => `/zodiac-signs/${gender?.toLowerCase()}/${zodiac?.toLowerCase()}.svg` + ) + ); const handleValid = (_birthdate: string) => { setBirthdate(_birthdate); diff --git a/src/components/CompatibilityV3/pages/BirthdatePartner/index.tsx b/src/components/CompatibilityV3/pages/BirthdatePartner/index.tsx index c88b27f..e047a64 100644 --- a/src/components/CompatibilityV3/pages/BirthdatePartner/index.tsx +++ b/src/components/CompatibilityV3/pages/BirthdatePartner/index.tsx @@ -11,6 +11,8 @@ import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useSession } from "@/hooks/session/useSession"; import { ESourceAuthorization } from "@/api/resources/User"; +import { usePreloadImages } from "@/hooks/preload/images"; +import { getZodiacSignByDate, ZODIACS } from "@/services/zodiac-sign"; function BirthdatePartner() { const { translate } = useTranslations(ELocalesPlacement.CompatibilityV3); @@ -20,6 +22,18 @@ function BirthdatePartner() { const { partnerBirthdate } = useSelector(selectors.selectQuestionnaire); const [birthdate, setBirthdate] = useState(partnerBirthdate || ""); const [isDisabled, setIsDisabled] = useState(true); + const { partnerGender } = useSelector(selectors.selectQuestionnaire); + const zodiacSign = getZodiacSignByDate(birthdate); + + usePreloadImages( + !!zodiacSign?.length ? + [ + `/zodiac-signs/${partnerGender?.toLowerCase()}/${zodiacSign?.toLowerCase()}.svg` + ] : + ZODIACS.map( + (zodiac) => `/zodiac-signs/${partnerGender?.toLowerCase()}/${zodiac?.toLowerCase()}.svg` + ) + ); const handleValid = (_birthdate: string) => { setBirthdate(_birthdate); diff --git a/src/components/CompatibilityV3/pages/CheckingPhone/index.tsx b/src/components/CompatibilityV3/pages/CheckingPhone/index.tsx index 5e6849e..5484fa7 100644 --- a/src/components/CompatibilityV3/pages/CheckingPhone/index.tsx +++ b/src/components/CompatibilityV3/pages/CheckingPhone/index.tsx @@ -10,7 +10,6 @@ import { answerTimeOut } from "../../data"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useMemo } from "react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV3 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; @@ -23,9 +22,6 @@ function CheckingPhone() { const { checkingPhone, relationshipStatus } = useSelector( selectors.selectCompatibilityV3Answers ); - useLottie({ - preloadKey: ELottieKeys.scalesNeutralPalmistry, - }); const answers: { id: IAnswersSessionCompatibilityV3["checking_phone"]; diff --git a/src/components/CompatibilityV3/pages/Gender/index.tsx b/src/components/CompatibilityV3/pages/Gender/index.tsx index 736657c..9f3f3ac 100644 --- a/src/components/CompatibilityV3/pages/Gender/index.tsx +++ b/src/components/CompatibilityV3/pages/Gender/index.tsx @@ -14,7 +14,6 @@ import { genders } from "@/components/pages/ABDesign/v1/data/genders"; import { useNavigate } from "react-router-dom"; import routes from "@/routes"; import { usePreloadImages } from "@/hooks/preload/images"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { EGender, ESourceAuthorization } from "@/api/resources/User"; import AlreadyHaveAccount from "@/components/ui/AlreadyHaveAccount"; @@ -33,10 +32,7 @@ function GenderPage() { const { gender } = useSelector(selectors.selectQuestionnaire); const [isSelected, setIsSelected] = useState(false); - usePreloadImages(["/v1/palmistry/hand-with-eye.svg"]); - useLottie({ - preloadKey: ELottieKeys.handSymbols, - }); + usePreloadImages(["/v3/compatibility/hand-with-eye.svg"]); const { flags, ready } = useMetricABFlags(); const pageType = flags?.genderPageType?.[0] || "v2"; diff --git a/src/components/CompatibilityV3/pages/GenderPartner/index.tsx b/src/components/CompatibilityV3/pages/GenderPartner/index.tsx index f6d51dd..e1689de 100644 --- a/src/components/CompatibilityV3/pages/GenderPartner/index.tsx +++ b/src/components/CompatibilityV3/pages/GenderPartner/index.tsx @@ -12,7 +12,6 @@ import { genders } from "@/components/pages/ABDesign/v1/data/genders"; import { useNavigate } from "react-router-dom"; import routes from "@/routes"; import { usePreloadImages } from "@/hooks/preload/images"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { EGender, ESourceAuthorization } from "@/api/resources/User"; import Answer from "../../components/Answer"; @@ -29,10 +28,7 @@ function GenderPartner() { const { partnerGender } = useSelector(selectors.selectQuestionnaire); const [isSelected, setIsSelected] = useState(false); - usePreloadImages(["/v1/palmistry/hand-with-eye.svg"]); - useLottie({ - preloadKey: ELottieKeys.handSymbols, - }); + usePreloadImages(["/v3/compatibility/hand-with-eye.svg"]); const localGenders = genders.map((gender) => ({ id: gender.id, diff --git a/src/components/CompatibilityV3/pages/HeadOrHeart/index.tsx b/src/components/CompatibilityV3/pages/HeadOrHeart/index.tsx index 534dee1..015d367 100644 --- a/src/components/CompatibilityV3/pages/HeadOrHeart/index.tsx +++ b/src/components/CompatibilityV3/pages/HeadOrHeart/index.tsx @@ -14,7 +14,6 @@ import { usePreloadImages } from "@/hooks/preload/images"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV3 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; function HeadOrHeart() { const { translate } = useTranslations(ELocalesPlacement.CompatibilityV3); @@ -22,24 +21,11 @@ function HeadOrHeart() { const navigate = useNavigate(); const dispatch = useDispatch(); const { headOrHeart } = useSelector(selectors.selectCompatibilityV3Answers); - usePreloadImages([ - "/v1/palmistry/money-back.svg", - "/v1/palmistry/hand.svg", - "/v1/palmistry/1_1.svg", - "/v1/palmistry/daily.svg", - "/v1/palmistry/cosmic.svg", - "/v1/palmistry/calendar.svg", - "/v1/palmistry/reviews/rebecca.png", - "/v1/palmistry/reviews/mika.png", - "/v1/palmistry/reviews/amanda.png", - "/v1/palmistry/partners.png", - ]); - useLottie({ - preloadKey: ELottieKeys.letScan, - }); - useLottie({ - preloadKey: ELottieKeys.scannedPhoto, - }); + usePreloadImages( + ["head", "heart", "both"].map( + (headOrHeart) => `/v3/compatibility/head-or-heart-result/${headOrHeart}.svg` + ) + ); const answers: { id: IAnswersSessionCompatibilityV3["head_or_heart"]; title: string }[] = useMemo( diff --git a/src/components/CompatibilityV3/pages/HeadOrHeartResult/index.tsx b/src/components/CompatibilityV3/pages/HeadOrHeartResult/index.tsx index 1673953..66e3692 100644 --- a/src/components/CompatibilityV3/pages/HeadOrHeartResult/index.tsx +++ b/src/components/CompatibilityV3/pages/HeadOrHeartResult/index.tsx @@ -1,6 +1,4 @@ -// import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import styles from "./styles.module.scss"; -// import { DotLottieReact } from "@lottiefiles/dotlottie-react"; import Title from "@/components/Title"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; @@ -13,13 +11,8 @@ import routes from "@/routes"; import { useMemo } from "react"; import { EUnleashFlags, useUnleash } from "@/hooks/ab/unleash/useUnleash"; import Loader, { LoaderColor } from "@/components/Loader"; - -// const animations = { -// both: ELottieKeys.scalesNeutralPalmistry, -// heart: ELottieKeys.scalesHeartPalmistry, -// head: ELottieKeys.scalesHeadPalmistry, -// depends: ELottieKeys.scalesNeutralPalmistry, -// }; +import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; +import { useTheme } from "@/hooks/theme/useTheme"; function HeadOrHeartResult() { const navigate = useNavigate(); @@ -28,14 +21,18 @@ function HeadOrHeartResult() { const { gender, partnerGender, partnerBirthdate } = useSelector(selectors.selectQuestionnaire); const translatePrefix = relationshipStatus === "single" ? "single" : "with-partner"; + const { darkTheme } = useTheme(); + useLottie({ + preloadKey: darkTheme ? ELottieKeys.letScanDark : ELottieKeys.letScan, + }); + useLottie({ + preloadKey: ELottieKeys.scannedPhoto, + }); + const { isReady, variant } = useUnleash({ flag: EUnleashFlags.headOrHeartResultPageCompatibilityV3, }); - // const { animationData } = useLottie({ - // loadKey: animations[headOrHeart as keyof typeof animations], - // }); - const birthdate = useSelector(selectors.selectBirthdate); const zodiacSign = getZodiacSignByDate(birthdate); const zodiacSignPartner = getZodiacSignByDate(partnerBirthdate); @@ -45,7 +42,6 @@ function HeadOrHeartResult() { }; const handleNext = () => { - // navigate(`${routes.client.compatibilityV3RelateFollowing()}/1`); navigate(routes.client.compatibilityV3ScannedPhoto()); }; @@ -58,16 +54,6 @@ function HeadOrHeartResult() { return (
- {/*
- {animationData && ( - - )} -
*/} {variant === "v1" && result image - {/* {animationData && ( - - )} */}
Zodiac sign
- {translate(`/palms-information.${zodiacSign.toLowerCase()}.title`)} + {translate(`/palms-information.${zodiacSign?.toLowerCase()}.title`)}

- {translate(`/palms-information.${zodiacSign.toLowerCase()}.description`, { + {translate(`/palms-information.${zodiacSign?.toLowerCase()}.description`, { br:
, })}

diff --git a/src/components/CompatibilityV3/pages/PalmsInformationPartner/index.tsx b/src/components/CompatibilityV3/pages/PalmsInformationPartner/index.tsx index a66899d..b5d4741 100644 --- a/src/components/CompatibilityV3/pages/PalmsInformationPartner/index.tsx +++ b/src/components/CompatibilityV3/pages/PalmsInformationPartner/index.tsx @@ -5,23 +5,21 @@ import Button from "../../components/Button"; import { useTranslations } from "@/hooks/translations"; import { useNavigate } from "react-router-dom"; import { ELocalesPlacement } from "@/locales"; -// import { DotLottieReact } from "@lottiefiles/dotlottie-react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { selectors } from "@/store"; import { useSelector } from "react-redux"; import { getZodiacSignByDate } from "@/services/zodiac-sign"; +import { usePreloadImages } from "@/hooks/preload/images"; function PalmsInformationPartner() { const { translate } = useTranslations(ELocalesPlacement.CompatibilityV3); const { partnerGender, partnerBirthdate } = useSelector(selectors.selectQuestionnaire); - + const zodiacSign = getZodiacSignByDate(partnerBirthdate); const navigate = useNavigate(); - // const { animationData } = - useLottie({ - // loadKey: ELottieKeys.handSymbols, - preloadKey: ELottieKeys.scalesHeadPalmistry, - }); + + usePreloadImages([ + "/v3/compatibility/hand-with-eye.svg" + ]) const handleNext = () => { navigate(routes.client.compatibilityV3DateEvent()); @@ -42,7 +40,7 @@ function PalmsInformationPartner() { Zodiac sign
diff --git a/src/components/CompatibilityV3/pages/RelationshipStatus/index.tsx b/src/components/CompatibilityV3/pages/RelationshipStatus/index.tsx index 3a54fd5..d5c27b1 100644 --- a/src/components/CompatibilityV3/pages/RelationshipStatus/index.tsx +++ b/src/components/CompatibilityV3/pages/RelationshipStatus/index.tsx @@ -10,7 +10,6 @@ import { answerTimeOut } from "../../data"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useMemo } from "react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV3 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; @@ -23,9 +22,6 @@ function RelationshipStatus() { const { relationshipStatus } = useSelector( selectors.selectCompatibilityV3Answers ); - useLottie({ - preloadKey: ELottieKeys.scalesNeutralPalmistry, - }); const answers: { id: IAnswersSessionCompatibilityV3["relationship_status"]; diff --git a/src/components/CompatibilityV3/pages/RomanticGestures/index.tsx b/src/components/CompatibilityV3/pages/RomanticGestures/index.tsx index b172ba8..7ccec26 100644 --- a/src/components/CompatibilityV3/pages/RomanticGestures/index.tsx +++ b/src/components/CompatibilityV3/pages/RomanticGestures/index.tsx @@ -10,7 +10,6 @@ import { answerTimeOut } from "../../data"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useMemo } from "react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV3 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; @@ -23,9 +22,6 @@ function RomanticGestures() { const { romanticGestures } = useSelector( selectors.selectCompatibilityV3Answers ); - useLottie({ - preloadKey: ELottieKeys.scalesNeutralPalmistry, - }); const answers: { id: IAnswersSessionCompatibilityV3["romantic_gestures"]; diff --git a/src/components/CompatibilityV3/pages/ScannedPhoto/index.tsx b/src/components/CompatibilityV3/pages/ScannedPhoto/index.tsx index c54ce69..899ee36 100644 --- a/src/components/CompatibilityV3/pages/ScannedPhoto/index.tsx +++ b/src/components/CompatibilityV3/pages/ScannedPhoto/index.tsx @@ -18,6 +18,8 @@ import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { DotLottieReact } from "@lottiefiles/dotlottie-react"; import { useMetricABFlags } from "@/services/metric/metricService"; import { getRandomArbitrary } from "@/services/random-value"; +import { usePreloadImages } from "@/hooks/preload/images"; +import { getZodiacSignByDate } from "@/services/zodiac-sign"; // const drawElementChangeDelay = 1500; // const startDelay = 500; @@ -55,6 +57,17 @@ function ScannedPhoto() { const { authorization } = useAuthentication(); + const { gender, partnerGender, birthdate, partnerBirthdate } = useSelector(selectors.selectQuestionnaire); + const zodiacSign = getZodiacSignByDate(birthdate); + const partnerZodiacSign = getZodiacSignByDate(partnerBirthdate); + + usePreloadImages([ + `/zodiac-signs/${gender?.toLowerCase()}/${zodiacSign?.toLowerCase()}.svg`, + `/zodiac-signs/${partnerGender?.toLowerCase()}/${partnerZodiacSign?.toLowerCase()}.svg`, + "/v3/compatibility/download-app.png", + "/v3/compatibility/partners.png" + ]) + // const drawElements = useMemo(() => [...fingers, ...lines], [fingers, lines]); const { relationshipStatus } = useSelector(selectors.selectCompatibilityV3Answers) diff --git a/src/components/CompatibilityV3/pages/TrialChoice/index.tsx b/src/components/CompatibilityV3/pages/TrialChoice/index.tsx index 4cda0d5..9c08876 100644 --- a/src/components/CompatibilityV3/pages/TrialChoice/index.tsx +++ b/src/components/CompatibilityV3/pages/TrialChoice/index.tsx @@ -20,6 +20,9 @@ import { useTranslations } from "@/hooks/translations"; // import { useMetricABFlags } from "@/services/metric/metricService"; import { getLongText } from "./abText"; import metricService, { EGoals, EMetrics } from "@/services/metric/metricService"; +import { usePreloadImages } from "@/hooks/preload/images"; +import { getZodiacSignByDate } from "@/services/zodiac-sign"; +import { images } from "../../data"; function TrialChoice() { const { translate } = useTranslations(ELocalesPlacement.CompatibilityV3); @@ -29,6 +32,25 @@ function TrialChoice() { placementKey: EPlacementKeys["aura.placement.compatibility.v3"], localesPlacement: ELocalesPlacement.CompatibilityV3, }); + const { gender, partnerGender, birthdate, partnerBirthdate } = useSelector(selectors.selectQuestionnaire) + const zodiacSign = getZodiacSignByDate(birthdate); + const zodiacSignPartner = getZodiacSignByDate(partnerBirthdate); + + usePreloadImages([ + images(`zodiacs/${gender}/${zodiacSign?.toUpperCase()}.webp`), + images(`zodiacs/${partnerGender}/${zodiacSignPartner?.toUpperCase()}.webp`), + "/v3/compatibility/trial-payment/girl2.png", + "/v3/compatibility/trial-payment/avatar-1.png", + "/v3/compatibility/trial-payment/avatar-2.png", + "/v3/compatibility/trial-payment/avatar-3.png", + "/v3/compatibility/trial-payment/avatar-4.png", + "/v3/compatibility/love-line.svg", + "/v3/compatibility/head-line.svg", + "/v3/compatibility/life-line.svg", + "/v3/compatibility/fate-line.svg", + "/v3/compatibility/hand-little-finger.svg", + "/v3/compatibility/partners.png" + ]) const locale = getDefaultLocaleByLanguage(language); diff --git a/src/components/CompatibilityV4/pages/CalculateInAdvance/index.tsx b/src/components/CompatibilityV4/pages/CalculateInAdvance/index.tsx index 0f0b255..b06991a 100644 --- a/src/components/CompatibilityV4/pages/CalculateInAdvance/index.tsx +++ b/src/components/CompatibilityV4/pages/CalculateInAdvance/index.tsx @@ -10,7 +10,6 @@ import { answerTimeOut } from "../../data"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useMemo } from "react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV4 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; @@ -23,9 +22,6 @@ function CalculateInAdvance() { const { calculateInAdvance } = useSelector( selectors.selectCompatibilityV4Answers ); - useLottie({ - preloadKey: ELottieKeys.scalesNeutralPalmistry, - }); const answers: { id: IAnswersSessionCompatibilityV4["calculate_in_advance"]; diff --git a/src/components/CompatibilityV4/pages/CheckingPhone/index.tsx b/src/components/CompatibilityV4/pages/CheckingPhone/index.tsx index 44483ad..07b3d53 100644 --- a/src/components/CompatibilityV4/pages/CheckingPhone/index.tsx +++ b/src/components/CompatibilityV4/pages/CheckingPhone/index.tsx @@ -10,7 +10,6 @@ import { answerTimeOut } from "../../data"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useMemo } from "react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV4 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; @@ -23,9 +22,6 @@ function CheckingPhone() { const { checkingPhone } = useSelector( selectors.selectCompatibilityV4Answers ); - useLottie({ - preloadKey: ELottieKeys.scalesNeutralPalmistry, - }); const answers: { id: IAnswersSessionCompatibilityV4["checking_phone"]; diff --git a/src/components/CompatibilityV4/pages/ComplexRelationshipAspect/index.tsx b/src/components/CompatibilityV4/pages/ComplexRelationshipAspect/index.tsx index d83bb12..c0d2d3b 100644 --- a/src/components/CompatibilityV4/pages/ComplexRelationshipAspect/index.tsx +++ b/src/components/CompatibilityV4/pages/ComplexRelationshipAspect/index.tsx @@ -10,7 +10,6 @@ import { answerTimeOut } from "../../data"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useMemo } from "react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV4 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; @@ -23,9 +22,6 @@ function ComplexRelationshipAspect() { const { complexRelationshipAspect } = useSelector( selectors.selectCompatibilityV4Answers ); - useLottie({ - preloadKey: ELottieKeys.scalesNeutralPalmistry, - }); const answers: { id: IAnswersSessionCompatibilityV4["complex_relationship_aspect"]; diff --git a/src/components/CompatibilityV4/pages/Gender/index.tsx b/src/components/CompatibilityV4/pages/Gender/index.tsx index f81d8f3..222f475 100644 --- a/src/components/CompatibilityV4/pages/Gender/index.tsx +++ b/src/components/CompatibilityV4/pages/Gender/index.tsx @@ -2,7 +2,6 @@ import styles from "./styles.module.scss"; import { useDispatch, useSelector } from "react-redux"; import { actions, selectors } from "@/store"; import { Gender } from "@/data"; -// import Toast from "@/components/pages/ABDesign/v1/components/Toast"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useCallback, useEffect, useState } from "react"; @@ -12,7 +11,6 @@ import { genders } from "@/components/pages/ABDesign/v1/data/genders"; import { useNavigate } from "react-router-dom"; import routes from "@/routes"; import { usePreloadImages } from "@/hooks/preload/images"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { EGender, ESourceAuthorization } from "@/api/resources/User"; import Loader, { LoaderColor } from "@/components/Loader"; @@ -33,9 +31,6 @@ function GenderPage() { const { gender } = useSelector(selectors.selectQuestionnaire); const [isSelected, setIsSelected] = useState(false); usePreloadImages(["/v1/palmistry/hand-with-eye.svg"]); - useLottie({ - preloadKey: ELottieKeys.handSymbols, - }); const { flags, ready } = useMetricABFlags(); const pageType = flags?.genderPageType?.[0] || "v2"; diff --git a/src/components/CompatibilityV4/pages/GenderPartner/index.tsx b/src/components/CompatibilityV4/pages/GenderPartner/index.tsx index 0beb85d..a705081 100644 --- a/src/components/CompatibilityV4/pages/GenderPartner/index.tsx +++ b/src/components/CompatibilityV4/pages/GenderPartner/index.tsx @@ -12,7 +12,6 @@ import { genders } from "@/components/pages/ABDesign/v1/data/genders"; import { useNavigate } from "react-router-dom"; import routes from "@/routes"; import { usePreloadImages } from "@/hooks/preload/images"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { EGender, ESourceAuthorization } from "@/api/resources/User"; import Answer from "../../components/Answer"; @@ -30,9 +29,6 @@ function GenderPartner() { const { partnerGender } = useSelector(selectors.selectQuestionnaire); const [isSelected, setIsSelected] = useState(false); usePreloadImages(["/v1/palmistry/hand-with-eye.svg"]); - useLottie({ - preloadKey: ELottieKeys.handSymbols, - }); const localGenders = genders.map((gender) => ({ id: gender.id, diff --git a/src/components/CompatibilityV4/pages/HeadOrHeart/index.tsx b/src/components/CompatibilityV4/pages/HeadOrHeart/index.tsx index 15a9873..1de47d9 100644 --- a/src/components/CompatibilityV4/pages/HeadOrHeart/index.tsx +++ b/src/components/CompatibilityV4/pages/HeadOrHeart/index.tsx @@ -14,7 +14,6 @@ import { usePreloadImages } from "@/hooks/preload/images"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV4 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; function HeadOrHeart() { const { translate } = useTranslations(ELocalesPlacement.CompatibilityV4); @@ -22,21 +21,11 @@ function HeadOrHeart() { const navigate = useNavigate(); const dispatch = useDispatch(); const { headOrHeart } = useSelector(selectors.selectCompatibilityV4Answers); - usePreloadImages([ - "/v1/palmistry/money-back.svg", - "/v1/palmistry/hand.svg", - "/v1/palmistry/1_1.svg", - "/v1/palmistry/daily.svg", - "/v1/palmistry/cosmic.svg", - "/v1/palmistry/calendar.svg", - "/v1/palmistry/reviews/rebecca.png", - "/v1/palmistry/reviews/mika.png", - "/v1/palmistry/reviews/amanda.png", - "/v1/palmistry/partners.png", - ]); - useLottie({ - preloadKey: ELottieKeys.letScan, - }); + usePreloadImages( + ["head", "heart", "both"].map( + (headOrHeart) => `/v4/compatibility/head-or-heart-result/${headOrHeart}.svg` + ) + ); const answers: { id: IAnswersSessionCompatibilityV4["head_or_heart"]; title: string }[] = useMemo( diff --git a/src/components/CompatibilityV4/pages/HeadOrHeartResult/index.tsx b/src/components/CompatibilityV4/pages/HeadOrHeartResult/index.tsx index 7373c73..231bba6 100644 --- a/src/components/CompatibilityV4/pages/HeadOrHeartResult/index.tsx +++ b/src/components/CompatibilityV4/pages/HeadOrHeartResult/index.tsx @@ -1,6 +1,4 @@ -// import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import styles from "./styles.module.scss"; -// import { DotLottieReact } from "@lottiefiles/dotlottie-react"; import Title from "@/components/Title"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; @@ -12,13 +10,6 @@ import { useNavigate } from "react-router-dom"; import routes from "@/routes"; import { useMemo } from "react"; -// const animations = { -// both: ELottieKeys.scalesNeutralPalmistry, -// heart: ELottieKeys.scalesHeartPalmistry, -// head: ELottieKeys.scalesHeadPalmistry, -// depends: ELottieKeys.scalesNeutralPalmistry, -// }; - function HeadOrHeartResult() { const navigate = useNavigate(); const { translate } = useTranslations(ELocalesPlacement.CompatibilityV4); @@ -30,10 +21,6 @@ function HeadOrHeartResult() { // flag: EUnleashFlags.headOrHeartResultPageCompatibilityV4, // }); - // const { animationData } = useLottie({ - // loadKey: animations[headOrHeart as keyof typeof animations], - // }); - const birthdate = useSelector(selectors.selectBirthdate); const zodiacSign = getZodiacSignByDate(birthdate); const zodiacSignPartner = getZodiacSignByDate(partnerBirthdate); @@ -56,16 +43,6 @@ function HeadOrHeartResult() { return (
- {/*
- {animationData && ( - - )} -
*/} result image feature?.toLowerCase()?.includes("ios"), [feature]); const authCode = useSelector(selectors.selectAuthCode); + const { gender, partnerGender, birthdate, partnerBirthdate } = useSelector(selectors.selectQuestionnaire); + const zodiacSign = getZodiacSignByDate(birthdate); + const partnerZodiacSign = getZodiacSignByDate(partnerBirthdate); + + const preloadImages = useMemo(() => { + return [ + "/v4/compatibility/trial-payment/book.png", + `/zodiac-signs/${gender?.toLowerCase()}/${zodiacSign?.toLowerCase()}.svg`, + `/zodiac-signs/${partnerGender?.toLowerCase()}/${partnerZodiacSign?.toLowerCase()}.svg` + ] + }, [gender, partnerGender, birthdate, partnerBirthdate]) + + usePreloadImages(preloadImages) + const loadingPointSettings = useMemo(() => { const currentPointIndex = Math.floor(progress / 100); const endFastLoading = getRandomArbitrary(15, 30); diff --git a/src/components/CompatibilityV4/pages/PalmsInformation/index.tsx b/src/components/CompatibilityV4/pages/PalmsInformation/index.tsx index 492cb44..8409b89 100644 --- a/src/components/CompatibilityV4/pages/PalmsInformation/index.tsx +++ b/src/components/CompatibilityV4/pages/PalmsInformation/index.tsx @@ -6,8 +6,6 @@ import Policy from "@/components/Policy"; import { useTranslations } from "@/hooks/translations"; import { useNavigate } from "react-router-dom"; import { ELocalesPlacement } from "@/locales"; -// import { DotLottieReact } from "@lottiefiles/dotlottie-react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { selectors } from "@/store"; import { useSelector } from "react-redux"; import { getZodiacSignByDate } from "@/services/zodiac-sign"; @@ -17,11 +15,6 @@ function PalmsInformation() { const { gender, birthdate } = useSelector(selectors.selectQuestionnaire); const zodiacSign = getZodiacSignByDate(birthdate); const navigate = useNavigate(); - // const { animationData } = - useLottie({ - // loadKey: ELottieKeys.handSymbols, - preloadKey: ELottieKeys.scalesHeadPalmistry, - }); const handleNext = () => { navigate(routes.client.compatibilityV4ResultAnalysis()); @@ -29,32 +22,22 @@ function PalmsInformation() { return (
- {/* {animationData && ( - - )} */}
Zodiac sign
- {translate(`/palms-information.${zodiacSign.toLowerCase()}.title`)} + {translate(`/palms-information.${zodiacSign?.toLowerCase()}.title`)}

- {translate(`/palms-information.${zodiacSign.toLowerCase()}.description`, { + {translate(`/palms-information.${zodiacSign?.toLowerCase()}.description`, { br:
, - bold: {translate(`/palms-information.${zodiacSign.toLowerCase()}.description_bold`)}, - percent: {translate(`/palms-information.${zodiacSign.toLowerCase()}.description_percent`)}, - zodiac: {translate(`zodiac_signs.${zodiacSign.toLowerCase()}`)}, + bold: {translate(`/palms-information.${zodiacSign?.toLowerCase()}.description_bold`)}, + percent: {translate(`/palms-information.${zodiacSign?.toLowerCase()}.description_percent`)}, + zodiac: {translate(`zodiac_signs.${zodiacSign?.toLowerCase()}`)}, })}

- {/* - {translate("privacy_policy", { - eulaLink: ( - - {translate("eula_link")} - - ), - privacyLink: ( - - {translate("privacy_notice")} - - ), - clickHere: ( - - {translate("policy_here")} - - ), - })} - */}
); } diff --git a/src/components/CompatibilityV4/pages/PartnerAnalysis/index.tsx b/src/components/CompatibilityV4/pages/PartnerAnalysis/index.tsx index 184158f..5953652 100644 --- a/src/components/CompatibilityV4/pages/PartnerAnalysis/index.tsx +++ b/src/components/CompatibilityV4/pages/PartnerAnalysis/index.tsx @@ -7,6 +7,10 @@ import { useCallback, useEffect, useRef, useState } from "react"; import { sleep } from "@/services/date"; import { CircularProgressbar } from "react-circular-progressbar"; import routes from "@/routes"; +import { useSelector } from "react-redux"; +import { selectors } from "@/store"; +import { getZodiacSignByDate } from "@/services/zodiac-sign"; +import { usePreloadImages } from "@/hooks/preload/images"; const POINTS_COUNT = 11; const TOTAL_ANIMATION_TIME = 24600; @@ -17,6 +21,12 @@ function PartnerAnalysis() { const [loadingProgress, setLoadingProgress] = useState(0); const listRef = useRef>([]); + const { partnerGender, partnerBirthdate } = useSelector(selectors.selectQuestionnaire); + const zodiacSign = getZodiacSignByDate(partnerBirthdate); + usePreloadImages([ + `/zodiac-signs/${partnerGender?.toLowerCase()}/${zodiacSign?.toLowerCase()}.svg` + ]); + const [listHeight, setListHeight] = useState(0); useEffect(() => { diff --git a/src/components/CompatibilityV4/pages/RelationshipStatus/index.tsx b/src/components/CompatibilityV4/pages/RelationshipStatus/index.tsx index 7a2035a..3e370e2 100644 --- a/src/components/CompatibilityV4/pages/RelationshipStatus/index.tsx +++ b/src/components/CompatibilityV4/pages/RelationshipStatus/index.tsx @@ -10,7 +10,6 @@ import { answerTimeOut } from "../../data"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useMemo } from "react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV4 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; @@ -23,9 +22,6 @@ function RelationshipStatus() { const { relationshipStatus } = useSelector( selectors.selectCompatibilityV4Answers ); - useLottie({ - preloadKey: ELottieKeys.scalesNeutralPalmistry, - }); const answers: { id: IAnswersSessionCompatibilityV4["relationship_status"]; diff --git a/src/components/CompatibilityV4/pages/RomanticGestures/index.tsx b/src/components/CompatibilityV4/pages/RomanticGestures/index.tsx index c01bae2..7595e03 100644 --- a/src/components/CompatibilityV4/pages/RomanticGestures/index.tsx +++ b/src/components/CompatibilityV4/pages/RomanticGestures/index.tsx @@ -10,7 +10,6 @@ import { answerTimeOut } from "../../data"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useMemo } from "react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV4 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; @@ -23,9 +22,6 @@ function RomanticGestures() { const { romanticGestures } = useSelector( selectors.selectCompatibilityV4Answers ); - useLottie({ - preloadKey: ELottieKeys.scalesNeutralPalmistry, - }); const answers: { id: IAnswersSessionCompatibilityV4["romantic_gestures"]; diff --git a/src/components/CompatibilityV4/pages/StressResponse/index.tsx b/src/components/CompatibilityV4/pages/StressResponse/index.tsx index 1ba5c4c..db74e7e 100644 --- a/src/components/CompatibilityV4/pages/StressResponse/index.tsx +++ b/src/components/CompatibilityV4/pages/StressResponse/index.tsx @@ -10,7 +10,6 @@ import { answerTimeOut } from "../../data"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useMemo } from "react"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { IAnswersSessionCompatibilityV4 } from "@/api/resources/Session"; import { ESourceAuthorization } from "@/api/resources/User"; @@ -23,9 +22,6 @@ function StressResponse() { const { stressResponse } = useSelector( selectors.selectCompatibilityV4Answers ); - useLottie({ - preloadKey: ELottieKeys.scalesNeutralPalmistry, - }); const answers: { id: IAnswersSessionCompatibilityV4["stress_response"]; diff --git a/src/components/CompatibilityV4/pages/TrialChoice/index.tsx b/src/components/CompatibilityV4/pages/TrialChoice/index.tsx index 6627698..762bb3a 100644 --- a/src/components/CompatibilityV4/pages/TrialChoice/index.tsx +++ b/src/components/CompatibilityV4/pages/TrialChoice/index.tsx @@ -20,6 +20,8 @@ import { useTranslations } from "@/hooks/translations"; // import { useMetricABFlags } from "@/services/metric/metricService"; import { getLongText } from "./abText"; import metricService, { EGoals, EMetrics } from "@/services/metric/metricService"; +import { usePreloadImages } from "@/hooks/preload/images"; +import { getZodiacSignByDate } from "@/services/zodiac-sign"; function TrialChoice() { const { translate } = useTranslations(ELocalesPlacement.CompatibilityV4); @@ -30,6 +32,17 @@ function TrialChoice() { localesPlacement: ELocalesPlacement.CompatibilityV4, }); + const { gender, partnerGender, birthdate, partnerBirthdate } = useSelector(selectors.selectQuestionnaire) + const zodiacSign = getZodiacSignByDate(birthdate); + const zodiacSignPartner = getZodiacSignByDate(partnerBirthdate); + + usePreloadImages([ + "/v4/compatibility/trial-payment/book.png", + `/zodiac-signs/${gender?.toLowerCase()}/${zodiacSign?.toLowerCase()}.svg`, + `/zodiac-signs/${partnerGender?.toLowerCase()}/${zodiacSignPartner?.toLowerCase()}.svg`, + "/v4/compatibility/partners.png" + ]) + const locale = getDefaultLocaleByLanguage(language); // const { flags } = useMetricABFlags(); diff --git a/src/components/CompatibilityV4/pages/YourAnalysis/index.tsx b/src/components/CompatibilityV4/pages/YourAnalysis/index.tsx index eed8f7f..d5a3f15 100644 --- a/src/components/CompatibilityV4/pages/YourAnalysis/index.tsx +++ b/src/components/CompatibilityV4/pages/YourAnalysis/index.tsx @@ -7,6 +7,10 @@ import { useCallback, useEffect, useRef, useState } from "react"; import { sleep } from "@/services/date"; import { CircularProgressbar } from "react-circular-progressbar"; import routes from "@/routes"; +import { usePreloadImages } from "@/hooks/preload/images"; +import { useSelector } from "react-redux"; +import { selectors } from "@/store"; +import { getZodiacSignByDate } from "@/services/zodiac-sign"; const POINTS_COUNT = 13; const TOTAL_ANIMATION_TIME = 24600; @@ -17,6 +21,12 @@ function YourAnalysis() { const [loadingProgress, setLoadingProgress] = useState(0); const listRef = useRef>([]); + const { gender, birthdate } = useSelector(selectors.selectQuestionnaire); + const zodiacSign = getZodiacSignByDate(birthdate); + usePreloadImages([ + `/zodiac-signs/${gender?.toLowerCase()}/${zodiacSign?.toLowerCase()}.svg` + ]); + const [listHeight, setListHeight] = useState(0); useEffect(() => { diff --git a/src/components/PalmistryV1/pages/Birthdate/index.tsx b/src/components/PalmistryV1/pages/Birthdate/index.tsx index 16db291..abda779 100644 --- a/src/components/PalmistryV1/pages/Birthdate/index.tsx +++ b/src/components/PalmistryV1/pages/Birthdate/index.tsx @@ -12,6 +12,7 @@ import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; import { useSession } from "@/hooks/session/useSession"; import { ESourceAuthorization } from "@/api/resources/User"; +import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; function Birthdate() { const { translate } = useTranslations(ELocalesPlacement.PalmistryV1); @@ -21,6 +22,9 @@ function Birthdate() { const birthdateFromStore = useSelector(selectors.selectBirthdate); const [birthdate, setBirthdate] = useState(birthdateFromStore); const [isDisabled, setIsDisabled] = useState(true); + useLottie({ + preloadKey: ELottieKeys.handSymbols, + }); const handleValid = (_birthdate: string) => { setBirthdate(_birthdate); diff --git a/src/components/PalmistryV1/pages/GenderPalmistry/index.tsx b/src/components/PalmistryV1/pages/GenderPalmistry/index.tsx index 4cd16dd..d4a2dba 100644 --- a/src/components/PalmistryV1/pages/GenderPalmistry/index.tsx +++ b/src/components/PalmistryV1/pages/GenderPalmistry/index.tsx @@ -14,7 +14,6 @@ import { genders } from "@/components/pages/ABDesign/v1/data/genders"; import { useNavigate } from "react-router-dom"; import routes from "@/routes"; import { usePreloadImages } from "@/hooks/preload/images"; -import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import { useSession } from "@/hooks/session/useSession"; import { EGender, ESourceAuthorization } from "@/api/resources/User"; import AlreadyHaveAccount from "@/components/ui/AlreadyHaveAccount"; @@ -33,9 +32,6 @@ function GenderPalmistry() { const { gender } = useSelector(selectors.selectQuestionnaire); const [isSelected, setIsSelected] = useState(false); usePreloadImages(["/v1/palmistry/hand-with-eye.svg"]); - useLottie({ - preloadKey: ELottieKeys.handSymbols, - }); const localGenders = genders.map((gender) => ({ id: gender.id, diff --git a/src/components/PalmistryV1/pages/HeadOrHeart/index.tsx b/src/components/PalmistryV1/pages/HeadOrHeart/index.tsx index 4e291a3..e3032f1 100644 --- a/src/components/PalmistryV1/pages/HeadOrHeart/index.tsx +++ b/src/components/PalmistryV1/pages/HeadOrHeart/index.tsx @@ -21,18 +21,11 @@ function HeadOrHeart() { const navigate = useNavigate(); const dispatch = useDispatch(); const { headOrHeart } = useSelector(selectors.selectPalmistryV1Answers); - usePreloadImages([ - "/v1/palmistry/money-back.svg", - "/v1/palmistry/hand.svg", - "/v1/palmistry/1_1.svg", - "/v1/palmistry/daily.svg", - "/v1/palmistry/cosmic.svg", - "/v1/palmistry/calendar.svg", - "/v1/palmistry/reviews/rebecca.png", - "/v1/palmistry/reviews/mika.png", - "/v1/palmistry/reviews/amanda.png", - "/v1/palmistry/partners.png", - ]); + usePreloadImages( + ["head", "heart", "both"].map( + (headOrHeart) => `/v1/palmistry/head-or-heart-result/${headOrHeart}.svg` + ) + ); const answers: { id: IAnswersSessionPalmistry["head_or_heart"]; title: string }[] = useMemo( diff --git a/src/components/PalmistryV1/pages/HeadOrHeartResult/index.tsx b/src/components/PalmistryV1/pages/HeadOrHeartResult/index.tsx index 55c58db..1d87b24 100644 --- a/src/components/PalmistryV1/pages/HeadOrHeartResult/index.tsx +++ b/src/components/PalmistryV1/pages/HeadOrHeartResult/index.tsx @@ -1,6 +1,4 @@ -// import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; import styles from "./styles.module.scss"; -// import { DotLottieReact } from "@lottiefiles/dotlottie-react"; import Title from "@/components/Title"; import { useTranslations } from "@/hooks/translations"; import { ELocalesPlacement } from "@/locales"; @@ -13,13 +11,7 @@ import routes from "@/routes"; import { useMemo } from "react"; import { EUnleashFlags, useUnleash } from "@/hooks/ab/unleash/useUnleash"; import Loader, { LoaderColor } from "@/components/Loader"; - -// const animations = { -// both: ELottieKeys.scalesNeutralPalmistry, -// heart: ELottieKeys.scalesHeartPalmistry, -// head: ELottieKeys.scalesHeadPalmistry, -// depends: ELottieKeys.scalesNeutralPalmistry, -// }; +import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie"; function HeadOrHeartResult() { const navigate = useNavigate(); @@ -31,9 +23,9 @@ function HeadOrHeartResult() { flag: EUnleashFlags.headOrHeartResultPagePalmistryV1, }); - // const { animationData } = useLottie({ - // loadKey: animations[headOrHeart as keyof typeof animations], - // }); + useLottie({ + preloadKey: ELottieKeys.letScan + }) const birthdate = useSelector(selectors.selectBirthdate); const zodiacSign = getZodiacSignByDate(birthdate); @@ -56,16 +48,6 @@ function HeadOrHeartResult() { return (
- {/*
- {animationData && ( - - )} -
*/} {variant === "v1" && result image { if (isIOSPath) { diff --git a/src/components/PalmistryV1/pages/TrialChoice/index.tsx b/src/components/PalmistryV1/pages/TrialChoice/index.tsx index 68beda2..c20c7b1 100644 --- a/src/components/PalmistryV1/pages/TrialChoice/index.tsx +++ b/src/components/PalmistryV1/pages/TrialChoice/index.tsx @@ -21,6 +21,7 @@ import { useTranslations } from "@/hooks/translations"; import { getLongText } from "./abText"; import metricService, { EGoals, EMetrics, useMetricABFlags } from "@/services/metric/metricService"; import TrialChoiceV1 from "./v1"; +import { usePreloadImages } from "@/hooks/preload/images"; function TrialChoice() { const { translate } = useTranslations(ELocalesPlacement.PalmistryV1); @@ -31,6 +32,20 @@ function TrialChoice() { localesPlacement: ELocalesPlacement.PalmistryV1, }); + usePreloadImages([ + "/v1/palmistry/trial-payment/girl2.png", + "/v1/palmistry/trial-payment/avatar-1.png", + "/v1/palmistry/trial-payment/avatar-2.png", + "/v1/palmistry/trial-payment/avatar-3.png", + "/v1/palmistry/trial-payment/avatar-4.png", + "/v1/palmistry/love-line.svg", + "/v1/palmistry/head-line.svg", + "/v1/palmistry/life-line.svg", + "/v1/palmistry/fate-line.svg", + "/v1/palmistry/hand-little-finger.svg", + "/v1/palmistry/partners.png" + ]) + const locale = getDefaultLocaleByLanguage(language); const { flags, ready } = useMetricABFlags(); diff --git a/src/components/pages/TrialPayment/components/WithPartnerInformation/index.tsx b/src/components/pages/TrialPayment/components/WithPartnerInformation/index.tsx index 138c017..3f8a0f8 100755 --- a/src/components/pages/TrialPayment/components/WithPartnerInformation/index.tsx +++ b/src/components/pages/TrialPayment/components/WithPartnerInformation/index.tsx @@ -45,7 +45,7 @@ function WithPartnerInformation(props: IWithPartnerInformationProps) {
  • Zodiac sign
    -

    {zodiacSign.length ? zodiacSign : "-"}

    +

    {zodiacSign?.length ? zodiacSign : "-"}

  • Gender
    @@ -63,7 +63,7 @@ function WithPartnerInformation(props: IWithPartnerInformationProps) {
    • Zodiac sign
      -

      {partnerZodiacSign.length ? partnerZodiacSign : "-"}

      +

      {partnerZodiacSign?.length ? partnerZodiacSign : "-"}

    • Gender
      diff --git a/src/hooks/ab/unleash/useUnleash.ts b/src/hooks/ab/unleash/useUnleash.ts index b423966..e8b374c 100644 --- a/src/hooks/ab/unleash/useUnleash.ts +++ b/src/hooks/ab/unleash/useUnleash.ts @@ -24,6 +24,7 @@ export enum EUnleashFlags { "headOrHeartResultPageCompatibilityV4" = "headOrHeartResultPageCompatibilityV4", "compatibilityV1EmailEnter" = "compatibilityV1EmailEnter", "compatibilityV2ScanHand" = "compatibilityV2ScanHand", + "preloadImages" = "preloadImages", } interface IUseUnleashProps { @@ -52,6 +53,7 @@ interface IVariants { [EUnleashFlags.headOrHeartResultPageCompatibilityV4]: "v0" | "v1"; [EUnleashFlags.compatibilityV1EmailEnter]: "show" | "hide"; [EUnleashFlags.compatibilityV2ScanHand]: "show" | "hide"; + [EUnleashFlags.preloadImages]: "yes" | "no"; } /** diff --git a/src/hooks/preload/images.ts b/src/hooks/preload/images.ts index acd12ff..992271a 100644 --- a/src/hooks/preload/images.ts +++ b/src/hooks/preload/images.ts @@ -1,4 +1,5 @@ import { useEffect } from "react"; +import { EUnleashFlags, useUnleash } from "../ab/unleash/useUnleash"; export const preloadImages = (images: string[]) => { if (!images.length) return; @@ -9,7 +10,12 @@ export const preloadImages = (images: string[]) => { } export const usePreloadImages = (images: string[]) => { + const { isReady, variant } = useUnleash({ + flag: EUnleashFlags.preloadImages + }) + useEffect(() => { + if (!isReady || variant === "no") return; preloadImages(images) - }, [images]) + }, [images, isReady, variant]) } \ No newline at end of file diff --git a/src/services/zodiac-sign/index.ts b/src/services/zodiac-sign/index.ts index f93b108..0571865 100644 --- a/src/services/zodiac-sign/index.ts +++ b/src/services/zodiac-sign/index.ts @@ -1,26 +1,28 @@ import { AssetCategory } from "@/api/resources/AssetCategories"; +export const ZODIACS = [ + "Capricorn", + "Aquarius", + "Pisces", + "Aries", + "Taurus", + "Gemini", + "Cancer", + "Leo", + "Virgo", + "Libra", + "Scorpio", + "Sagittarius", + "Capricorn", +]; + export const getZodiacSignByDate = (birthDate: string): string => { const date = new Date(birthDate); const day = date.getDate(); const month = date.getMonth() + 1; - const zodiac = [ - "Capricorn", - "Aquarius", - "Pisces", - "Aries", - "Taurus", - "Gemini", - "Cancer", - "Leo", - "Virgo", - "Libra", - "Scorpio", - "Sagittarius", - "Capricorn", - ]; + const last_day = [19, 18, 20, 19, 20, 20, 22, 22, 22, 22, 21, 21]; - return day > last_day[month - 1] ? zodiac[month * 1] : zodiac[month - 1]; + return day > last_day[month - 1] ? ZODIACS[month * 1] : ZODIACS[month - 1]; }; export const getCategoryIdByZodiacSign = (