diff --git a/client/src/App.tsx b/client/src/App.tsx index db3a069..7ddf554 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -48,6 +48,13 @@ function App() { phone, }, }); + + setFullname(""); + setEmail(""); + setCompany(""); + setPhone(""); + + alert("Заявка отправлена!"); } useEffect(() => { @@ -62,7 +69,7 @@ function App() {
@@ -102,12 +109,12 @@ function App() {
-
+
-
+

@@ -120,13 +127,13 @@ function App() {

-

+

10

что-то на умном

-

+

26

@@ -135,7 +142,7 @@ function App() {

-

+

32%

@@ -144,7 +151,7 @@ function App() {

-

+

12%

@@ -158,7 +165,7 @@ function App() {

-
+
@@ -175,7 +182,7 @@ function App() {
-
+
@@ -207,7 +214,7 @@ function App() {
-
+
@@ -425,7 +432,7 @@ function App() {
-
+

@@ -469,8 +476,7 @@ function App() {

- -
+
@@ -497,8 +503,7 @@ function App() {
- -
+

@@ -603,8 +608,8 @@ function App() {

-
-
+
+

diff --git a/client/src/components/Calc.tsx b/client/src/components/Calc.tsx index 33d69b6..7c2bb8a 100644 --- a/client/src/components/Calc.tsx +++ b/client/src/components/Calc.tsx @@ -115,8 +115,8 @@ function Calc() { жилья в комплексе

- {avgAreaInComplex} - м2 + {avgAreaInComplex} + м2

@@ -127,10 +127,10 @@ function Calc() { квартиры

- + {averageApartmentArea} - м2 + м2

@@ -141,8 +141,8 @@ function Calc() { одного м2

- {averagePrice} - тыс. р. + {averagePrice} + тыс. р.

diff --git a/client/src/components/Slider/Slide.tsx b/client/src/components/Slider/Slide.tsx new file mode 100644 index 0000000..cf036e1 --- /dev/null +++ b/client/src/components/Slider/Slide.tsx @@ -0,0 +1,26 @@ +import React from "react"; + +interface ISlideContainer { + title: string; + body: string; + image: string; +} + +function Slide({ title, body, image }: ISlideContainer) { + return ( +
+
+

+

{body}

+
+
+ +
+
+ ); +} + +export default Slide; diff --git a/client/src/components/Slider/Slide1.tsx b/client/src/components/Slider/Slide1.tsx deleted file mode 100644 index 4462c4a..0000000 --- a/client/src/components/Slider/Slide1.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from "react"; -import SlideContainer from "./SlideContainer"; - -function Slide1() { - return ( - -
-

- Интеграция -
с CRM - системой -

-

- Приложение передает информацию о клиенте в CRM-систему застройщика и - получает актуальную информацию по ценам и статусам квартир -

-
-
- -
-
- ); -} - -export default Slide1; diff --git a/client/src/components/Slider/Slide2.tsx b/client/src/components/Slider/Slide2.tsx deleted file mode 100644 index 85c6c8c..0000000 --- a/client/src/components/Slider/Slide2.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import SlideContainer from "./SlideContainer"; - -function Slide2() { - return ( - -
-

- Вся инфрастуктура -
- на одном экране -

-

- Возможность оценить инфраструктуру района покажет важные для клиента - точки интереса и время, за которое он сможет до них дойти -

-
-
- -
-
- ); -} - -export default Slide2; diff --git a/client/src/components/Slider/Slide3.tsx b/client/src/components/Slider/Slide3.tsx deleted file mode 100644 index c15885f..0000000 --- a/client/src/components/Slider/Slide3.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import React from "react"; -import SlideContainer from "./SlideContainer"; - -function Slide3() { - return ( - -
-

- Параметрический -
- поиск квартир -

-

- Фильтр позволит отметить конкретные преимущества, определить - количество комнат, желаемый этаж, цену, и получить выборку подходящих - вариантов -

-
-
- -
-
- ); -} - -export default Slide3; diff --git a/client/src/components/Slider/Slide4.tsx b/client/src/components/Slider/Slide4.tsx deleted file mode 100644 index 04da34d..0000000 --- a/client/src/components/Slider/Slide4.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import SlideContainer from "./SlideContainer"; - -function Slide4() { - return ( - -
-

- Виртуальный тур -
- по жилому комплексу -

-

- Клиент лично оценит угол инсоляции, малые архитектурные формы и - ландшафт, перемещаясь по комплексу с помощью тапа -

-
-
- -
-
- ); -} - -export default Slide4; diff --git a/client/src/components/Slider/Slide5.tsx b/client/src/components/Slider/Slide5.tsx deleted file mode 100644 index 8f23f43..0000000 --- a/client/src/components/Slider/Slide5.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from "react"; -import SlideContainer from "./SlideContainer"; - -function Slide5() { - return ( - -
-

- Конфигуратор интерьера -

-

- Клиент может свободно выбирать мебель и дизайн с помощью конфигуратора - интерьера. Возможно выбрать стиль всей квартиры или изменить отдельные - детали -

-
-
- -
-
- ); -} - -export default Slide5; diff --git a/client/src/components/Slider/Slide6.tsx b/client/src/components/Slider/Slide6.tsx deleted file mode 100644 index 81f77a4..0000000 --- a/client/src/components/Slider/Slide6.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import SlideContainer from "./SlideContainer"; - -function Slide6() { - return ( - -
-

- Формирование -
- вишлиста -

-

- Клиент может добавить варианты квартир в избранное, сравнить их между - собой по основным параметрам и выбрать свою будущую квартиру -

-
-
- -
-
- ); -} - -export default Slide6; diff --git a/client/src/components/Slider/Slide7.tsx b/client/src/components/Slider/Slide7.tsx deleted file mode 100644 index 5246aca..0000000 --- a/client/src/components/Slider/Slide7.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import SlideContainer from "./SlideContainer"; - -function Slide7() { - return ( - -
-

- Любой рендер -
- за несколько секунд -

-

- Когда для рекламы вам понадобится любой объект с любого ракурса, - просто сделайте фотографию внутри презентации -

-
-
- -
-
- ); -} - -export default Slide7; diff --git a/client/src/components/Slider/Slide8.tsx b/client/src/components/Slider/Slide8.tsx deleted file mode 100644 index 6aa1797..0000000 --- a/client/src/components/Slider/Slide8.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import SlideContainer from "./SlideContainer"; - -function Slide8() { - return ( - -
-

- Отправка коммерческого -
- предложения -

-

- Коммерческое предложение с выбранными квартирами может быть отправлено - клиенту на почту или распечатано и отдано лично в руки -

-
-
- -
-
- ); -} - -export default Slide8; diff --git a/client/src/components/Slider/SlideContainer.tsx b/client/src/components/Slider/SlideContainer.tsx deleted file mode 100644 index 5048fe9..0000000 --- a/client/src/components/Slider/SlideContainer.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import React, { ReactNode } from "react"; -import { SwiperSlide } from "swiper/react"; - -interface ISlideContainer { - children: ReactNode; -} - -function SlideContainer({ children }: ISlideContainer) { - return
{children}
; -} - -export default SlideContainer; diff --git a/client/src/components/Slider/Slider.tsx b/client/src/components/Slider/Slider.tsx index f54565b..9f724e2 100644 --- a/client/src/components/Slider/Slider.tsx +++ b/client/src/components/Slider/Slider.tsx @@ -1,19 +1,12 @@ import React, { useRef, useState } from "react"; import { Navigation, Pagination, Scrollbar, Autoplay } from "swiper"; import { Swiper, SwiperSlide } from "swiper/react"; +import Slide from "./Slide"; import "swiper/css"; import "swiper/css/navigation"; import "swiper/css/pagination"; import "swiper/css/scrollbar"; import "swiper/css/autoplay"; -import Slide1 from "./Slide1"; -import Slide2 from "./Slide2"; -import Slide3 from "./Slide3"; -import Slide4 from "./Slide4"; -import Slide5 from "./Slide5"; -import Slide6 from "./Slide6"; -import Slide7 from "./Slide7"; -import Slide8 from "./Slide8"; function Slider() { const [_, setInit] = useState(); @@ -38,28 +31,76 @@ function Slider() { className="w-[calc(100%+64px)]" > - + с CRM - системой"} + body={ + "Приложение передает информацию о клиенте в CRM-систему застройщика и получает актуальную информацию по ценам и статусам квартир" + } + image={"/images/slider/slide1.png"} + /> - + на одном экране"} + body={ + "Возможность оценить инфраструктуру района покажет важные для клиента точки интереса и время, за которое он сможет до них дойти" + } + image={"/images/slider/slide2.jpg"} + /> - + поиск квартир"} + body={ + "Фильтр позволит отметить конкретные преимущества, определить количество комнат, желаемый этаж, цену, и получить выборку подходящих вариантов" + } + image={"/images/slider/slide3.png"} + /> - + по жилому комплексу"} + body={ + "Клиент лично оценит угол инсоляции, малые архитектурные формы и ландшафт, перемещаясь по комплексу с помощью тапа" + } + image={"/images/slider/slide4.jpg"} + /> - + - + вишлиста"} + body={ + "Клиент может добавить варианты квартир в избранное, сравнить их между собой по основным параметрам и выбрать свою будущую квартиру" + } + image={"/images/slider/slide6.png"} + /> - + за несколько секунд"} + body={ + "Когда для рекламы вам понадобится любой объект с любого ракурса, просто сделайте фотографию внутри презентации" + } + image={"/images/slider/slide7.jpg"} + /> - + предложения"} + body={ + "Коммерческое предложение с выбранными квартирами может быть отправлено клиенту на почту или распечатано и отдано лично в руки" + } + image={"/images/slider/slide8.png"} + />
diff --git a/client/src/main.tsx b/client/src/main.tsx index dd18b86..ba51193 100644 --- a/client/src/main.tsx +++ b/client/src/main.tsx @@ -2,7 +2,6 @@ import React from 'react' import ReactDOM from 'react-dom/client' import App from './App' import './index.css' -import AppTest from './AppTest' ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( // diff --git a/client/src/utils/api.ts b/client/src/utils/api.ts index 2802f57..a64ad2f 100644 --- a/client/src/utils/api.ts +++ b/client/src/utils/api.ts @@ -1,7 +1,7 @@ import ky from "ky"; const api = ky.create({ - prefixUrl: "http://localhost:3003", + prefixUrl: "/api", }); export default api; diff --git a/client/vite.config.ts b/client/vite.config.ts index e4f2a62..9fed1d8 100644 --- a/client/vite.config.ts +++ b/client/vite.config.ts @@ -6,8 +6,22 @@ export default defineConfig({ plugins: [react()], server: { port: 3002, + proxy: { + "/api": { + target: "http://127.0.0.1:3003", + changeOrigin: true, + rewrite: (path) => path.replace(/^\/api/, ""), + }, + }, }, preview: { port: 3002, + proxy: { + "/api": { + target: "http://127.0.0.1:3003", + changeOrigin: true, + rewrite: (path) => path.replace(/^\/api/, ""), + }, + }, }, });