From c5c0c0652ecaafaeb0c623cbb94f5120aaa662bf Mon Sep 17 00:00:00 2001 From: C4rnivore Date: Tue, 16 Dec 2025 11:30:03 +0500 Subject: [PATCH] upd --- .../Desktop/ResultsAchievements.tsx | 2 +- .../Desktop/ResultsEventsReels.tsx | 6 +- .../Results2025/Desktop/ResultsGeneral.tsx | 2 +- .../MobileAlt/MobileAchievements.tsx | 272 ------------------ .../Results2025/MobileAlt/MobileGarland.tsx | 89 ------ .../Results2025/MobileAlt/MobileGeneral.tsx | 168 ----------- .../Results2025/MobileAlt/MobileProjects.tsx | 188 ------------ .../MobileAlt/components/SlideWrapper.tsx | 24 ++ .../{ => components}/SnapWrapper.tsx | 2 +- .../MobileAlt/slides/achievements/Details.tsx | 89 ++++++ .../slides/achievements/GraffEstateView.tsx | 67 +++++ .../MobileAlt/slides/achievements/Legenda.tsx | 36 +++ .../MobileAlt/slides/achievements/Modules.tsx | 46 +++ .../MobileAlt/slides/achievements/Team.tsx | 37 +++ .../MobileCongratulations.tsx | 5 +- .../MobileAlt/slides/garland/Garland.tsx | 89 ++++++ .../MobileAlt/slides/general/Appartaments.tsx | 77 +++++ .../MobileAlt/slides/general/Reservations.tsx | 33 +++ .../MobileAlt/slides/general/Square.tsx | 65 +++++ .../slides/projects/LatestProjects.tsx | 17 ++ .../MobileAlt/slides/projects/Projects.tsx | 143 +++++++++ .../{ => slides/reels}/MobileReels.tsx | 10 +- .../pages/Results2025/Results2025.tsx | 37 ++- .../Results2025/Tablet&Mobile/CardsSwiper.tsx | 16 +- 24 files changed, 762 insertions(+), 758 deletions(-) delete mode 100644 src/components/pages/Results2025/MobileAlt/MobileAchievements.tsx delete mode 100644 src/components/pages/Results2025/MobileAlt/MobileGarland.tsx delete mode 100644 src/components/pages/Results2025/MobileAlt/MobileGeneral.tsx delete mode 100644 src/components/pages/Results2025/MobileAlt/MobileProjects.tsx create mode 100644 src/components/pages/Results2025/MobileAlt/components/SlideWrapper.tsx rename src/components/pages/Results2025/MobileAlt/{ => components}/SnapWrapper.tsx (93%) create mode 100644 src/components/pages/Results2025/MobileAlt/slides/achievements/Details.tsx create mode 100644 src/components/pages/Results2025/MobileAlt/slides/achievements/GraffEstateView.tsx create mode 100644 src/components/pages/Results2025/MobileAlt/slides/achievements/Legenda.tsx create mode 100644 src/components/pages/Results2025/MobileAlt/slides/achievements/Modules.tsx create mode 100644 src/components/pages/Results2025/MobileAlt/slides/achievements/Team.tsx rename src/components/pages/Results2025/MobileAlt/{ => slides/congratulations}/MobileCongratulations.tsx (91%) create mode 100644 src/components/pages/Results2025/MobileAlt/slides/garland/Garland.tsx create mode 100644 src/components/pages/Results2025/MobileAlt/slides/general/Appartaments.tsx create mode 100644 src/components/pages/Results2025/MobileAlt/slides/general/Reservations.tsx create mode 100644 src/components/pages/Results2025/MobileAlt/slides/general/Square.tsx create mode 100644 src/components/pages/Results2025/MobileAlt/slides/projects/LatestProjects.tsx create mode 100644 src/components/pages/Results2025/MobileAlt/slides/projects/Projects.tsx rename src/components/pages/Results2025/MobileAlt/{ => slides/reels}/MobileReels.tsx (95%) diff --git a/src/components/pages/Results2025/Desktop/ResultsAchievements.tsx b/src/components/pages/Results2025/Desktop/ResultsAchievements.tsx index 33734605..7e299e84 100644 --- a/src/components/pages/Results2025/Desktop/ResultsAchievements.tsx +++ b/src/components/pages/Results2025/Desktop/ResultsAchievements.tsx @@ -184,7 +184,7 @@ export default function ResultsAchievements() {
- Покупка парковочных мест и
локеров + Покупка парковочных мест и локеров
}) { ), }} > - Международный
строительный форум 100+
TechnoBuild  + Международный
строительный форум 100+ TechnoBuild  }) { className="absolute bottom-[6.139vw] w-[20.833vw] py-[1.111vw] pl-[1.667vw] pr-[1.111vw] bg-[#FFFFFF1A] backdrop-blur-[24px] flex justify-between gap-[1.111vw] overflow-clip items-center rounded-[1.111vw] border-[2px] border-[#FFFFFF1A]" >

- Взяли первую строчку рейтинга RACA за экспертизу в категории - Production + Взяли первую строчку рейтинга RACA за экспертизу + в категории Production

, <> Общая сумма броней превысила
- 30 000 000 000 рублей + 30 млрд рублей , ]} shiftBreakpoints={[0, 0.3, 0.5, 0.7, 0.9]} diff --git a/src/components/pages/Results2025/MobileAlt/MobileAchievements.tsx b/src/components/pages/Results2025/MobileAlt/MobileAchievements.tsx deleted file mode 100644 index bf943f82..00000000 --- a/src/components/pages/Results2025/MobileAlt/MobileAchievements.tsx +++ /dev/null @@ -1,272 +0,0 @@ -/* eslint-disable @next/next/no-img-element */ -import { motion } from "framer-motion"; -import MobileReels from "./MobileReels"; -import CardsSwiper from "../Tablet&Mobile/CardsSwiper"; -import { useModalStore } from "@/stores/useModalStore"; -import QuestionFormModal from "@/components/modals/QuestionFormModal"; -import ResultsTeamWheel from "../ResultsTeamWheel"; - -export default function AchievementsMobile() { - return <>; -} - -export function Legenda() { - return ( -
-

- Но победы
были не только наши! -

- -
-
-

- Звание лучшего офиса продаж
второй год подряд забрал наш партнер -
ГК Легенда -

-

- для которой мы укомплектовали офис продаж ЖК{" "} -
Северный Порт{" "} -
- интерактивными инструментами продаж -

-
- ); -} - -export function GraffEstateView() { - function GraffLabel({ - title, - className, - }: { - title: string; - className?: string; - }) { - return ( -
- {title} -
- ); - } - - return ( -
-

- Запустили новый продукт -

-

- GRAFF.estate View -

- -

- Показываем виды из любой квартиры еще не построенного{" "} -
жилого комплекса{" "} -

- -
- - - - - - -
- - -
-
- ); -} - -export function Modules() { - const cards = [ - { - id: 1, - image: "/img/pages/results/reels/modules/Mobile/1.png", - }, - { - id: 2, - image: "/img/pages/results/reels/modules/Mobile/2.png", - }, - { - id: 3, - image: "/img/pages/results/reels/modules/Mobile/3.png", - }, - { - id: 4, - image: "/img/pages/results/reels/modules/Mobile/4.png", - }, - { - id: 5, - image: "/img/pages/results/reels/modules/Mobile/5.png", - }, - { - id: 6, - image: "/img/pages/results/reels/modules/Mobile/6.png", - }, - ]; - - return ( -
-

- Добавили
6 новых модулей -
в приложение -

- -
- ); -} - -export function Details() { - return ( -
-

- Кредо этого года: -

-

- Внимание к деталям, -
стремление{" "} -
к идеалу -

- -
-
-

- Облака по расписанию -

-

- Интегрировали API, передающее направление и скорость ветра в - реальном времени именно в той локации, где находится проект -

- - - -
- -
-

- Добавили в
приложения птиц -

-

- Они не только летают в небе, -
но и садятся на землю или -
деревья вокруг ЖК -

-
- -
-

- Новая модель
интерактивного стола -

-

Более тонкая и изящная

- -
-
- - -
-
- ); -} - -export function Team() { - const { setModal } = useModalStore(); - - return ( -
-

- Наш штат расширился на 30% -

-

- Теперь в команде
более 70 человек -

-
- - - -
-
- ); -} diff --git a/src/components/pages/Results2025/MobileAlt/MobileGarland.tsx b/src/components/pages/Results2025/MobileAlt/MobileGarland.tsx deleted file mode 100644 index c93c569b..00000000 --- a/src/components/pages/Results2025/MobileAlt/MobileGarland.tsx +++ /dev/null @@ -1,89 +0,0 @@ -/* eslint-disable @next/next/no-img-element */ -"use client"; -import QuestionFormModal from "@/components/modals/QuestionFormModal"; -import { useMediaQueries } from "@/hooks/useMediaQueries"; -import { useModalStore } from "@/stores/useModalStore"; -import { motion } from "framer-motion"; -import React, { useEffect, useRef, useState } from "react"; - -export default function ResultsGarlandMobile() { - const containerRef = useRef(null); - const { setModal } = useModalStore(); - const { isMd } = useMediaQueries(); - const [videoExpanded, setVideoExpanded] = useState(false); - - useEffect(() => { - const timeout = setTimeout(() => { - setVideoExpanded(true); - }, 4000); - return () => clearTimeout(timeout); - }, []); - - return ( -
- garland - - - Подводим
итоги 2025 года
в - GRAFF.estate -
- - - { - setModal( - - ); - }} - className="btnl - bg-[radial-gradient(circle_at_right_top,#FF79D2_0%,#C932E8_20%,#7A55FF_60%)] - md:px-[2.214vw] px-[4.444vw] absolute left-1/2 -translate-x-1/2 bottom-[4.444vw] md:py-[2.214vw] py-[4.722vw] z-[11] md:rounded-[2.083vw] rounded-[4.444vw] w-max mx-auto font-medium mt-auto " - > - Стать первыми в 2026 - -
- ); -} diff --git a/src/components/pages/Results2025/MobileAlt/MobileGeneral.tsx b/src/components/pages/Results2025/MobileAlt/MobileGeneral.tsx deleted file mode 100644 index d090ad6f..00000000 --- a/src/components/pages/Results2025/MobileAlt/MobileGeneral.tsx +++ /dev/null @@ -1,168 +0,0 @@ -/* eslint-disable @next/next/no-img-element */ -import PlayIcon from "@/components/icons/PlayIcon"; -import React from "react"; - -export function Square() { - return ( -
-
-
- - Это как две Тулы - -

- Родина нашего проекта
- Премьер Парк -

- -
-
- -
-
- - Или Сургут - -

- Город лучших
ПМ-ов и дизайнеров -

-
- - -
-
-
- -
-
- В 2025 году мы -
-

- Мы замоделили 288км²
окружения{" "} -
-
для наших клиентов -

-
- - {/* Задник */} - {/*
-
-
*/} -
- ); -} - -export function Appartaments() { - function FloorIndicator({ - floor, - appartamentsCount, - className, - }: { - floor: number; - appartamentsCount: number; - className?: string; - }) { - return ( -
-
- -
-
-
- {floor} -
- - {appartamentsCount} квартир - -
-
- ); - } - - return ( -
-

- В наших приложениях
- появилось 20 000
новых квартир -

- -
- -

- 4500 часов люди провели
выбирая одну из них для себя в качестве{" "} -
нового дома -

- -
- - - - - -
-
-
- ); -} - -export function Reservations() { - return ( -
-

- С помощью GRAFF.estate было сделано -

-

- 1220 заявок на бронь -

- -

- С помощью GRAFF.estate было
сделано 1220 заявок на бронь -

- - - -

- Общая сумма броней
превысила -

-

- 30 000 000 000₽ -

-
- ); -} diff --git a/src/components/pages/Results2025/MobileAlt/MobileProjects.tsx b/src/components/pages/Results2025/MobileAlt/MobileProjects.tsx deleted file mode 100644 index dd42272e..00000000 --- a/src/components/pages/Results2025/MobileAlt/MobileProjects.tsx +++ /dev/null @@ -1,188 +0,0 @@ -/* eslint-disable @next/next/no-img-element */ -import React, { useEffect, useRef, useState } from "react"; -import ShiftText from "../ShiftText"; -import { motion, useMotionValue } from "framer-motion"; -import { useMediaQueries } from "@/hooks/useMediaQueries"; - -export function Projects() { - const [expanded, setExpanded] = useState(false); - const containerRef = useRef(null); - const { isMd } = useMediaQueries(); - const transition = { - duration: 1, - ease: "easeInOut", - }; - const progress = useMotionValue(0); - - function ResultsProjectsItem({ src }: { src: string }) { - return ( - - ); - } - - useEffect(() => { - if (!containerRef.current) return; - - const observer = new IntersectionObserver( - (entries) => { - if (entries[0].isIntersecting) { - setTimeout(() => { - setExpanded(true); - progress.set(1); - }, 2000); - } - }, - { - threshold: 0.2, - } - ); - observer.observe(containerRef.current); - return () => observer.disconnect(); - }, []); - - return ( -
- - Закончили
- разработку и сдали
- 24 проекта - , - <> - Теперь у нас более
- 70 проектов - , - ]} - shiftBreakpoints={[0, 1]} - scrollProgress={progress} - /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ); -} - -export function LatestProjects() { - return ( -
-

- Последними
из которых стали -

-
-
-
-
-
- ); -} diff --git a/src/components/pages/Results2025/MobileAlt/components/SlideWrapper.tsx b/src/components/pages/Results2025/MobileAlt/components/SlideWrapper.tsx new file mode 100644 index 00000000..5505cbdb --- /dev/null +++ b/src/components/pages/Results2025/MobileAlt/components/SlideWrapper.tsx @@ -0,0 +1,24 @@ +import React from "react"; +import clsx from "clsx"; + +interface WrapperProps extends React.HTMLAttributes { + children: React.ReactNode; + className?: string; +} + +export default function SlideWrapper({ + children, + className, + ...handlers +}: WrapperProps) { + return ( +
+ {children} +
+ ); +} diff --git a/src/components/pages/Results2025/MobileAlt/SnapWrapper.tsx b/src/components/pages/Results2025/MobileAlt/components/SnapWrapper.tsx similarity index 93% rename from src/components/pages/Results2025/MobileAlt/SnapWrapper.tsx rename to src/components/pages/Results2025/MobileAlt/components/SnapWrapper.tsx index f17062bc..8f4a5a0b 100644 --- a/src/components/pages/Results2025/MobileAlt/SnapWrapper.tsx +++ b/src/components/pages/Results2025/MobileAlt/components/SnapWrapper.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useRef } from "react"; +import React, { useRef } from "react"; interface SnapWrapperProps { children: React.ReactNode; diff --git a/src/components/pages/Results2025/MobileAlt/slides/achievements/Details.tsx b/src/components/pages/Results2025/MobileAlt/slides/achievements/Details.tsx new file mode 100644 index 00000000..5cf21630 --- /dev/null +++ b/src/components/pages/Results2025/MobileAlt/slides/achievements/Details.tsx @@ -0,0 +1,89 @@ +/* eslint-disable @next/next/no-img-element */ +import { motion } from "framer-motion"; +import SlideWrapper from "../../components/SlideWrapper"; + +export default function Details() { + return ( + +

+ Кредо этого года: +

+

+ Внимание к деталям, +
стремление{" "} +
к идеалу +

+ +
+
+

+ Облака по расписанию +

+

+ Интегрировали API, передающее направление и скорость ветра в + реальном времени именно в той локации, где находится проект +

+ + + +
+ +
+

+ Добавили в
приложения птиц +

+

+ Они не только летают в небе, +
но и садятся на землю или +
деревья вокруг ЖК +

+
+ +
+

+ Новая модель
интерактивного стола +

+

Более тонкая и изящная

+ +
+
+ + +
+ + ); +} diff --git a/src/components/pages/Results2025/MobileAlt/slides/achievements/GraffEstateView.tsx b/src/components/pages/Results2025/MobileAlt/slides/achievements/GraffEstateView.tsx new file mode 100644 index 00000000..9b22586c --- /dev/null +++ b/src/components/pages/Results2025/MobileAlt/slides/achievements/GraffEstateView.tsx @@ -0,0 +1,67 @@ +/* eslint-disable @next/next/no-img-element */ +import { motion } from "framer-motion"; +import SlideWrapper from "../../components/SlideWrapper"; + +export default function GraffEstateView() { + function GraffLabel({ + title, + className, + }: { + title: string; + className?: string; + }) { + return ( +
+ {title} +
+ ); + } + + return ( + +

+ Запустили новый продукт +

+

+ GRAFF.estate View +

+ +

+ Показываем виды из любой квартиры еще не построенного{" "} +
жилого комплекса{" "} +

+ +
+ + + + + + +
+ + +
+ + ); +} diff --git a/src/components/pages/Results2025/MobileAlt/slides/achievements/Legenda.tsx b/src/components/pages/Results2025/MobileAlt/slides/achievements/Legenda.tsx new file mode 100644 index 00000000..7576e83f --- /dev/null +++ b/src/components/pages/Results2025/MobileAlt/slides/achievements/Legenda.tsx @@ -0,0 +1,36 @@ +/* eslint-disable @next/next/no-img-element */ +import SlideWrapper from "../../components/SlideWrapper"; + +export default function Legenda() { + return ( + +

+ Но победы
были не только наши! +

+ +
+
+

+ Звание лучшего офиса продаж
второй год подряд забрал наш партнер +

+

+ ГК Легенда для которой мы укомплектовали офис продаж ЖК Северный Порт{" "} +
+ интерактивными инструментами продаж +

+
+ ); +} diff --git a/src/components/pages/Results2025/MobileAlt/slides/achievements/Modules.tsx b/src/components/pages/Results2025/MobileAlt/slides/achievements/Modules.tsx new file mode 100644 index 00000000..4a6b8514 --- /dev/null +++ b/src/components/pages/Results2025/MobileAlt/slides/achievements/Modules.tsx @@ -0,0 +1,46 @@ +/* eslint-disable @next/next/no-img-element */ +import CardsSwiper from "../../../Tablet&Mobile/CardsSwiper"; +import SlideWrapper from "../../components/SlideWrapper"; + +export default function Modules() { + const cards = [ + { + id: 1, + image: "/img/pages/results/reels/modules/Mobile/1.png", + }, + { + id: 2, + image: "/img/pages/results/reels/modules/Mobile/2.png", + }, + { + id: 3, + image: "/img/pages/results/reels/modules/Mobile/3.png", + }, + { + id: 4, + image: "/img/pages/results/reels/modules/Mobile/4.png", + }, + { + id: 5, + image: "/img/pages/results/reels/modules/Mobile/5.png", + }, + { + id: 6, + image: "/img/pages/results/reels/modules/Mobile/6.png", + }, + ]; + + return ( + +

+ Добавили
6 новых модулей +
в приложение +

+ +
+ ); +} diff --git a/src/components/pages/Results2025/MobileAlt/slides/achievements/Team.tsx b/src/components/pages/Results2025/MobileAlt/slides/achievements/Team.tsx new file mode 100644 index 00000000..df758ab8 --- /dev/null +++ b/src/components/pages/Results2025/MobileAlt/slides/achievements/Team.tsx @@ -0,0 +1,37 @@ +/* eslint-disable @next/next/no-img-element */ +import { useModalStore } from "@/stores/useModalStore"; +import QuestionFormModal from "@/components/modals/QuestionFormModal"; +import ResultsTeamWheel from "../../../ResultsTeamWheel"; +import SlideWrapper from "../../components/SlideWrapper"; + +export default function Team() { + const { setModal } = useModalStore(); + + return ( + +

+ Наш штат расширился на 30% +

+

+ Теперь в команде
более 70 человек +

+
+ + + +
+
+ ); +} diff --git a/src/components/pages/Results2025/MobileAlt/MobileCongratulations.tsx b/src/components/pages/Results2025/MobileAlt/slides/congratulations/MobileCongratulations.tsx similarity index 91% rename from src/components/pages/Results2025/MobileAlt/MobileCongratulations.tsx rename to src/components/pages/Results2025/MobileAlt/slides/congratulations/MobileCongratulations.tsx index 1a6c30eb..3f5bc5d5 100644 --- a/src/components/pages/Results2025/MobileAlt/MobileCongratulations.tsx +++ b/src/components/pages/Results2025/MobileAlt/slides/congratulations/MobileCongratulations.tsx @@ -2,10 +2,11 @@ import MuteIcon from "@/components/icons/MuteIcon"; import React, { useEffect, useRef, useState } from "react"; import { CircularProgressbar } from "react-circular-progressbar"; +import SlideWrapper from "../../components/SlideWrapper"; export default function MobileCongratulations() { return ( -
+
-
+
); } diff --git a/src/components/pages/Results2025/MobileAlt/slides/garland/Garland.tsx b/src/components/pages/Results2025/MobileAlt/slides/garland/Garland.tsx new file mode 100644 index 00000000..7db8da27 --- /dev/null +++ b/src/components/pages/Results2025/MobileAlt/slides/garland/Garland.tsx @@ -0,0 +1,89 @@ +/* eslint-disable @next/next/no-img-element */ +"use client"; +import QuestionFormModal from "@/components/modals/QuestionFormModal"; +import { useMediaQueries } from "@/hooks/useMediaQueries"; +import { useModalStore } from "@/stores/useModalStore"; +import { motion } from "framer-motion"; +import React, { useEffect, useRef, useState } from "react"; +import SlideWrapper from "../../components/SlideWrapper"; + +export default function ResultsGarlandMobile() { + const containerRef = useRef(null); + const { setModal } = useModalStore(); + const { isMd } = useMediaQueries(); + const [videoExpanded, setVideoExpanded] = useState(false); + + // useEffect(() => { + // const timeout = setTimeout(() => { + // setVideoExpanded(true); + // }, 4000); + // return () => clearTimeout(timeout); + // }, []); + + return ( +
+ + garland + + + Подводим
итоги 2025 года
в + GRAFF.estate +
+ + + { + setModal( + + ); + }} + className="btnl + bg-[radial-gradient(circle_at_right_top,#FF79D2_0%,#C932E8_20%,#7A55FF_60%)] + md:px-[2.214vw] px-[4.444vw] absolute left-1/2 -translate-x-1/2 bottom-[4.444vw] md:py-[2.214vw] py-[4.722vw] z-[11] md:rounded-[2.083vw] rounded-[4.444vw] w-max mx-auto font-medium mt-auto " + > + Стать первыми в 2026 + +
+
+ ); +} diff --git a/src/components/pages/Results2025/MobileAlt/slides/general/Appartaments.tsx b/src/components/pages/Results2025/MobileAlt/slides/general/Appartaments.tsx new file mode 100644 index 00000000..0609b6f1 --- /dev/null +++ b/src/components/pages/Results2025/MobileAlt/slides/general/Appartaments.tsx @@ -0,0 +1,77 @@ +/* eslint-disable @next/next/no-img-element */ +import PlayIcon from "@/components/icons/PlayIcon"; +import React from "react"; +import SlideWrapper from "../../components/SlideWrapper"; + +export default function Appartaments() { + function FloorIndicator({ + floor, + appartamentsCount, + className, + }: { + floor: number; + appartamentsCount: number; + className?: string; + }) { + return ( +
+
+ +
+
+
+ {floor} +
+ + {appartamentsCount} квартир + +
+
+ ); + } + + return ( + +

+ В наших приложениях
+ появилось 20 000
новых квартир +

+ +
+ +

+ 4500 часов люди провели
выбирая одну из них для себя в качестве{" "} +
нового дома +

+ +
+ + + + + +
+
+
+ ); +} diff --git a/src/components/pages/Results2025/MobileAlt/slides/general/Reservations.tsx b/src/components/pages/Results2025/MobileAlt/slides/general/Reservations.tsx new file mode 100644 index 00000000..ceda8d01 --- /dev/null +++ b/src/components/pages/Results2025/MobileAlt/slides/general/Reservations.tsx @@ -0,0 +1,33 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import SlideWrapper from "../../components/SlideWrapper"; + +export default function Reservations() { + return ( + +

+ С помощью GRAFF.estate было сделано +

+

+ 1220 заявок на бронь +

+ +

+ С помощью GRAFF.estate было
сделано 1220 заявок на бронь +

+ + + +

+ Общая сумма броней
превысила +

+

+ 30 млрд ₽ +

+
+ ); +} diff --git a/src/components/pages/Results2025/MobileAlt/slides/general/Square.tsx b/src/components/pages/Results2025/MobileAlt/slides/general/Square.tsx new file mode 100644 index 00000000..b6f6baaa --- /dev/null +++ b/src/components/pages/Results2025/MobileAlt/slides/general/Square.tsx @@ -0,0 +1,65 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import SlideWrapper from "../../components/SlideWrapper"; + +export default function Square() { + return ( + +
+
+ + Это как две Тулы + +

+ Родина нашего проекта
+ Премьер Парк +

+ +
+
+ +
+
+ + Или Сургут + +

+ Город лучших
ПМ-ов и дизайнеров +

+
+ + +
+
+
+ +
+
+ В 2025 году мы +
+

+ Мы замоделили 288км²
окружения{" "} +
+
для наших клиентов +

+
+ + {/* Задник */} + {/*
+
+
*/} +
+ ); +} diff --git a/src/components/pages/Results2025/MobileAlt/slides/projects/LatestProjects.tsx b/src/components/pages/Results2025/MobileAlt/slides/projects/LatestProjects.tsx new file mode 100644 index 00000000..a72d5e72 --- /dev/null +++ b/src/components/pages/Results2025/MobileAlt/slides/projects/LatestProjects.tsx @@ -0,0 +1,17 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import SlideWrapper from "../../components/SlideWrapper"; + +export default function LatestProjects() { + return ( + +

+ Последними
из которых стали +

+
+
+
+
+ + ); +} diff --git a/src/components/pages/Results2025/MobileAlt/slides/projects/Projects.tsx b/src/components/pages/Results2025/MobileAlt/slides/projects/Projects.tsx new file mode 100644 index 00000000..ebbf93a7 --- /dev/null +++ b/src/components/pages/Results2025/MobileAlt/slides/projects/Projects.tsx @@ -0,0 +1,143 @@ +/* eslint-disable @next/next/no-img-element */ +import React, { useEffect, useRef, useState } from "react"; +import ShiftText from "../../../ShiftText"; +import { motion, useMotionValue } from "framer-motion"; +import { useMediaQueries } from "@/hooks/useMediaQueries"; +import SlideWrapper from "../../components/SlideWrapper"; + +export default function Projects() { + const [expanded, setExpanded] = useState(false); + const containerRef = useRef(null); + const { isMd } = useMediaQueries(); + const transition = { + duration: 1, + ease: "easeInOut", + }; + const progress = useMotionValue(0); + + // useEffect(() => { + // if (!containerRef.current) return; + + // const observer = new IntersectionObserver( + // (entries) => { + // if (entries[0].isIntersecting) { + // setTimeout(() => { + // setExpanded(true); + // progress.set(1); + // }, 2000); + // } + // }, + // { + // threshold: 0.2, + // } + // ); + // observer.observe(containerRef.current); + // return () => observer.disconnect(); + // }, []); + + function ProjectsRowWrapper({ + children, + offsetDirection, + }: { + children: React.ReactNode; + offsetDirection: -1 | 1; + }) { + return ( + + {children} + + ); + } + + function ResultsProjectsItem({ src }: { src: string }) { + return ( + + ); + } + + return ( +
+ + + Закончили
+ разработку и сдали
+ 24 проекта + , + <> + Теперь у нас более
+ 70 проектов + , + ]} + shiftBreakpoints={[0, 1]} + scrollProgress={progress} + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ ); +} diff --git a/src/components/pages/Results2025/MobileAlt/MobileReels.tsx b/src/components/pages/Results2025/MobileAlt/slides/reels/MobileReels.tsx similarity index 95% rename from src/components/pages/Results2025/MobileAlt/MobileReels.tsx rename to src/components/pages/Results2025/MobileAlt/slides/reels/MobileReels.tsx index a45066a3..5c0d4700 100644 --- a/src/components/pages/Results2025/MobileAlt/MobileReels.tsx +++ b/src/components/pages/Results2025/MobileAlt/slides/reels/MobileReels.tsx @@ -1,7 +1,7 @@ /* eslint-disable @next/next/no-img-element */ import React, { useState, useRef, useEffect } from "react"; -import { useSwipeable } from "react-swipeable"; import { motion, AnimatePresence } from "framer-motion"; +import SlideWrapper from "../../components/SlideWrapper"; export default function MobileReels() { const videos = [ @@ -101,9 +101,9 @@ export default function MobileReels() { }; return ( -
{/* Полоски прогресса */}
@@ -178,7 +178,7 @@ export default function MobileReels() { alt="" className="absolute w-full h-full z-[10] pointer-events-none" /> -
+ ); } @@ -187,7 +187,7 @@ function VideoInfo({ index }: { index: number }) { <>

- Взяли первую строчку рейтинга RACA за экспертизу в категории + Взяли первую строчку рейтинга RACA за экспертизу в категории Production

- - + {/* Projects */} - {/* General */} diff --git a/src/components/pages/Results2025/Tablet&Mobile/CardsSwiper.tsx b/src/components/pages/Results2025/Tablet&Mobile/CardsSwiper.tsx index 50ad0e09..d1c86d97 100644 --- a/src/components/pages/Results2025/Tablet&Mobile/CardsSwiper.tsx +++ b/src/components/pages/Results2025/Tablet&Mobile/CardsSwiper.tsx @@ -42,7 +42,7 @@ export default function CardsSwiper({ return ( <>
{cards.map((card, index) => ( @@ -57,7 +57,7 @@ export default function CardsSwiper({ ))}
{controls && ( -
+