diff --git a/.env.example b/.env similarity index 100% rename from .env.example rename to .env diff --git a/public/final.mp4 b/public/final.mp4 new file mode 100644 index 0000000..74a04c0 Binary files /dev/null and b/public/final.mp4 differ diff --git a/public/speakers/pouria.jpg b/public/speakers/pouria.jpg new file mode 100644 index 0000000..896f81b Binary files /dev/null and b/public/speakers/pouria.jpg differ diff --git a/src/app/components/CountDown.tsx b/src/app/components/CountDown.tsx index 976761b..bd4cddc 100644 --- a/src/app/components/CountDown.tsx +++ b/src/app/components/CountDown.tsx @@ -3,6 +3,7 @@ import WaveMobile from "@/assets/images/home/count-down-wave-mobile.svg"; import Wave from "@/assets/images/home/count-down-wave.svg"; import { conferenceDateTime } from "@/data/timing"; +import { calculateTimeRemaining } from "@/utils/countDown"; import Image from "next/image"; import React, { Fragment, useState } from "react"; import { HiOutlineClock } from "react-icons/hi"; @@ -35,28 +36,13 @@ export default function CountDown() { } const CountDownTimer = () => { - const calculateTimeRemaining = () => { - const now = new Date().getTime(); - const target = conferenceDateTime.getTime(); - const timeRemaining = target - now; - - const days = Math.floor(timeRemaining / (1000 * 60 * 60 * 24)); - const hours = Math.floor( - (timeRemaining % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60), - ); - const minutes = Math.floor( - (timeRemaining % (1000 * 60 * 60)) / (1000 * 60), - ); - const seconds = Math.floor((timeRemaining % (1000 * 60)) / 1000); - - return { days, hours, minutes, seconds }; - }; - - const [timeRemaining, setTimeRemaining] = useState(calculateTimeRemaining()); + const [timeRemaining, setTimeRemaining] = useState( + calculateTimeRemaining(conferenceDateTime), + ); React.useEffect(() => { const interval = setInterval(() => { - setTimeRemaining(calculateTimeRemaining()); + setTimeRemaining(calculateTimeRemaining(conferenceDateTime)); }, 1000); return () => clearInterval(interval); diff --git a/src/app/components/Participants/Participants.tsx b/src/app/components/Participants/Participants.tsx index 92e6be8..dffd989 100644 --- a/src/app/components/Participants/Participants.tsx +++ b/src/app/components/Participants/Participants.tsx @@ -1,8 +1,8 @@ import { RiCouponLine } from "react-icons/ri"; -import Image from "next/image"; import waveDesktop from "@/assets/images/home/participants-wave-desktop.png"; import waveMobile from "@/assets/images/home/participants-wave-mobile.png"; +import Image from "next/image"; import getParticipantList, { Participant } from "./getParticipantList"; const Participants = async () => { @@ -35,12 +35,12 @@ const Participants = async () => {

شرکت کنندگان

-
+ {/*
{participantList.length.toLocaleString("fa-IR")} {" "} شرکت کننده تا این لحظه -
+
*/}
اطلاعات زنده diff --git a/src/app/components/Timeline/data.ts b/src/app/components/Timeline/data.ts index b29fa1f..5949c1a 100644 --- a/src/app/components/Timeline/data.ts +++ b/src/app/components/Timeline/data.ts @@ -71,13 +71,13 @@ export const confDayTimeline: TimelineItemType[] = [ link: "https://linkedin.com/in/amir-kabiri/", }, { - profile: "/speakers/zahra-khanjani.jpeg", - speaker: "زهرا خانجانی", - title: "از کد بد به کد خوب", + profile: "/speakers/pouria.jpg", + speaker: "پوریا باباعلی", + title: "بدهی فنی", start: "۱۱:۴۰", end: "۱۲:۰۰", type: "speaker", - link: "https://linkedin.com/in/zahra-khanjani/", + link: "https://www.linkedin.com/in/pouriya-babaali/", }, { profile: "/speakers/hossein-mousavi.jpeg", diff --git a/src/assets/images/home/speakers-avatar-5.png b/src/assets/images/home/speakers-avatar-5.png index 81c283f..409c110 100644 Binary files a/src/assets/images/home/speakers-avatar-5.png and b/src/assets/images/home/speakers-avatar-5.png differ diff --git a/src/data/speakersData.ts b/src/data/speakersData.ts index 4bad52c..8856a7e 100644 --- a/src/data/speakersData.ts +++ b/src/data/speakersData.ts @@ -59,11 +59,11 @@ export const speakersData: TSpeakerCard[] = [ }, { avatar: imageAvatarFive, - fullName: "زهرا خانجانی", - position: "برنامه‌نویس فرانت‌اند", - company: "چپتر لید آیتول", + fullName: "پوریا باباعلی", + position: "مهندس نرم‌افزار", + company: "مدرس در کوئرا", socials: { - linkedin: "https://linkedin.com/in/zahra-khanjani", + linkedin: "https://www.linkedin.com/in/pouriya-babaali/", }, }, { diff --git a/src/styles/globals.css b/src/styles/globals.css index c85cde9..8f8a472 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -5,3 +5,7 @@ html { scroll-behavior: smooth; } +body { + max-width: 100vw; + overflow-x: hidden; +} diff --git a/src/utils/countDown.ts b/src/utils/countDown.ts new file mode 100644 index 0000000..937130a --- /dev/null +++ b/src/utils/countDown.ts @@ -0,0 +1,15 @@ +"use client"; + +export const calculateTimeRemaining = (conferenceDateTime: Date) => { + const now = new Date().getTime(); + const timeLeft = conferenceDateTime.getTime() - now; + + const days = Math.floor(timeLeft / (1000 * 60 * 60 * 24)); + const hours = Math.floor( + (timeLeft % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60), + ); + const minutes = Math.floor((timeLeft % (1000 * 60 * 60)) / (1000 * 60)); + const seconds = Math.floor((timeLeft % (1000 * 60)) / 1000); + + return { days, hours, minutes, seconds }; +};