From d7564182edabd64174124cbb0cbd6b03fbff1401 Mon Sep 17 00:00:00 2001 From: Lanskikh Date: Mon, 2 Sep 2024 13:42:09 +0500 Subject: [PATCH] added stats, slider with stends, projects, form, footer, etc --- .env | 1 + package.json | 4 + src/Layout/Footer.tsx | 65 ++++++- src/Layout/Header.tsx | 4 +- src/Layout/index.tsx | 2 + src/api/index.ts | 5 + src/assets/projects/ivolga.png | Bin 0 -> 1809317 bytes src/assets/projects/majordom.png | Bin 0 -> 1512365 bytes src/assets/projects/majordom2.png | Bin 0 -> 1601224 bytes src/assets/projects/sochi.png | Bin 0 -> 1778592 bytes src/assets/projects/warship.png | Bin 0 -> 4565794 bytes src/assets/stands/1.png | Bin 0 -> 3205147 bytes src/assets/stands/2.png | Bin 0 -> 1482153 bytes src/assets/stands/3.png | Bin 0 -> 2270839 bytes src/components/Feedback.tsx | 69 +++++++ src/components/Form.tsx | 233 +++++++++++++++++++++++ src/components/InfoCollecting.tsx | 12 ++ src/components/Projects.tsx | 40 ++++ src/components/Promotion.tsx | 77 ++++---- src/components/Showreel.tsx | 2 +- src/components/Stands.tsx | 48 +++++ src/components/Statistics.tsx | 131 +++++++++++++ src/components/icons/ArrowLeftIcon.tsx | 20 ++ src/components/icons/ArrowRightIcon.tsx | 20 ++ src/components/icons/ChevronDownIcon.tsx | 20 ++ src/components/icons/ChevronUpIcon.tsx | 18 ++ src/components/icons/LoaderIcon.tsx | 32 ++++ src/components/icons/MailIcon.tsx | 22 +++ src/components/icons/PhoneIcon.tsx | 18 ++ src/components/icons/SendIcon.tsx | 19 ++ src/components/icons/TelegramIcon.tsx | 20 ++ src/components/icons/VKIcon.tsx | 20 ++ src/components/icons/YoutubeIcon.tsx | 20 ++ src/components/ui/SliderControls.tsx | 74 +++++++ src/components/ui/SliderWithScaling.tsx | 167 ++++++++++++++++ src/consts/phoneCodes.ts | 3 + src/consts/projects.ts | 31 +++ src/consts/stands.ts | 22 +++ src/index.css | 36 +++- src/pages/MainPage.tsx | 8 + src/types/IProject.ts | 5 + src/types/IStand.ts | 6 + src/types/PhoneCode.ts | 1 + yarn.lock | 41 +++- 44 files changed, 1271 insertions(+), 45 deletions(-) create mode 100644 .env create mode 100644 src/api/index.ts create mode 100644 src/assets/projects/ivolga.png create mode 100644 src/assets/projects/majordom.png create mode 100644 src/assets/projects/majordom2.png create mode 100644 src/assets/projects/sochi.png create mode 100644 src/assets/projects/warship.png create mode 100644 src/assets/stands/1.png create mode 100644 src/assets/stands/2.png create mode 100644 src/assets/stands/3.png create mode 100644 src/components/Feedback.tsx create mode 100644 src/components/Form.tsx create mode 100644 src/components/InfoCollecting.tsx create mode 100644 src/components/Projects.tsx create mode 100644 src/components/Stands.tsx create mode 100644 src/components/Statistics.tsx create mode 100644 src/components/icons/ArrowLeftIcon.tsx create mode 100644 src/components/icons/ArrowRightIcon.tsx create mode 100644 src/components/icons/ChevronDownIcon.tsx create mode 100644 src/components/icons/ChevronUpIcon.tsx create mode 100644 src/components/icons/LoaderIcon.tsx create mode 100644 src/components/icons/MailIcon.tsx create mode 100644 src/components/icons/PhoneIcon.tsx create mode 100644 src/components/icons/SendIcon.tsx create mode 100644 src/components/icons/TelegramIcon.tsx create mode 100644 src/components/icons/VKIcon.tsx create mode 100644 src/components/icons/YoutubeIcon.tsx create mode 100644 src/components/ui/SliderControls.tsx create mode 100644 src/components/ui/SliderWithScaling.tsx create mode 100644 src/consts/phoneCodes.ts create mode 100644 src/consts/projects.ts create mode 100644 src/consts/stands.ts create mode 100644 src/types/IProject.ts create mode 100644 src/types/IStand.ts create mode 100644 src/types/PhoneCode.ts diff --git a/.env b/.env new file mode 100644 index 0000000..13267a3 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +VITE_PUBLIC_API_URL=https://graff.estate/api \ No newline at end of file diff --git a/package.json b/package.json index 8e234e9..343fe01 100644 --- a/package.json +++ b/package.json @@ -11,15 +11,19 @@ }, "dependencies": { "framer-motion": "^11.3.31", + "ky": "^1.7.1", "react": "^18.3.1", "react-dom": "^18.3.1", + "react-input-mask": "^2.0.4", "react-router-dom": "^6.26.1", + "react-swipeable": "^7.0.1", "usehooks-ts": "^3.1.0" }, "devDependencies": { "@eslint/js": "^9.9.0", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", + "@types/react-input-mask": "^3.0.5", "@vitejs/plugin-react": "^4.3.1", "autoprefixer": "^10.4.20", "eslint": "^9.9.0", diff --git a/src/Layout/Footer.tsx b/src/Layout/Footer.tsx index 5364b3b..4629e34 100644 --- a/src/Layout/Footer.tsx +++ b/src/Layout/Footer.tsx @@ -1,3 +1,66 @@ +import { Logo } from '../components/icons/Logo'; +import { Link } from 'react-router-dom'; + export function Footer() { - return ; + return ( + + ); +} + +function Contact({ + text, + className = '', + type, +}: { + className?: string; + text: string; + type: 'email' | 'phone'; +}) { + return ( +
+ + {text} + +
+ ); } diff --git a/src/Layout/Header.tsx b/src/Layout/Header.tsx index 4ed9de8..4267ea0 100644 --- a/src/Layout/Header.tsx +++ b/src/Layout/Header.tsx @@ -19,7 +19,7 @@ export function Header() { ))} - @@ -29,7 +29,7 @@ export function Header() { function HashLink({ path, text }: { path: string; text: string }) { return ( {text} diff --git a/src/Layout/index.tsx b/src/Layout/index.tsx index 3d5b066..1d7da1f 100644 --- a/src/Layout/index.tsx +++ b/src/Layout/index.tsx @@ -1,6 +1,7 @@ import { Outlet } from 'react-router-dom'; import { Footer } from './Footer'; import { Header } from './Header'; +import { Feedback } from '../components/Feedback'; export function Layout() { return ( @@ -9,6 +10,7 @@ export function Layout() {
+