diff --git a/public/img/home-page/1.jpg b/public/img/home-page/1.jpg deleted file mode 100644 index 06abefdf..00000000 Binary files a/public/img/home-page/1.jpg and /dev/null differ diff --git a/public/img/home-page/2.png b/public/img/home-page/2.png deleted file mode 100644 index 6f97eea1..00000000 Binary files a/public/img/home-page/2.png and /dev/null differ diff --git a/public/img/home-page/3.png b/public/img/home-page/3.png deleted file mode 100644 index 2919e5f5..00000000 Binary files a/public/img/home-page/3.png and /dev/null differ diff --git a/public/post1/avatar.jpg b/public/img/pages/blog/post1/avatar.jpg similarity index 100% rename from public/post1/avatar.jpg rename to public/img/pages/blog/post1/avatar.jpg diff --git a/public/post1/cover.jpg b/public/img/pages/blog/post1/cover.jpg similarity index 100% rename from public/post1/cover.jpg rename to public/img/pages/blog/post1/cover.jpg diff --git a/public/post1/extra_video.jpg b/public/img/pages/blog/post1/extra_video.jpg similarity index 100% rename from public/post1/extra_video.jpg rename to public/img/pages/blog/post1/extra_video.jpg diff --git a/public/post1/main.jpg b/public/img/pages/blog/post1/main.jpg similarity index 100% rename from public/post1/main.jpg rename to public/img/pages/blog/post1/main.jpg diff --git a/public/post1/slides/1.jpg b/public/img/pages/blog/post1/slides/1.jpg similarity index 100% rename from public/post1/slides/1.jpg rename to public/img/pages/blog/post1/slides/1.jpg diff --git a/public/post1/slides/2.jpg b/public/img/pages/blog/post1/slides/2.jpg similarity index 100% rename from public/post1/slides/2.jpg rename to public/img/pages/blog/post1/slides/2.jpg diff --git a/public/post1/video.jpg b/public/img/pages/blog/post1/video.jpg similarity index 100% rename from public/post1/video.jpg rename to public/img/pages/blog/post1/video.jpg diff --git a/public/post2/cover.jpg b/public/img/pages/blog/post2/cover.jpg similarity index 100% rename from public/post2/cover.jpg rename to public/img/pages/blog/post2/cover.jpg diff --git a/public/post3/cover.jpg b/public/img/pages/blog/post3/cover.jpg similarity index 100% rename from public/post3/cover.jpg rename to public/img/pages/blog/post3/cover.jpg diff --git a/public/img/home-page/availables/1.jpg b/public/img/pages/home/availables/1.jpg similarity index 100% rename from public/img/home-page/availables/1.jpg rename to public/img/pages/home/availables/1.jpg diff --git a/public/img/home-page/availables/2.jpg b/public/img/pages/home/availables/2.jpg similarity index 100% rename from public/img/home-page/availables/2.jpg rename to public/img/pages/home/availables/2.jpg diff --git a/public/img/pages/home/availables/3.jpg b/public/img/pages/home/availables/3.jpg new file mode 100644 index 00000000..ce68f045 Binary files /dev/null and b/public/img/pages/home/availables/3.jpg differ diff --git a/public/img/home-page/liferezidention.png b/public/img/pages/home/integrations/liferezidention.png similarity index 100% rename from public/img/home-page/liferezidention.png rename to public/img/pages/home/integrations/liferezidention.png diff --git a/public/img/home-page/mirapolis.png b/public/img/pages/home/integrations/mirapolis.png similarity index 100% rename from public/img/home-page/mirapolis.png rename to public/img/pages/home/integrations/mirapolis.png diff --git a/public/img/home-page/upsidetowers.png b/public/img/pages/home/integrations/upsidetowers.png similarity index 100% rename from public/img/home-page/upsidetowers.png rename to public/img/pages/home/integrations/upsidetowers.png diff --git a/public/img/home-page/projects/1.jpg b/public/img/pages/home/projects/1.jpg similarity index 100% rename from public/img/home-page/projects/1.jpg rename to public/img/pages/home/projects/1.jpg diff --git a/public/img/home-page/projects/2.jpg b/public/img/pages/home/projects/2.jpg similarity index 100% rename from public/img/home-page/projects/2.jpg rename to public/img/pages/home/projects/2.jpg diff --git a/public/img/home-page/projects/3.jpg b/public/img/pages/home/projects/3.jpg similarity index 100% rename from public/img/home-page/projects/3.jpg rename to public/img/pages/home/projects/3.jpg diff --git a/public/img/home-page/projects/4.jpg b/public/img/pages/home/projects/4.jpg similarity index 100% rename from public/img/home-page/projects/4.jpg rename to public/img/pages/home/projects/4.jpg diff --git a/public/img/home-page/projects/5.jpg b/public/img/pages/home/projects/5.jpg similarity index 100% rename from public/img/home-page/projects/5.jpg rename to public/img/pages/home/projects/5.jpg diff --git a/public/img/home-page/projects/6.jpg b/public/img/pages/home/projects/6.jpg similarity index 100% rename from public/img/home-page/projects/6.jpg rename to public/img/pages/home/projects/6.jpg diff --git a/public/img/home-page/adv.png b/public/img/pages/home/stats/adv.png similarity index 100% rename from public/img/home-page/adv.png rename to public/img/pages/home/stats/adv.png diff --git a/public/img/home-page/building.png b/public/img/pages/home/stats/building.png similarity index 100% rename from public/img/home-page/building.png rename to public/img/pages/home/stats/building.png diff --git a/public/img/home-page/highlight.svg b/public/img/pages/home/stats/highlight.svg similarity index 100% rename from public/img/home-page/highlight.svg rename to public/img/pages/home/stats/highlight.svg diff --git a/public/img/home-page/increasing.svg b/public/img/pages/home/stats/increasing.svg similarity index 100% rename from public/img/home-page/increasing.svg rename to public/img/pages/home/stats/increasing.svg diff --git a/public/img/home-page/map.jpg b/public/img/pages/home/stats/map.jpg similarity index 100% rename from public/img/home-page/map.jpg rename to public/img/pages/home/stats/map.jpg diff --git a/public/post1/slides/3.jpg b/public/post1/slides/3.jpg deleted file mode 100644 index 0611eb86..00000000 Binary files a/public/post1/slides/3.jpg and /dev/null differ diff --git a/public/videos/showreel_1080p_4000k_h264.mp4 b/public/videos/pages/home/showreel_1080p_4000k_h264.mp4 similarity index 100% rename from public/videos/showreel_1080p_4000k_h264.mp4 rename to public/videos/pages/home/showreel_1080p_4000k_h264.mp4 diff --git a/src/app/blog/[postId]/layout.tsx b/src/app/blog/[postId]/layout.tsx index eb623a94..7179b430 100644 --- a/src/app/blog/[postId]/layout.tsx +++ b/src/app/blog/[postId]/layout.tsx @@ -3,7 +3,9 @@ import dynamic from 'next/dynamic'; export default function Layout({ children }: { children: React.ReactNode }) { const DynamicRelevantSlider = dynamic( () => - import('@/components/Blog/RelevantSlider').then(m => m.RelevantSlider), + import('@/components/pages/BlogPage/RelevantSlider').then( + m => m.RelevantSlider, + ), { ssr: false }, ); diff --git a/src/app/blog/[postId]/page.tsx b/src/app/blog/[postId]/page.tsx index 8568a8cb..5a7f16e7 100644 --- a/src/app/blog/[postId]/page.tsx +++ b/src/app/blog/[postId]/page.tsx @@ -16,7 +16,10 @@ export default function PostPage({ const [date = '', month = '', year = ''] = post!.createdAt.split(' '); const DynamicPostSlider = dynamic( - () => import('@/components/Blog/PostSlider').then(mod => mod.PostSlider), + () => + import('@/components/pages/BlogPage/PostSlider').then( + mod => mod.PostSlider, + ), { ssr: false, }, diff --git a/src/app/blog/page.tsx b/src/app/blog/page.tsx index 873bb779..51fd436e 100644 --- a/src/app/blog/page.tsx +++ b/src/app/blog/page.tsx @@ -1,5 +1,5 @@ -import { PostsFilters } from '@/components/Blog/PostsFilters'; -import { PostsList } from '@/components/Blog/PostsList'; +import { PostsFilters } from '@/components/pages/BlogPage/PostsFilters'; +import { PostsList } from '@/components/pages/BlogPage/PostsList'; import { Title } from '@/ui/Title'; export default function BlogPage() { diff --git a/src/app/page.tsx b/src/app/page.tsx index 729e291c..0d315b15 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,8 +1,8 @@ -import { AvailablesSlider } from '@/components/Main/Availables/AvailablesSlider'; -import { IntegrationsSlider } from '@/components/Main/Integrations/IntegrationsSlider'; -import { Motivation } from '@/components/Main/Motivation'; -import { Showreel } from '@/components/Main/Showreel'; -import { Statistics } from '@/components/Main/Statistics'; +import { AvailablesSlider } from '@/components/pages/MainPage/Availables/AvailablesSlider'; +import { IntegrationsSlider } from '@/components/pages/MainPage/Integrations/IntegrationsSlider'; +import { Motivation } from '@/components/pages/MainPage/Motivation'; +import { Showreel } from '@/components/pages/MainPage/Showreel'; +import { Statistics } from '@/components/pages/MainPage/Statistics'; export default function Home() { return ( @@ -13,19 +13,19 @@ export default function Home() { + } + className="relative 2xl:w-8 2xl:h-8 w-6 h-6 animate-spin" + /> ) : ( - + } + className="relative 2xl:w-8 2xl:h-8 w-6 h-6" + /> ) } className="py-4" @@ -200,9 +207,15 @@ export function ContactsForm({ inModal = false }: { inModal?: boolean }) { disabled={isLoading} icon={ isLoading ? ( - + } + className="relative 2xl:w-8 2xl:h-8 w-6 h-6 animate-spin" + /> ) : ( - + } + className="relative 2xl:w-8 2xl:h-8 w-6 h-6" + /> ) } className="py-4" @@ -216,7 +229,10 @@ export function ContactsForm({ inModal = false }: { inModal?: boolean }) {

Заявка отправлена - + } + className="lg:w-8 lg:h-8 w-6 h-6" + />

diff --git a/src/components/Layout/Feedback.tsx b/src/components/Layout/Feedback.tsx index 36a736dc..5407b4a5 100644 --- a/src/components/Layout/Feedback.tsx +++ b/src/components/Layout/Feedback.tsx @@ -1,3 +1,4 @@ +import { ClassNameWrapper } from '@/hocs/ClassNameWrapper'; import { AppearanceHr } from '@/ui/AppearanceHr'; import { MailIcon } from '../icons/MailIcon'; import { PhoneIcon } from '../icons/PhoneIcon'; @@ -36,14 +37,20 @@ export function Feedback() { className="2xl:h-16 h-14 px-6 py-4 2xl:text-base text-sm border rounded-full font-medium flex justify-between items-center w-full border-[#52587A] lg:opacity-80 lg:hover:opacity-100 transition-all" > Написать - + } + className="lg:w-8 lg:h-8 w-6 h-6" + /> Позвонить - + } + /> @@ -60,21 +67,30 @@ export function Feedback() { target="_blank" className="group border border-[#3D425C] xl:p-4 p-3 rounded-full lg:hover:border-[#52587A] transition-all" > - + } + className="2xl:w-8 2xl:h-8 w-6 h-6" + /> - + } + /> - + } + /> diff --git a/src/components/Layout/Header.tsx b/src/components/Layout/Header.tsx index 28f89278..f97c976d 100644 --- a/src/components/Layout/Header.tsx +++ b/src/components/Layout/Header.tsx @@ -3,6 +3,7 @@ import { LogoIcon } from '@/components/icons/LogoIcon'; import { LogoWithTextIcon } from '@/components/icons/LogoWithTextIcon'; import { ModalWithForm } from '@/components/Layout/ModalWithForm'; +import { ClassNameWrapper } from '@/hocs/ClassNameWrapper'; import { useWindowWidth } from '@/hooks/useWindowWidth'; import { useModalStore } from '@/stores/useModalStore'; import { BurgerLink } from '@/ui/BurgerLink'; @@ -33,7 +34,7 @@ export function Header() {
- + } /> {width >= 1280 && }
diff --git a/src/components/Main/Availables/AvailableItem.tsx b/src/components/Main/Availables/AvailableItem.tsx deleted file mode 100644 index ee5047c4..00000000 --- a/src/components/Main/Availables/AvailableItem.tsx +++ /dev/null @@ -1,32 +0,0 @@ -export interface IAvailable { - title: string; - text: string; - img: string; -} - -export function AvailableItem({ - current, - img, - text, - title, -}: IAvailable & { current: boolean }) { - return ( -
- {current && ( - <> -

{title}

-

{text}

- - )} -
- ); -} diff --git a/src/components/Main/Integrations/IntegrationItem.tsx b/src/components/Main/Integrations/IntegrationItem.tsx deleted file mode 100644 index 841735a5..00000000 --- a/src/components/Main/Integrations/IntegrationItem.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import Image from 'next/image'; - -export interface IIntegration { - img: string; - title: string; - year: string; - company: string; -} - -export function IntegrationItem({ - img, - title, - year, - company, - current, -}: IIntegration & { current: boolean }) { - return ( -
- {''} -
-
-

{title}

-

{year}

-
-

{company}

-
-
- ); -} diff --git a/src/components/icons/ActiveCubeIcon.tsx b/src/components/icons/ActiveCubeIcon.tsx index 8eb61f40..2e4f79f7 100644 --- a/src/components/icons/ActiveCubeIcon.tsx +++ b/src/components/icons/ActiveCubeIcon.tsx @@ -1,4 +1,4 @@ -export function ActiveCubeIcon({ className = '' }: { className?: string }) { +export function ActiveCubeIcon() { return ( diff --git a/src/components/icons/ArrowLeftIcon.tsx b/src/components/icons/ArrowLeftIcon.tsx index d348d585..d3cd2629 100644 --- a/src/components/icons/ArrowLeftIcon.tsx +++ b/src/components/icons/ArrowLeftIcon.tsx @@ -1,4 +1,4 @@ -export function ArrowLeftIcon({ className = '' }: { className?: string }) { +export function ArrowLeftIcon() { return ( diff --git a/src/components/icons/CheckGradient.tsx b/src/components/icons/CheckGradient.tsx index 9eafbd1e..6c228a40 100644 --- a/src/components/icons/CheckGradient.tsx +++ b/src/components/icons/CheckGradient.tsx @@ -1,4 +1,4 @@ -export function CheckGradientIcon({ className = '' }: { className?: string }) { +export function CheckGradientIcon() { return ( diff --git a/src/components/icons/CloseIcon.tsx b/src/components/icons/CloseIcon.tsx index 2d3e8ca5..0fd59d5c 100644 --- a/src/components/icons/CloseIcon.tsx +++ b/src/components/icons/CloseIcon.tsx @@ -1,4 +1,4 @@ -export function CloseIcon({ className = '' }: { className?: string }) { +export function CloseIcon() { return ( diff --git a/src/components/icons/EconomicEfficiencyIcon.tsx b/src/components/icons/EconomicEfficiencyIcon.tsx index 0b519683..1f521b28 100644 --- a/src/components/icons/EconomicEfficiencyIcon.tsx +++ b/src/components/icons/EconomicEfficiencyIcon.tsx @@ -1,8 +1,4 @@ -export function EconomicEfficiencyIcon({ - className = '', -}: { - className?: string; -}) { +export function EconomicEfficiencyIcon() { return ( + diff --git a/src/components/icons/MobileIcon.tsx b/src/components/icons/MobileIcon.tsx index 9f5ff652..389f5f26 100644 --- a/src/components/icons/MobileIcon.tsx +++ b/src/components/icons/MobileIcon.tsx @@ -1,4 +1,4 @@ -export function MobileIcon({ className = '' }: { className?: string }) { +export function MobileIcon() { return ( diff --git a/src/components/icons/PhoneIcon.tsx b/src/components/icons/PhoneIcon.tsx index 0f006a46..a5e8e63b 100644 --- a/src/components/icons/PhoneIcon.tsx +++ b/src/components/icons/PhoneIcon.tsx @@ -1,4 +1,4 @@ -export function PhoneIcon({ className = '' }: { className?: string }) { +export function PhoneIcon() { return ( diff --git a/src/components/icons/SkolkovoIcon.tsx b/src/components/icons/SkolkovoIcon.tsx index 0cc70b2d..03a5befc 100644 --- a/src/components/icons/SkolkovoIcon.tsx +++ b/src/components/icons/SkolkovoIcon.tsx @@ -1,8 +1,6 @@ export function SkolkovoIcon({ - className = '', type = 'standart', }: { - className?: string; type?: 'mini' | 'standart'; }) { return type === 'standart' ? ( @@ -12,7 +10,6 @@ export function SkolkovoIcon({ viewBox="0 0 80 59" fill="none" xmlns="http://www.w3.org/2000/svg" - className={className} > diff --git a/src/components/icons/TouchScreenIcon.tsx b/src/components/icons/TouchScreenIcon.tsx index 7667462a..c02e2709 100644 --- a/src/components/icons/TouchScreenIcon.tsx +++ b/src/components/icons/TouchScreenIcon.tsx @@ -1,4 +1,4 @@ -export function TouchScreenIcon({ className = '' }: { className?: string }) { +export function TouchScreenIcon() { return ( diff --git a/src/components/icons/VKIcon.tsx b/src/components/icons/VKIcon.tsx index 7bc174f8..5dbaa366 100644 --- a/src/components/icons/VKIcon.tsx +++ b/src/components/icons/VKIcon.tsx @@ -1,4 +1,4 @@ -export function VKIcon({ className = '' }: { className?: string }) { +export function VKIcon() { return ( diff --git a/src/components/icons/VrIcon.tsx b/src/components/icons/VrIcon.tsx index 9234c0f3..3151f10a 100644 --- a/src/components/icons/VrIcon.tsx +++ b/src/components/icons/VrIcon.tsx @@ -1,4 +1,4 @@ -export function VRIcon({ className = '' }: { className?: string }) { +export function VRIcon() { return ( - + } />
diff --git a/src/components/Blog/PostSlider.tsx b/src/components/pages/BlogPage/PostSlider.tsx similarity index 100% rename from src/components/Blog/PostSlider.tsx rename to src/components/pages/BlogPage/PostSlider.tsx diff --git a/src/components/Blog/PostsFilters.tsx b/src/components/pages/BlogPage/PostsFilters.tsx similarity index 86% rename from src/components/Blog/PostsFilters.tsx rename to src/components/pages/BlogPage/PostsFilters.tsx index 05828786..1c209585 100644 --- a/src/components/Blog/PostsFilters.tsx +++ b/src/components/pages/BlogPage/PostsFilters.tsx @@ -1,12 +1,12 @@ 'use client'; +import { TagFilterItem } from '@/components/TagFilterItem'; +import { YearFilterDropdown } from '@/components/YearFilterDropdown'; +import { YearFilterItem } from '@/components/YearFilterItem'; import { PostTags } from '@/consts/PostTags'; import { PostYears } from '@/consts/PostYears'; import { Vertical } from '@/ui/Vertical'; import { useSearchParams } from 'next/navigation'; -import { TagFilterItem } from '../TagFilterItem'; -import { YearFilterDropdown } from '../YearFilterDropdown'; -import { YearFilterItem } from '../YearFilterItem'; export function PostsFilters() { const params = useSearchParams(); diff --git a/src/components/Blog/PostsList.tsx b/src/components/pages/BlogPage/PostsList.tsx similarity index 100% rename from src/components/Blog/PostsList.tsx rename to src/components/pages/BlogPage/PostsList.tsx diff --git a/src/components/Blog/RelevantPost.tsx b/src/components/pages/BlogPage/RelevantPost.tsx similarity index 94% rename from src/components/Blog/RelevantPost.tsx rename to src/components/pages/BlogPage/RelevantPost.tsx index d6f9b2b2..2a8ddb77 100644 --- a/src/components/Blog/RelevantPost.tsx +++ b/src/components/pages/BlogPage/RelevantPost.tsx @@ -1,10 +1,10 @@ 'use client'; +import { ArrowMoreIcon } from '@/components/icons/ArrowMoreIcon'; import { IPost } from '@/types/IPost'; import { AppearanceHr } from '@/ui/AppearanceHr'; import Image from 'next/image'; import { useRouter } from 'next/navigation'; -import { ArrowMoreIcon } from '../icons/ArrowMoreIcon'; export function RelevantPost({ image, title, id }: IPost) { const { push } = useRouter(); diff --git a/src/components/Blog/RelevantSlider.tsx b/src/components/pages/BlogPage/RelevantSlider.tsx similarity index 88% rename from src/components/Blog/RelevantSlider.tsx rename to src/components/pages/BlogPage/RelevantSlider.tsx index 38494122..9b85912b 100644 --- a/src/components/Blog/RelevantSlider.tsx +++ b/src/components/pages/BlogPage/RelevantSlider.tsx @@ -1,10 +1,11 @@ 'use client'; +import { ArrowLeftIcon } from '@/components/icons/ArrowLeftIcon'; import { Posts } from '@/consts/Posts'; +import { ClassNameWrapper } from '@/hocs/ClassNameWrapper'; import { useWindowWidth } from '@/hooks/useWindowWidth'; import { InfinitySlider } from '@/ui/InfinitySlider'; import { useRef } from 'react'; -import { ArrowLeftIcon } from '../icons/ArrowLeftIcon'; import { RelevantPost } from './RelevantPost'; export function RelevantSlider() { @@ -27,7 +28,10 @@ export function RelevantSlider() { className="rounded-full border border-[#3D425C] sm:p-4 p-2 lg:opacity-80 lg:hover:opacity-100" ref={right} > - + } + /> diff --git a/src/components/pages/MainPage/Availables/AvailableItem.tsx b/src/components/pages/MainPage/Availables/AvailableItem.tsx new file mode 100644 index 00000000..ec80d18a --- /dev/null +++ b/src/components/pages/MainPage/Availables/AvailableItem.tsx @@ -0,0 +1,49 @@ +import { motion } from 'framer-motion'; + +export interface IAvailable { + title: string; + text: string; + img: string; +} + +export function AvailableItem({ + current, + img, + text, + title, +}: IAvailable & { current: boolean }) { + return ( +
+ + {current && ( + <> +

{title}

+

{text}

+ + )} +
+
+ ); +} diff --git a/src/components/Main/Availables/AvailablesSlider.tsx b/src/components/pages/MainPage/Availables/AvailablesSlider.tsx similarity index 97% rename from src/components/Main/Availables/AvailablesSlider.tsx rename to src/components/pages/MainPage/Availables/AvailablesSlider.tsx index 5ff153a9..7ed4463f 100644 --- a/src/components/Main/Availables/AvailablesSlider.tsx +++ b/src/components/pages/MainPage/Availables/AvailablesSlider.tsx @@ -19,6 +19,7 @@ export function AvailablesSlider({ availables }: { availables: IAvailable[] }) { slideElement={AvailableItem} slides={availables} title="Функциональные возможности" + alignItems="end" /> ); diff --git a/src/components/pages/MainPage/Integrations/IntegrationItem.tsx b/src/components/pages/MainPage/Integrations/IntegrationItem.tsx new file mode 100644 index 00000000..d3048185 --- /dev/null +++ b/src/components/pages/MainPage/Integrations/IntegrationItem.tsx @@ -0,0 +1,48 @@ +import { motion } from 'framer-motion'; +import Image from 'next/image'; + +export interface IIntegration { + img: string; + title: string; + year: string; + company: string; +} + +export function IntegrationItem({ + img, + title, + year, + company, + current, +}: IIntegration & { current: boolean }) { + return ( +
+ + {''} +
+
+

{title}

+

{year}

+
+

{company}

+
+
+
+ ); +} diff --git a/src/components/Main/Integrations/IntegrationsSlider.tsx b/src/components/pages/MainPage/Integrations/IntegrationsSlider.tsx similarity index 100% rename from src/components/Main/Integrations/IntegrationsSlider.tsx rename to src/components/pages/MainPage/Integrations/IntegrationsSlider.tsx diff --git a/src/components/Main/Motivation.tsx b/src/components/pages/MainPage/Motivation.tsx similarity index 76% rename from src/components/Main/Motivation.tsx rename to src/components/pages/MainPage/Motivation.tsx index e2d0ed3c..96418799 100644 --- a/src/components/Main/Motivation.tsx +++ b/src/components/pages/MainPage/Motivation.tsx @@ -1,6 +1,7 @@ -import { Title } from '../../ui/Title'; -import { ArrowDownIcon } from '../icons/ArrowDownIcon'; -import { SkolkovoIcon } from '../icons/SkolkovoIcon'; +import { ArrowDownIcon } from '@/components/icons/ArrowDownIcon'; +import { SkolkovoIcon } from '@/components/icons/SkolkovoIcon'; +import { ClassNameWrapper } from '@/hocs/ClassNameWrapper'; +import { Title } from '@/ui/Title'; export function Motivation() { return ( @@ -12,7 +13,7 @@ export function Motivation() { продаж для застройщиков - + } />

diff --git a/src/components/Main/Projects.tsx b/src/components/pages/MainPage/Projects.tsx similarity index 91% rename from src/components/Main/Projects.tsx rename to src/components/pages/MainPage/Projects.tsx index f90b92ff..036d8395 100644 --- a/src/components/Main/Projects.tsx +++ b/src/components/pages/MainPage/Projects.tsx @@ -6,7 +6,7 @@ export function Projects() {
{''} {''} {''} {''} {''}
{''}
-
+

Конверсия из консультации в бронирование
увеличивается на

@@ -57,7 +57,7 @@ export function Statistics() { 48%

{''}
-
+

Конверсия из консультации в бронирование
увеличивается на

@@ -86,7 +86,7 @@ export function Statistics() { 42%

{''}
-
+

Время реализации проекта
сокращается до

{''}
-
+

Время на подготовку рекламных
материалов сокращается до

{''}(null); + + useEffect(() => { + if (!className.split(' ').length) return; + + ref.current?.children + .item(0) + ?.classList.add(...className.split(' ').filter(Boolean)); + }, [className]); + + return
{element}
; +} diff --git a/src/ui/InfinitySlider.tsx b/src/ui/InfinitySlider.tsx index df3dd7f2..36ab3a2f 100644 --- a/src/ui/InfinitySlider.tsx +++ b/src/ui/InfinitySlider.tsx @@ -1,4 +1,5 @@ import { ArrowLeftIcon } from '@/components/icons/ArrowLeftIcon'; +import { ClassNameWrapper } from '@/hocs/ClassNameWrapper'; import { useWindowWidth } from '@/hooks/useWindowWidth'; import { ReactNode, @@ -160,7 +161,10 @@ export function InfinitySlider({ />
)} diff --git a/src/ui/SliderControls.tsx b/src/ui/SliderControls.tsx index 9a4ac1e0..557dc388 100644 --- a/src/ui/SliderControls.tsx +++ b/src/ui/SliderControls.tsx @@ -1,4 +1,5 @@ import { ArrowLeftIcon } from '@/components/icons/ArrowLeftIcon'; +import { ClassNameWrapper } from '@/hocs/ClassNameWrapper'; export function SliderControls({ slidesCount = 6, @@ -63,7 +64,7 @@ export function SliderControls({ onClick={onRightClick} className="rounded-full p-5 border border-[#3D425C]" > - + } />
); diff --git a/src/ui/SliderWithScaling.tsx b/src/ui/SliderWithScaling.tsx index f71fd9e4..2ba20824 100644 --- a/src/ui/SliderWithScaling.tsx +++ b/src/ui/SliderWithScaling.tsx @@ -2,6 +2,7 @@ import { useWindowWidth } from '@/hooks/useWindowWidth'; import { + Fragment, ReactElement, useCallback, useEffect, @@ -17,11 +18,13 @@ export function SliderWithScaling({ slides, slideElement, className = '', + alignItems = 'start', title, }: { slides: T[]; slideElement: (_: T & { current: boolean }) => ReactElement; className?: string; + alignItems?: 'start' | 'center' | 'end'; title: string; }) { const width = useWindowWidth(); @@ -97,15 +100,17 @@ export function SliderWithScaling({
- {order.map((slide, index) => - slideElement({ current: index === 1, ...slide }), - )} + {order.map((slide, index) => ( + + {slideElement({ current: index === 1, ...slide })} + + ))}
diff --git a/tailwind.config.ts b/tailwind.config.ts index afbe26b5..2a0550bd 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -12,23 +12,6 @@ const config: Config = { 'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', }, - keyframes: { - scaling: { - '0%': { - transition: 'all 1s ease', - minHeight: '31.8vw', - minWidth: '31.6vw', - }, - '100%': { - transition: 'all 1s ease', - minHeight: '43.2vw', - minWidth: '48vw', - }, - }, - }, - animation: { - scaling: 'scaling 1s ease-in-out both', - }, }, }, plugins: [], diff --git a/tsconfig.json b/tsconfig.json index 6b5fcde6..b9e7aa81 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,6 +21,7 @@ "@/*": ["./src/*"], "@/components/*": ["./src/components/*"], "@/hooks/*": ["./src/hooks/*"], + "@/hocs/*": ["./src/hocs/*"], "@/stores/*": ["./src/stores/*"], "@/pages/*": ["./src/pages/*"], "@/utils/*": ["./src/utils/*"]