208 lines
8.0 KiB
TypeScript
208 lines
8.0 KiB
TypeScript
import Title from "@/components/Title";
|
|
import styles from "./styles.module.scss";
|
|
import { useTranslations } from "@/hooks/translations";
|
|
import { ELocalesPlacement } from "@/locales";
|
|
import Answer from "../../components/Answer";
|
|
import { IAnswersSessionCompatibilityV4 } from "@/api/resources/Session";
|
|
import { useMemo } from "react";
|
|
import { actions, selectors } from "@/store";
|
|
import { useDispatch, useSelector } from "react-redux";
|
|
import { useSession } from "@/hooks/session/useSession";
|
|
import { useNavigate } from "react-router-dom";
|
|
import { ESourceAuthorization } from "@/api/resources/User";
|
|
import routes from "@/routes";
|
|
import Button from "../../components/Button";
|
|
import { ELottieKeys, useLottie } from "@/hooks/lottie/useLottie";
|
|
import BlurComponent from "@/components/BlurComponent";
|
|
|
|
function WhatAddToAnalysis() {
|
|
const dispatch = useDispatch();
|
|
const { updateSession } = useSession();
|
|
const navigate = useNavigate();
|
|
const { translate } = useTranslations(ELocalesPlacement.CompatibilityV4);
|
|
const { whatAddToAnalysis, relationshipStatus } = useSelector(
|
|
selectors.selectCompatibilityV4Answers
|
|
);
|
|
const isSingle = relationshipStatus === "single";
|
|
useLottie({
|
|
preloadKey: ELottieKeys.scannedPhoto,
|
|
});
|
|
|
|
const answers: {
|
|
id: IAnswersSessionCompatibilityV4["what_add_to_analysis"];
|
|
title: string;
|
|
}[] = useMemo(
|
|
() => {
|
|
if (isSingle) {
|
|
return [
|
|
{
|
|
id: "potential_partner",
|
|
title: translate("/what-add-to-analysis.single.potential_partner"),
|
|
},
|
|
{
|
|
id: "family_love_model",
|
|
title: translate("/what-add-to-analysis.single.family_love_model"),
|
|
},
|
|
{
|
|
id: "strong_connection_date",
|
|
title: translate("/what-add-to-analysis.single.strong_connection_date"),
|
|
},
|
|
{
|
|
id: "dangerous_partner_type",
|
|
title: translate("/what-add-to-analysis.single.dangerous_partner_type"),
|
|
},
|
|
{
|
|
id: "relationship_karma",
|
|
title: translate("/what-add-to-analysis.single.relationship_karma"),
|
|
},
|
|
{
|
|
id: "when_not_start_relationship",
|
|
title: translate("/what-add-to-analysis.single.when_not_start_relationship"),
|
|
},
|
|
{
|
|
id: "scenario_next_love",
|
|
title: translate("/what-add-to-analysis.single.scenario_next_love"),
|
|
},
|
|
{
|
|
id: "what_radiate_in_relationship",
|
|
title: translate("/what-add-to-analysis.single.what_radiate_in_relationship"),
|
|
},
|
|
{
|
|
id: "how_partners_see_you",
|
|
title: translate("/what-add-to-analysis.single.how_partners_see_you"),
|
|
},
|
|
{
|
|
id: "key_compatibility_areas",
|
|
title: translate("/what-add-to-analysis.single.key_compatibility_areas"),
|
|
},
|
|
]
|
|
}
|
|
return [
|
|
// {
|
|
// id: "5_compatibility_zones",
|
|
// title: translate("/what-add-to-analysis.5_compatibility_zones"),
|
|
// },
|
|
|
|
{
|
|
id: "former_partner",
|
|
title: translate("/what-add-to-analysis.former_partner"),
|
|
},
|
|
{
|
|
id: "potential_partner",
|
|
title: translate("/what-add-to-analysis.potential_partner"),
|
|
},
|
|
{
|
|
id: "analyzing_mistakes_relationships",
|
|
title: translate("/what-add-to-analysis.analyzing_mistakes_relationships"),
|
|
},
|
|
{
|
|
id: "astrological_triggers",
|
|
title: translate("/what-add-to-analysis.astrological_triggers"),
|
|
},
|
|
{
|
|
id: "relationship_timing",
|
|
title: translate("/what-add-to-analysis.relationship_timing"),
|
|
},
|
|
{
|
|
id: "practices_strengthen_communication",
|
|
title: translate("/what-add-to-analysis.practices_strengthen_communication"),
|
|
},
|
|
{
|
|
id: "scenarios_times_crisis",
|
|
title: translate("/what-add-to-analysis.scenarios_times_crisis"),
|
|
},
|
|
{
|
|
id: "astrological_view_conflicts",
|
|
title: translate("/what-add-to-analysis.astrological_view_conflicts"),
|
|
},
|
|
{
|
|
id: "energy_compatibility",
|
|
title: translate("/what-add-to-analysis.energy_compatibility"),
|
|
},
|
|
{
|
|
id: "key_compatibility_areas",
|
|
title: translate("/what-add-to-analysis.key_compatibility_areas"),
|
|
},
|
|
{
|
|
id: "talking_about_future",
|
|
title: translate("/what-add-to-analysis.talking_about_future"),
|
|
},
|
|
]
|
|
},
|
|
[translate, isSingle]
|
|
);
|
|
|
|
const handleClick = async (id: IAnswersSessionCompatibilityV4["what_add_to_analysis"]) => {
|
|
if (!whatAddToAnalysis) {
|
|
dispatch(actions.compatibilityV4Answers.update({
|
|
whatAddToAnalysis: id,
|
|
}));
|
|
return;
|
|
}
|
|
|
|
const currentAnswers = whatAddToAnalysis.split(",").filter(item => item);
|
|
if (currentAnswers.includes(id)) {
|
|
currentAnswers.splice(currentAnswers.indexOf(id), 1);
|
|
} else {
|
|
currentAnswers.push(id);
|
|
}
|
|
const newAnswers = currentAnswers.join(",");
|
|
dispatch(actions.compatibilityV4Answers.update({
|
|
whatAddToAnalysis: newAnswers,
|
|
}));
|
|
};
|
|
|
|
const handleNext = () => {
|
|
if (!whatAddToAnalysis?.length) {
|
|
return;
|
|
}
|
|
|
|
updateSession({
|
|
answers: {
|
|
what_add_to_analysis: whatAddToAnalysis,
|
|
},
|
|
}, ESourceAuthorization["aura.compatibility.v4"]);
|
|
|
|
if (whatAddToAnalysis.includes("potential_partner")) {
|
|
return navigate(routes.client.compatibilityV4PotentialPartnerName());
|
|
}
|
|
if (whatAddToAnalysis.includes("former_partner")) {
|
|
return navigate(routes.client.compatibilityV4FormerPartnerName());
|
|
}
|
|
navigate(routes.client.compatibilityV4Loading());
|
|
};
|
|
|
|
return (
|
|
<div className={styles.container}>
|
|
<Title variant="h2" className={styles.title}>
|
|
{translate("/what-add-to-analysis.title")}
|
|
</Title>
|
|
{answers.map((answers, index) => (
|
|
<Answer
|
|
key={index}
|
|
selectedClassName={styles.selected}
|
|
answerType="checkbox"
|
|
answer={answers}
|
|
isSelected={whatAddToAnalysis.includes(answers.id)}
|
|
onClick={() => handleClick(answers.id)}
|
|
/>
|
|
))}
|
|
{!!whatAddToAnalysis?.length &&
|
|
|
|
<div className={styles.buttonContainer}>
|
|
<BlurComponent isActiveBlur={true}>
|
|
<Button
|
|
className={styles.button}
|
|
onClick={handleNext}
|
|
disabled={!whatAddToAnalysis?.length}
|
|
>
|
|
{translate("next")}
|
|
</Button>
|
|
</BlurComponent>
|
|
</div>
|
|
}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export default WhatAddToAnalysis |