diff --git a/client/public/images/clients/clients-1.jpg b/client/public/images/clients/clients-1.jpg new file mode 100644 index 0000000..4888dc6 Binary files /dev/null and b/client/public/images/clients/clients-1.jpg differ diff --git a/client/public/images/clients/clients-10.jpg b/client/public/images/clients/clients-10.jpg new file mode 100644 index 0000000..6a59a8b Binary files /dev/null and b/client/public/images/clients/clients-10.jpg differ diff --git a/client/public/images/clients/clients-11.jpg b/client/public/images/clients/clients-11.jpg new file mode 100644 index 0000000..7233da2 Binary files /dev/null and b/client/public/images/clients/clients-11.jpg differ diff --git a/client/public/images/clients/clients-12.jpg b/client/public/images/clients/clients-12.jpg new file mode 100644 index 0000000..dd9fb1d Binary files /dev/null and b/client/public/images/clients/clients-12.jpg differ diff --git a/client/public/images/clients/clients-13.jpg b/client/public/images/clients/clients-13.jpg new file mode 100644 index 0000000..a4b9b6f Binary files /dev/null and b/client/public/images/clients/clients-13.jpg differ diff --git a/client/public/images/clients/clients-14.jpg b/client/public/images/clients/clients-14.jpg new file mode 100644 index 0000000..52e506a Binary files /dev/null and b/client/public/images/clients/clients-14.jpg differ diff --git a/client/public/images/clients/clients-15.jpg b/client/public/images/clients/clients-15.jpg new file mode 100644 index 0000000..bd4fc99 Binary files /dev/null and b/client/public/images/clients/clients-15.jpg differ diff --git a/client/public/images/clients/clients-16.jpg b/client/public/images/clients/clients-16.jpg new file mode 100644 index 0000000..e877775 Binary files /dev/null and b/client/public/images/clients/clients-16.jpg differ diff --git a/client/public/images/clients/clients-17.jpg b/client/public/images/clients/clients-17.jpg new file mode 100644 index 0000000..eb432c7 Binary files /dev/null and b/client/public/images/clients/clients-17.jpg differ diff --git a/client/public/images/clients/clients-18.jpg b/client/public/images/clients/clients-18.jpg new file mode 100644 index 0000000..e8d1cdc Binary files /dev/null and b/client/public/images/clients/clients-18.jpg differ diff --git a/client/public/images/clients/clients-19.jpg b/client/public/images/clients/clients-19.jpg new file mode 100644 index 0000000..075aa4b Binary files /dev/null and b/client/public/images/clients/clients-19.jpg differ diff --git a/client/public/images/clients/clients-2.jpg b/client/public/images/clients/clients-2.jpg new file mode 100644 index 0000000..498baac Binary files /dev/null and b/client/public/images/clients/clients-2.jpg differ diff --git a/client/public/images/clients/clients-20.jpg b/client/public/images/clients/clients-20.jpg new file mode 100644 index 0000000..28ab6e7 Binary files /dev/null and b/client/public/images/clients/clients-20.jpg differ diff --git a/client/public/images/clients/clients-21.jpg b/client/public/images/clients/clients-21.jpg new file mode 100644 index 0000000..becb0b4 Binary files /dev/null and b/client/public/images/clients/clients-21.jpg differ diff --git a/client/public/images/clients/clients-22.jpg b/client/public/images/clients/clients-22.jpg new file mode 100644 index 0000000..d6fa9a2 Binary files /dev/null and b/client/public/images/clients/clients-22.jpg differ diff --git a/client/public/images/clients/clients-23.jpg b/client/public/images/clients/clients-23.jpg new file mode 100644 index 0000000..5de895e Binary files /dev/null and b/client/public/images/clients/clients-23.jpg differ diff --git a/client/public/images/clients/clients-24.jpg b/client/public/images/clients/clients-24.jpg new file mode 100644 index 0000000..ff15fd0 Binary files /dev/null and b/client/public/images/clients/clients-24.jpg differ diff --git a/client/public/images/clients/clients-25.jpg b/client/public/images/clients/clients-25.jpg new file mode 100644 index 0000000..83b7a3d Binary files /dev/null and b/client/public/images/clients/clients-25.jpg differ diff --git a/client/public/images/clients/clients-26.jpg b/client/public/images/clients/clients-26.jpg new file mode 100644 index 0000000..2caf2b2 Binary files /dev/null and b/client/public/images/clients/clients-26.jpg differ diff --git a/client/public/images/clients/clients-27.jpg b/client/public/images/clients/clients-27.jpg new file mode 100644 index 0000000..03f1741 Binary files /dev/null and b/client/public/images/clients/clients-27.jpg differ diff --git a/client/public/images/clients/clients-28.jpg b/client/public/images/clients/clients-28.jpg new file mode 100644 index 0000000..641bc45 Binary files /dev/null and b/client/public/images/clients/clients-28.jpg differ diff --git a/client/public/images/clients/clients-29.jpg b/client/public/images/clients/clients-29.jpg new file mode 100644 index 0000000..b9c0664 Binary files /dev/null and b/client/public/images/clients/clients-29.jpg differ diff --git a/client/public/images/clients/clients-3.jpg b/client/public/images/clients/clients-3.jpg new file mode 100644 index 0000000..78dc1f9 Binary files /dev/null and b/client/public/images/clients/clients-3.jpg differ diff --git a/client/public/images/clients/clients-30.jpg b/client/public/images/clients/clients-30.jpg new file mode 100644 index 0000000..413f45d Binary files /dev/null and b/client/public/images/clients/clients-30.jpg differ diff --git a/client/public/images/clients/clients-31.jpg b/client/public/images/clients/clients-31.jpg new file mode 100644 index 0000000..a99c372 Binary files /dev/null and b/client/public/images/clients/clients-31.jpg differ diff --git a/client/public/images/clients/clients-32.jpg b/client/public/images/clients/clients-32.jpg new file mode 100644 index 0000000..1c937ed Binary files /dev/null and b/client/public/images/clients/clients-32.jpg differ diff --git a/client/public/images/clients/clients-33.jpg b/client/public/images/clients/clients-33.jpg new file mode 100644 index 0000000..233d646 Binary files /dev/null and b/client/public/images/clients/clients-33.jpg differ diff --git a/client/public/images/clients/clients-34.jpg b/client/public/images/clients/clients-34.jpg new file mode 100644 index 0000000..b749ecd Binary files /dev/null and b/client/public/images/clients/clients-34.jpg differ diff --git a/client/public/images/clients/clients-35.jpg b/client/public/images/clients/clients-35.jpg new file mode 100644 index 0000000..4a50e70 Binary files /dev/null and b/client/public/images/clients/clients-35.jpg differ diff --git a/client/public/images/clients/clients-36.jpg b/client/public/images/clients/clients-36.jpg new file mode 100644 index 0000000..d243670 Binary files /dev/null and b/client/public/images/clients/clients-36.jpg differ diff --git a/client/public/images/clients/clients-37.jpg b/client/public/images/clients/clients-37.jpg new file mode 100644 index 0000000..956b72d Binary files /dev/null and b/client/public/images/clients/clients-37.jpg differ diff --git a/client/public/images/clients/clients-38.jpg b/client/public/images/clients/clients-38.jpg new file mode 100644 index 0000000..dc99d08 Binary files /dev/null and b/client/public/images/clients/clients-38.jpg differ diff --git a/client/public/images/clients/clients-39.jpg b/client/public/images/clients/clients-39.jpg new file mode 100644 index 0000000..ec27d80 Binary files /dev/null and b/client/public/images/clients/clients-39.jpg differ diff --git a/client/public/images/clients/clients-4.jpg b/client/public/images/clients/clients-4.jpg new file mode 100644 index 0000000..5335bdb Binary files /dev/null and b/client/public/images/clients/clients-4.jpg differ diff --git a/client/public/images/clients/clients-40.jpg b/client/public/images/clients/clients-40.jpg new file mode 100644 index 0000000..15eabce Binary files /dev/null and b/client/public/images/clients/clients-40.jpg differ diff --git a/client/public/images/clients/clients-41.jpg b/client/public/images/clients/clients-41.jpg new file mode 100644 index 0000000..700c114 Binary files /dev/null and b/client/public/images/clients/clients-41.jpg differ diff --git a/client/public/images/clients/clients-42.jpg b/client/public/images/clients/clients-42.jpg new file mode 100644 index 0000000..ecefbe8 Binary files /dev/null and b/client/public/images/clients/clients-42.jpg differ diff --git a/client/public/images/clients/clients-43.jpg b/client/public/images/clients/clients-43.jpg new file mode 100644 index 0000000..9d5ccd7 Binary files /dev/null and b/client/public/images/clients/clients-43.jpg differ diff --git a/client/public/images/clients/clients-44.jpg b/client/public/images/clients/clients-44.jpg new file mode 100644 index 0000000..92bb552 Binary files /dev/null and b/client/public/images/clients/clients-44.jpg differ diff --git a/client/public/images/clients/clients-45.jpg b/client/public/images/clients/clients-45.jpg new file mode 100644 index 0000000..145bf97 Binary files /dev/null and b/client/public/images/clients/clients-45.jpg differ diff --git a/client/public/images/clients/clients-46.jpg b/client/public/images/clients/clients-46.jpg new file mode 100644 index 0000000..2af6470 Binary files /dev/null and b/client/public/images/clients/clients-46.jpg differ diff --git a/client/public/images/clients/clients-47.jpg b/client/public/images/clients/clients-47.jpg new file mode 100644 index 0000000..086d0d1 Binary files /dev/null and b/client/public/images/clients/clients-47.jpg differ diff --git a/client/public/images/clients/clients-48.jpg b/client/public/images/clients/clients-48.jpg new file mode 100644 index 0000000..553b4f1 Binary files /dev/null and b/client/public/images/clients/clients-48.jpg differ diff --git a/client/public/images/clients/clients-49.jpg b/client/public/images/clients/clients-49.jpg new file mode 100644 index 0000000..01dab0f Binary files /dev/null and b/client/public/images/clients/clients-49.jpg differ diff --git a/client/public/images/clients/clients-5.jpg b/client/public/images/clients/clients-5.jpg new file mode 100644 index 0000000..900b1d5 Binary files /dev/null and b/client/public/images/clients/clients-5.jpg differ diff --git a/client/public/images/clients/clients-50.jpg b/client/public/images/clients/clients-50.jpg new file mode 100644 index 0000000..70509cf Binary files /dev/null and b/client/public/images/clients/clients-50.jpg differ diff --git a/client/public/images/clients/clients-51.jpg b/client/public/images/clients/clients-51.jpg new file mode 100644 index 0000000..ae77a37 Binary files /dev/null and b/client/public/images/clients/clients-51.jpg differ diff --git a/client/public/images/clients/clients-52.jpg b/client/public/images/clients/clients-52.jpg new file mode 100644 index 0000000..0a875a4 Binary files /dev/null and b/client/public/images/clients/clients-52.jpg differ diff --git a/client/public/images/clients/clients-53.jpg b/client/public/images/clients/clients-53.jpg new file mode 100644 index 0000000..667b800 Binary files /dev/null and b/client/public/images/clients/clients-53.jpg differ diff --git a/client/public/images/clients/clients-54.jpg b/client/public/images/clients/clients-54.jpg new file mode 100644 index 0000000..cd85122 Binary files /dev/null and b/client/public/images/clients/clients-54.jpg differ diff --git a/client/public/images/clients/clients-55.jpg b/client/public/images/clients/clients-55.jpg new file mode 100644 index 0000000..cd35832 Binary files /dev/null and b/client/public/images/clients/clients-55.jpg differ diff --git a/client/public/images/clients/clients-6.jpg b/client/public/images/clients/clients-6.jpg new file mode 100644 index 0000000..23414f0 Binary files /dev/null and b/client/public/images/clients/clients-6.jpg differ diff --git a/client/public/images/clients/clients-7.jpg b/client/public/images/clients/clients-7.jpg new file mode 100644 index 0000000..d812e77 Binary files /dev/null and b/client/public/images/clients/clients-7.jpg differ diff --git a/client/public/images/clients/clients-8.jpg b/client/public/images/clients/clients-8.jpg new file mode 100644 index 0000000..1818708 Binary files /dev/null and b/client/public/images/clients/clients-8.jpg differ diff --git a/client/public/images/clients/clients-9.jpg b/client/public/images/clients/clients-9.jpg new file mode 100644 index 0000000..1b43a28 Binary files /dev/null and b/client/public/images/clients/clients-9.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-1.jpg b/client/public/images/clientsCarousel/clients-cal-1.jpg new file mode 100644 index 0000000..4329a73 Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-1.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-10.jpg b/client/public/images/clientsCarousel/clients-cal-10.jpg new file mode 100644 index 0000000..fc9a5f9 Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-10.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-11.jpg b/client/public/images/clientsCarousel/clients-cal-11.jpg new file mode 100644 index 0000000..8a52226 Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-11.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-12.jpg b/client/public/images/clientsCarousel/clients-cal-12.jpg new file mode 100644 index 0000000..d520f14 Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-12.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-13.jpg b/client/public/images/clientsCarousel/clients-cal-13.jpg new file mode 100644 index 0000000..01fc97e Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-13.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-14.jpg b/client/public/images/clientsCarousel/clients-cal-14.jpg new file mode 100644 index 0000000..eb431e1 Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-14.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-15.jpg b/client/public/images/clientsCarousel/clients-cal-15.jpg new file mode 100644 index 0000000..fb644b0 Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-15.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-16.jpg b/client/public/images/clientsCarousel/clients-cal-16.jpg new file mode 100644 index 0000000..14039c2 Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-16.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-17.jpg b/client/public/images/clientsCarousel/clients-cal-17.jpg new file mode 100644 index 0000000..625681e Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-17.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-18.jpg b/client/public/images/clientsCarousel/clients-cal-18.jpg new file mode 100644 index 0000000..dc951aa Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-18.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-19.jpg b/client/public/images/clientsCarousel/clients-cal-19.jpg new file mode 100644 index 0000000..b6a866c Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-19.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-2.jpg b/client/public/images/clientsCarousel/clients-cal-2.jpg new file mode 100644 index 0000000..2eb5554 Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-2.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-20.jpg b/client/public/images/clientsCarousel/clients-cal-20.jpg new file mode 100644 index 0000000..76ef04d Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-20.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-21.jpg b/client/public/images/clientsCarousel/clients-cal-21.jpg new file mode 100644 index 0000000..4329a73 Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-21.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-3.jpg b/client/public/images/clientsCarousel/clients-cal-3.jpg new file mode 100644 index 0000000..f9ad481 Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-3.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-4.jpg b/client/public/images/clientsCarousel/clients-cal-4.jpg new file mode 100644 index 0000000..d054971 Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-4.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-5.jpg b/client/public/images/clientsCarousel/clients-cal-5.jpg new file mode 100644 index 0000000..5ea0e6e Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-5.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-6.jpg b/client/public/images/clientsCarousel/clients-cal-6.jpg new file mode 100644 index 0000000..5801f27 Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-6.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-7.jpg b/client/public/images/clientsCarousel/clients-cal-7.jpg new file mode 100644 index 0000000..b541b18 Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-7.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-8.jpg b/client/public/images/clientsCarousel/clients-cal-8.jpg new file mode 100644 index 0000000..95519bb Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-8.jpg differ diff --git a/client/public/images/clientsCarousel/clients-cal-9.jpg b/client/public/images/clientsCarousel/clients-cal-9.jpg new file mode 100644 index 0000000..71a0c4b Binary files /dev/null and b/client/public/images/clientsCarousel/clients-cal-9.jpg differ diff --git a/client/src/components/ClientsPage/ClientsContainer.tsx b/client/src/components/ClientsPage/ClientsContainer.tsx new file mode 100644 index 0000000..7bf203f --- /dev/null +++ b/client/src/components/ClientsPage/ClientsContainer.tsx @@ -0,0 +1,59 @@ +function chunkArray(arr: number[], cnt: number) { + const resultArray = []; + for (let i = 0; i < arr.length; i += cnt) { + const chunk = arr.slice(i, i + cnt); + resultArray.push(chunk); + } + return resultArray; +} + +const ClientsContainer = () => { + const imageIndexes = Array.from({ length: 55 }, (_, i) => i + 1); + const imageSections = chunkArray(imageIndexes, 4); + + return ( +
+
+ {imageSections.map((section, index) => { + return ( +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ ); + })} +
+
+ ); +}; + +export default ClientsContainer; diff --git a/client/src/components/ClientsPage/ClientsPageCarousel.tsx b/client/src/components/ClientsPage/ClientsPageCarousel.tsx new file mode 100644 index 0000000..315071b --- /dev/null +++ b/client/src/components/ClientsPage/ClientsPageCarousel.tsx @@ -0,0 +1,110 @@ +import { useState } from "react"; +import ArrowCarouselIcon from "../../icons/ArrowCarouselIcon"; +import { thanksgivingLetters } from "../../consts/clientsPage"; +import { Image } from "../../types"; +import useStore from "../../store/store"; +import ZoomInLetterModal from "./ZoomInLetterModal"; + +const IMAGE_WIDTH = 660; + +const ClientsPageCarousel = () => { + const middleLetter = Math.floor(thanksgivingLetters.length / 2); + const isOddCount = middleLetter % 2 === 1; + const defaultOffset = isOddCount ? 300 : 0; + + const { setModal } = useStore(); + const [letters, setLetters] = useState(thanksgivingLetters); + const [currentImage, setCurrentImage] = useState(middleLetter); + const [offset, setOffset] = useState(IMAGE_WIDTH); + + const handleOnRightButtonClick = () => { + if (currentImage < letters.length) { + setOffset((prev) => prev - IMAGE_WIDTH); + setCurrentImage((prev) => prev + 1); + } + }; + + const handleOnLeftButtonClick = () => { + if (currentImage > 1) { + setOffset((prev) => prev + IMAGE_WIDTH); + setCurrentImage((prev) => prev - 1); + } + }; + + const handleOnBulletClick = (letterId: number) => { + return () => { + const updatedOffset = (currentImage - letterId) * IMAGE_WIDTH; + setOffset((prev) => prev + updatedOffset); + setCurrentImage(letterId); + }; + }; + + const handleOnZoomIn = () => { + setModal( + + ); + }; + + return ( +
+

+ Благодарственные письма +

+
+
+
+ {letters.map((letter) => ( +
+ +
+ ))} +
+ + + +
+
+ {letters.map((letter) => ( +
+
+
+ ))} +
+
+
+ ); +}; + +export default ClientsPageCarousel; diff --git a/client/src/components/ClientsPage/ZoomInLetterModal.tsx b/client/src/components/ClientsPage/ZoomInLetterModal.tsx new file mode 100644 index 0000000..f0c8bd5 --- /dev/null +++ b/client/src/components/ClientsPage/ZoomInLetterModal.tsx @@ -0,0 +1,40 @@ +import { Image } from "../../types"; + +type ZoomInLetterModalProps = { + images: Image[]; + currentImage: number; +}; + +const ZoomInLetterModal = ({ + images, + currentImage, +}: ZoomInLetterModalProps) => { + return ( +
+
+ {images.map((image) => { + return ( +
+ +
+ ); + })} +
+
+ ); +}; + +export default ZoomInLetterModal; diff --git a/client/src/components/GalleryPage/ProjectsContainer.tsx b/client/src/components/GalleryPage/ProjectsContainer.tsx index 55cb5b4..a46e77c 100644 --- a/client/src/components/GalleryPage/ProjectsContainer.tsx +++ b/client/src/components/GalleryPage/ProjectsContainer.tsx @@ -1,6 +1,9 @@ import { ProjectType } from "../../types"; import ProjectsSection from "./ProjectsSection"; -import { projects } from "../../consts/galleryPage"; +import { projects as mockProjects } from "../../consts/galleryPage"; +import useStore from "../../store/store"; +import { projectTabs } from "../../consts/galleryPage"; +import { useEffect, useState } from "react"; function getSlicedProjects(projects: ProjectType[]) { const chunkSize = 5; @@ -15,10 +18,25 @@ function getSlicedProjects(projects: ProjectType[]) { } const ProjectsContainer = () => { + const { selectedTab } = useStore(); + const [projects, setProjects] = useState(mockProjects); + useEffect(() => { + if (selectedTab.id === projectTabs[0].id) { + setProjects(mockProjects); + } else { + const filteredProjects = mockProjects.filter((project) => + project.tabs.some((tab) => tab.id === selectedTab.id) + ); + setProjects(filteredProjects); + } + + return () => {}; + }, [selectedTab]); + const slicedProjects = getSlicedProjects(projects); return ( -
+
{slicedProjects.map((pr) => ( ))} diff --git a/client/src/components/GalleryPage/ProjectsSection.tsx b/client/src/components/GalleryPage/ProjectsSection.tsx index b8b13e5..0e08cb1 100644 --- a/client/src/components/GalleryPage/ProjectsSection.tsx +++ b/client/src/components/GalleryPage/ProjectsSection.tsx @@ -33,6 +33,7 @@ const FiveProjects = ({ projects }: GalleryProjectsProps) => { const row = rows[index]; return (
{ const row = rows[index]; return (
{ const row = rows[index]; return (
{ return (

{title}

-

{description}

+

{description}

); }; diff --git a/client/src/components/ScrollToTopButton.tsx b/client/src/components/ScrollToTopButton.tsx index c0a27d0..5ee4471 100644 --- a/client/src/components/ScrollToTopButton.tsx +++ b/client/src/components/ScrollToTopButton.tsx @@ -2,7 +2,7 @@ import { useEffect, useRef, useState } from "react"; import ScrollToTopIcon from "../icons/ScrollToTopIcon"; const ScrollToTopButton = () => { - const [isVisible, setIsVisible] = useState(true); + const [isVisible, setIsVisible] = useState(false); const buttonRef = useRef(null); const handleOnScroll = () => { diff --git a/client/src/consts/clientsPage.tsx b/client/src/consts/clientsPage.tsx new file mode 100644 index 0000000..70c5f46 --- /dev/null +++ b/client/src/consts/clientsPage.tsx @@ -0,0 +1,27 @@ +import { Image } from "../types"; + +const thanksgivingLetters: Image[] = [ + { id: 1, image: "/images/clientsCarousel/clients-cal-1.jpg" }, + { id: 2, image: "/images/clientsCarousel/clients-cal-2.jpg" }, + { id: 3, image: "/images/clientsCarousel/clients-cal-3.jpg" }, + { id: 4, image: "/images/clientsCarousel/clients-cal-4.jpg" }, + { id: 5, image: "/images/clientsCarousel/clients-cal-5.jpg" }, + { id: 6, image: "/images/clientsCarousel/clients-cal-6.jpg" }, + { id: 7, image: "/images/clientsCarousel/clients-cal-7.jpg" }, + { id: 8, image: "/images/clientsCarousel/clients-cal-8.jpg" }, + { id: 9, image: "/images/clientsCarousel/clients-cal-9.jpg" }, + { id: 10, image: "/images/clientsCarousel/clients-cal-10.jpg" }, + { id: 11, image: "/images/clientsCarousel/clients-cal-11.jpg" }, + { id: 12, image: "/images/clientsCarousel/clients-cal-12.jpg" }, + { id: 13, image: "/images/clientsCarousel/clients-cal-13.jpg" }, + { id: 14, image: "/images/clientsCarousel/clients-cal-14.jpg" }, + { id: 15, image: "/images/clientsCarousel/clients-cal-15.jpg" }, + { id: 16, image: "/images/clientsCarousel/clients-cal-16.jpg" }, + { id: 17, image: "/images/clientsCarousel/clients-cal-17.jpg" }, + { id: 18, image: "/images/clientsCarousel/clients-cal-18.jpg" }, + { id: 19, image: "/images/clientsCarousel/clients-cal-19.jpg" }, + { id: 20, image: "/images/clientsCarousel/clients-cal-20.jpg" }, + { id: 21, image: "/images/clientsCarousel/clients-cal-21.jpg" }, +]; + +export { thanksgivingLetters }; diff --git a/client/src/consts/galleryPage.ts b/client/src/consts/galleryPage.ts index 63b2ad2..0f23bdb 100644 --- a/client/src/consts/galleryPage.ts +++ b/client/src/consts/galleryPage.ts @@ -17,7 +17,7 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-1.jpg", description: "", link: "", - tab:projectTabs[0] + tabs:[projectTabs[0]] }, { id: 2, @@ -25,7 +25,7 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-2.jpg", description: "Интерактивная презентация 2023.", link: "", - tab:projectTabs[6] + tabs:[projectTabs[6]] }, { id: 3, @@ -33,7 +33,7 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-3.jpg", description: "", link: "", - tab:projectTabs[0] + tabs:[projectTabs[0], projectTabs[4], projectTabs[6]] }, { id: 4, @@ -41,7 +41,7 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-4.jpg", description: "Интерактивная презентация жилого проекта 2023г.", link: "", - tab:projectTabs[6] + tabs:[projectTabs[6]] }, { id: 5, @@ -49,13 +49,15 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-5.jpg", description: "Строительный Форум100+ 2023г.", link: "", + tabs:[projectTabs[6]] }, { id: 6, - title: 'ЖК "Life Residence" для Паритет девелопмент', + title: 'ЖК "Life Residence" для Паритет девелопмент г. Тюмень', imagePath: "/images/galleryProjects/gallery-projects-6.jpg", description: "Интерактивная презентация 2023г.", link: "", + tabs:[projectTabs[3], projectTabs[6]] }, { id: 7, @@ -63,13 +65,15 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-7.jpg", description: "Web Gl 2022г.", link: "", + tabs:[projectTabs[4]] }, { id: 8, - title: 'Центральная ППК"', + title: 'АО "Центральная ППК"', imagePath: "/images/galleryProjects/gallery-projects-8.jpg", description: "AR приложение 2022г.", link: "", + tabs:[projectTabs[2]] }, { id: 9, @@ -77,6 +81,7 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-9.jpg", description: "Интерактивная 3D презентация 2022г.", link: "", + tabs:[projectTabs[3]] }, { id: 10, @@ -84,6 +89,7 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-10.jpg", description: "VR 2022г.", link: "", + tabs:[projectTabs[1]] }, { id: 11, @@ -91,6 +97,7 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-11.jpg", description: "", link: "", + tabs:[projectTabs[2], projectTabs[5]] }, { id: 12, @@ -98,6 +105,7 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-12.jpg", description: "Интерактивный макет с VR - туром 2021г.", link: "", + tabs:[projectTabs[1], projectTabs[3], projectTabs[6]] }, { id: 13, @@ -105,13 +113,15 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-13.jpg", description: "TOUCH-SCREEN 2021г.", link: "", + tabs:[projectTabs[1], projectTabs[3], projectTabs[6]] }, { id: 14, - title: 'ООО "CyberLympha" 2021г.', + title: 'ООО "CyberLympha"', imagePath: "/images/galleryProjects/gallery-projects-14.jpg", - description: "Мобильная AR игра", + description: "Мобильная AR игра 2021г.", link: "", + tabs:[projectTabs[2], projectTabs[3], projectTabs[5]] }, { id: 15, @@ -119,6 +129,7 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-15.jpg", description: "", link: "", + tabs:[projectTabs[2], projectTabs[5]] }, { id: 16, @@ -126,6 +137,7 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-16.jpg", description: "Интерактивный макет 2021г.", link: "", + tabs:[projectTabs[3], projectTabs[6]] }, { id: 17, @@ -133,6 +145,7 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-17.jpg", description: "Виртуальная выставка 2021г.", link: "", + tabs:[projectTabs[4]], }, { id: 18, @@ -140,6 +153,7 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-18.jpg", description: "Интерактивная онлайн выставка 2021г.", link: "", + tabs:[projectTabs[4]], }, { id: 19, @@ -147,6 +161,7 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-19.jpg", description: "Интерактивная онлайн выставка 2020г.", link: "", + tabs:[projectTabs[4]], }, { id: 20, @@ -154,6 +169,207 @@ const projectTabs: ProjectTab[] = [ imagePath: "/images/galleryProjects/gallery-projects-20.jpg", description: "Интерактивный конфигуратор квартиры 2021г.", link: "", + tabs:[projectTabs[3], projectTabs[6]], + }, + { + id: 21, + title: "Приложение для World Skills Russia МежВУЗ", + imagePath: "/images/galleryProjects/gallery-projects-21.jpg", + description: "Мобильное приложение 2021г.", + link: "", + tabs:[projectTabs[3], projectTabs[5]], + }, + { + id: 22, + title: "Вертолет КА-52", + imagePath: "/images/galleryProjects/gallery-projects-22.jpg", + description: "2020г.", + link: "", + tabs:[projectTabs[3]], + }, + { + id: 23, + tabs:[projectTabs[0]], + title: "Cимулятор погрузчика ричстакера SANY SRSC45C30", + imagePath: "/images/galleryProjects/gallery-projects-23.jpg", + description: "Интерактивное приложение - тренажёр 2020г.", + link: "", + }, + { + id: 24, + tabs:[projectTabs[1], projectTabs[3], projectTabs[6]], + title: 'ЖК "УРАЛЬСКИЙ" для ГК Эфес г. Екатеринбург', + imagePath: "/images/galleryProjects/gallery-projects-24.jpg", + description: 'Интерактивный макет 2020г.', + link: "", + }, + { + id: 25, + tabs:[projectTabs[1]], + title: 'Сборка- разборка вертолетного двигателя', + imagePath: "/images/galleryProjects/gallery-projects-25.jpg", + description: 'Интерактивный VR тренажер 2020г.', + link: "", + }, + { + id: 26, + tabs:[projectTabs[1], projectTabs[3], projectTabs[6]], + title: 'ЖК "Атмосфера" Фабрика Атмосферы г.Брянск', + imagePath: "/images/galleryProjects/gallery-projects-26.jpg", + description: 'Интерактивная 3D презентация для продажи недвижимости 2019г.', + link: "", + }, + { + id: 27, + tabs:[projectTabs[1],projectTabs[3]], + title: 'L 410 NG Aircraft', + imagePath: "/images/galleryProjects/gallery-projects-27.jpg", + description: 'Интерактивная презентация самолёта 2019г.', + link: "", + }, + { + id: 28, + tabs:[projectTabs[3]], + title: 'Самолет СУ-35', + imagePath: "/images/galleryProjects/gallery-projects-28.jpg", + description: 'Интерактивная презентация 2020г.', + link: "", + }, + { + id: 29, + tabs:[projectTabs[3]], + title: 'Военнный корабль Удалой', + imagePath: "/images/galleryProjects/gallery-projects-29.jpg", + description: 'Интерактивная презентация 2019г.', + link: "", + }, + { + id: 30, + tabs:[projectTabs[3], projectTabs[1]], + title: 'Танковый двигатель В-2', + imagePath: "/images/galleryProjects/gallery-projects-30.jpg", + description: 'Интерактивный VR тренажер 2019г.', + link: "", + }, + { + id: 31, + tabs:[projectTabs[3]], + title: 'Военный автомобиль Тигр', + imagePath: "/images/galleryProjects/gallery-projects-31.jpg", + description: 'Интерактивная презентация 2019г.', + link: "", + }, + { + id: 32, + tabs:[projectTabs[3]], + title: 'АО "Уралхиммаш"', + imagePath: "/images/galleryProjects/gallery-projects-32.jpg", + description: '3D презентация линии производства г.2019', + link: "", + }, + { + id: 33, + tabs:[projectTabs[3], projectTabs[5], projectTabs[6]], + title: 'ЖК "Рудный" г.Екатеринбург', + imagePath: "/images/galleryProjects/gallery-projects-33.jpg", + description: 'Мобильное приложение для продажи недвижимости 2017г.', + link: "", + }, + { + id: 34, + tabs:[projectTabs[2], projectTabs[5], projectTabs[6]], + title: 'ЖК "Солнечный" для ГК Брусника г.Екатеринбург', + imagePath: "/images/galleryProjects/gallery-projects-34.jpg", + description: 'AR дополненная реальность 2019г.', + link: "", + }, + { + id: 35, + tabs:[projectTabs[3], projectTabs[5], projectTabs[6]], + title: 'ЖК "Тринити" для АН "НКС" г. Екатеринбург', + imagePath: "/images/galleryProjects/gallery-projects-35.jpg", + description: 'Интерактивная 3д презентация для продажи недвижимости 2020г.', + link: "", + }, + { + id: 36, + tabs:[projectTabs[3], projectTabs[5], projectTabs[6]], + title: 'ЖК "Дом на Опалихинской" г.Екатеринбург', + imagePath: "/images/galleryProjects/gallery-projects-36.jpg", + description: 'Интерактивная 3D презентация для продажи недвижимости 2017г.', + link: "", + }, + { + id: 37, + tabs:[projectTabs[1], projectTabs[3], projectTabs[6]], + title: 'ЖК "СВОЙ КРУГ" для Синара девелопмент г.Екатеринбург', + imagePath: "/images/galleryProjects/gallery-projects-37.jpg", + description: 'Интерактивная 3д презентация для продажи недвижимости 2016г.', + link: "", + }, + { + id: 38, + tabs:[projectTabs[3]], + title: 'МЦОД РФЯЦ-ВНИИТФ РОСАТОМ', + imagePath: "/images/galleryProjects/gallery-projects-38.jpg", + description: 'Мультимедийная презентация 2018г.', + link: "", + }, + { + id: 39, + tabs:[projectTabs[3]], + title: 'ГК "ПИК- Индустрия" Презентация цеха мелкоштучных изделий', + imagePath: "/images/galleryProjects/gallery-projects-39.jpg", + description: 'Интерактивная презентация 2017г.', + link: "", + }, + { + id: 40, + tabs:[projectTabs[1],projectTabs[3], projectTabs[6]], + title: 'ЖК "Миллениум" г.Екатеринбург', + imagePath: "/images/galleryProjects/gallery-projects-40.jpg", + description: 'Интерактивная 3D презентация для продажи недвижимости 2018г.', + link: "", + }, + { + id: 41, + tabs:[projectTabs[3]], + title: 'Пирамида для РФЯЦ-ВНИИТФ РОCАТОМ', + imagePath: "/images/galleryProjects/gallery-projects-41.jpg", + description: 'Интерактивная презентация с голографической пирамидой 2018г.', + link: "", + }, + { + id: 42, + tabs:[projectTabs[3], projectTabs[6]], + title: 'ЖК "Электродом" КОРТРОС г. Екатеринбург', + imagePath: "/images/galleryProjects/gallery-projects-42.jpg", + description: 'Интерактивная 3D презентация для демонстрации системы рекуперации 2016г.', + link: "", + }, + { + id: 43, + tabs:[projectTabs[3], projectTabs[6]], + title: 'ЖК "Александровский" г.Екатеринбург', + imagePath: "/images/galleryProjects/gallery-projects-43.jpg", + description: 'Интерактивная 3D презентация для продажи недвижимости 2015г.', + link: "", + }, + { + id: 44, + tabs:[projectTabs[0]], + title: '3D Интерактивная инструкция по сборке агрегата', + imagePath: "/images/galleryProjects/gallery-projects-44.jpg", + description: '2015г.', + link: "", + }, + { + id: 45, + tabs:[projectTabs[3], projectTabs[5]], + title: 'Техноград ВДНХ', + imagePath: "/images/galleryProjects/gallery-projects-45.jpg", + description: '2017г.', + link: "", }, ]; diff --git a/client/src/icons/ArrowCarouselIcon.tsx b/client/src/icons/ArrowCarouselIcon.tsx new file mode 100644 index 0000000..4275e3d --- /dev/null +++ b/client/src/icons/ArrowCarouselIcon.tsx @@ -0,0 +1,28 @@ +type ArrowCarouselIconProps = { + isLeft?: boolean; + className?: string; +}; + +const ArrowCarouselIcon = ({ isLeft, className }: ArrowCarouselIconProps) => { + return ( + + + + ); +}; + +export default ArrowCarouselIcon; diff --git a/client/src/icons/CrossCircleIcon.tsx b/client/src/icons/CrossCircleIcon.tsx index a909f08..1fe7072 100644 --- a/client/src/icons/CrossCircleIcon.tsx +++ b/client/src/icons/CrossCircleIcon.tsx @@ -18,10 +18,10 @@ const CrossCircleIcon = ({ isOpen }: CrossCircleIconProps) => { xmlns="http://www.w3.org/2000/svg" > diff --git a/client/src/icons/ScrollToTopIcon.tsx b/client/src/icons/ScrollToTopIcon.tsx index 1c681b2..c7bd9eb 100644 --- a/client/src/icons/ScrollToTopIcon.tsx +++ b/client/src/icons/ScrollToTopIcon.tsx @@ -8,7 +8,7 @@ const ScrollToTopIcon = () => { width="50px" height="50px" viewBox="0 0 48 48" - enable-background="new 0 0 48 48" + enableBackground="new 0 0 48 48" > , }, + { + path: "/clients", + element: , + }, ], }, ]); diff --git a/client/src/pages/ClientsPage/ClientsPage.tsx b/client/src/pages/ClientsPage/ClientsPage.tsx new file mode 100644 index 0000000..cf6fe99 --- /dev/null +++ b/client/src/pages/ClientsPage/ClientsPage.tsx @@ -0,0 +1,22 @@ +import HeaderTitle from "../../components/HeaderTitle"; +import ClientsContainer from "../../components/ClientsPage/ClientsContainer"; +import ClientsPageCarousel from "../../components/ClientsPage/ClientsPageCarousel"; + +const ClientsPage = () => { + console.log("Array.from(5)"); + return ( + <> +
+ + + +
+ + ); +}; + +export default ClientsPage; diff --git a/client/src/types.ts b/client/src/types.ts index 7560f2e..916d985 100644 --- a/client/src/types.ts +++ b/client/src/types.ts @@ -24,7 +24,7 @@ type ProjectType = { imagePath: string; description: string; link: string; - tab?: ProjectTab; + tabs: ProjectTab[]; }; type ProjectTab = { @@ -32,4 +32,9 @@ type ProjectTab = { title: string; }; -export type {ProjectTab, AccordionType, AdvantageType, DirectionImageType, ProjectType} \ No newline at end of file +type Image = { + id: number; + image: string; +} + +export type {ProjectTab, AccordionType, AdvantageType, DirectionImageType, ProjectType, Image} \ No newline at end of file