"use client"; import React, { useEffect, useState } from "react"; import { VerticalTimeline, VerticalTimelineElement, } from "react-vertical-timeline-component"; import { AnimatePresence, motion } from "framer-motion"; import "react-vertical-timeline-component/style.min.css"; import { SectionWrapper } from "src/hoc"; import { textVariant } from "src/utils/motion"; import { styles } from "src/style"; import { activityFake, activityFakeFa } from "datacalender"; import ActivityCardFake from "@comp/TaskPage/ActivityCardFake/page"; import { useLocale, useTranslations } from "next-intl"; const experiences = () => { const t = useTranslations("experiences"); return [ { title: t("insertTasks.title"), points: t("insertTasks.points"), }, { title: t("createShiftPlan.title"), points: t("createShiftPlan.points"), }, { title: t("specificPerson.title"), points: t("specificPerson.points"), }, { title: t("realTime.title"), points: t("realTime.points"), }, { title: t("confirmsCompletion.title"), points: t("confirmsCompletion.points"), }, ]; }; const ExperienceCard = ({ experience }) => { console.log(experience); const [isMobile, setIsMobile] = useState(false); const locale = useLocale(); const isRTL = locale === "fa"; useEffect(() => { // Check window size after the component mounts const handleResize = () => { setIsMobile(window.innerWidth < 640); }; // Run the function initially and also when the window is resized handleResize(); window.addEventListener("resize", handleResize); // Clean up event listener on unmount return () => window.removeEventListener("resize", handleResize); }, []); return (

{experience.title}

); }; const Experience = () => { const t = useTranslations("experiences"); const locale = useLocale(); const isRTL = locale === "fa"; const [number, setNumber] = useState(4521); const [prevNumber, setPrevNumber] = useState(4521); useEffect(() => { const interval = setInterval(() => { setPrevNumber(number); setNumber((prev) => prev + 1); }, 15000); return () => clearInterval(interval); }, [number]); const numberStr = number.toString(); const prevNumberStr = prevNumber.toString(); const fadeVariants = { initial: { opacity: 0, y: 30, color: "#000000" }, // Dark background when fading in animate: { opacity: 1, y: 0, color: "#ffffff" }, // White background when fully visible exit: { opacity: 0, y: -30, color: "#000000" }, // Dark background when fading out }; return ( <> {isRTL ? (

{t("title")}

) : (

B ase logics{" "}

)}
{experiences().map((e, index) => ( ))}

{t("taskText")}{" "}

{numberStr.split("").map((digit, index) => (
{prevNumberStr[index] !== digit && ( {prevNumberStr[index]} )} {digit}
))}

{t("LiveNumberTask")}{" "}

); }; export default SectionWrapper(Experience, "our-solution");