diff --git a/client/public/images/cards/card_1.jpg b/client/public/images/cards/1.jpg similarity index 100% rename from client/public/images/cards/card_1.jpg rename to client/public/images/cards/1.jpg diff --git a/client/public/images/cards/card_10.jpg b/client/public/images/cards/10.jpg similarity index 100% rename from client/public/images/cards/card_10.jpg rename to client/public/images/cards/10.jpg diff --git a/client/public/images/cards/card_11.jpg b/client/public/images/cards/11.jpg similarity index 100% rename from client/public/images/cards/card_11.jpg rename to client/public/images/cards/11.jpg diff --git a/client/public/images/cards/card_12.jpg b/client/public/images/cards/12.jpg similarity index 100% rename from client/public/images/cards/card_12.jpg rename to client/public/images/cards/12.jpg diff --git a/client/public/images/cards/card_13.jpg b/client/public/images/cards/13.jpg similarity index 100% rename from client/public/images/cards/card_13.jpg rename to client/public/images/cards/13.jpg diff --git a/client/public/images/cards/card_2.jpg b/client/public/images/cards/2.jpg similarity index 100% rename from client/public/images/cards/card_2.jpg rename to client/public/images/cards/2.jpg diff --git a/client/public/images/cards/card_3.jpg b/client/public/images/cards/3.jpg similarity index 100% rename from client/public/images/cards/card_3.jpg rename to client/public/images/cards/3.jpg diff --git a/client/public/images/cards/card_4.jpg b/client/public/images/cards/4.jpg similarity index 100% rename from client/public/images/cards/card_4.jpg rename to client/public/images/cards/4.jpg diff --git a/client/public/images/cards/card_5.jpg b/client/public/images/cards/5.jpg similarity index 100% rename from client/public/images/cards/card_5.jpg rename to client/public/images/cards/5.jpg diff --git a/client/public/images/cards/card_6.jpg b/client/public/images/cards/6.jpg similarity index 100% rename from client/public/images/cards/card_6.jpg rename to client/public/images/cards/6.jpg diff --git a/client/public/images/cards/card_7.jpg b/client/public/images/cards/7.jpg similarity index 100% rename from client/public/images/cards/card_7.jpg rename to client/public/images/cards/7.jpg diff --git a/client/public/images/cards/card_8.jpg b/client/public/images/cards/8.jpg similarity index 100% rename from client/public/images/cards/card_8.jpg rename to client/public/images/cards/8.jpg diff --git a/client/public/images/cards/card_9.jpg b/client/public/images/cards/9.jpg similarity index 100% rename from client/public/images/cards/card_9.jpg rename to client/public/images/cards/9.jpg diff --git a/client/public/images/mockup.png b/client/public/images/mockup.png new file mode 100644 index 0000000..bd47aca Binary files /dev/null and b/client/public/images/mockup.png differ diff --git a/client/src/App.tsx b/client/src/App.tsx index 1e5a2ce..5060471 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -15,6 +15,19 @@ import Map2 from "./components/Map2"; import FeatureCard from "./components/FeatureCard"; function App() { + function getAccel() { + DeviceMotionEvent.requestPermission().then((response) => { + if (response == "granted") { + console.log("accelerometer permission granted"); + alert("1"); + } + }); + } + + useEffect(() => { + getAccel(); + }, []); + const parallaxRef = useRef(null); const [fullname, setFullname] = useState(""); @@ -46,7 +59,7 @@ function App() { if (featureImagesContainer.current) { featureImagesContainer.current.insertAdjacentHTML( "beforeend", - `
` + `
` ); if (featureImagesContainer.current.children.length > 1) { @@ -116,7 +129,7 @@ function App() { }, []); return ( -
+
-
-
+
+
+ +
+ +
Анализируем @@ -368,7 +385,9 @@ function App() {
-

Конверсия менеджеров в брони

+

+ Конверсия менеджеров в брони +

@@ -401,70 +420,221 @@ function App() {
-
2
-
3
+ +
+

+ Популярные типы квартир, % +

+
+ +
+
+
+

Студии

+
+ +
+
+

1-к. квартиры

+
+ +
+
+

2-к. квартиры

+
+ +
+
+

3-к. квартиры

+
+ +
+
+

4-к. квартиры

+
+
+
+
+ +
+

+ Воронка продаж +

+
+
+
+
+ Сеансы +
+
+ 100% +
+ +
+
+
+ В избранное +
+
+ + 93,47% + +
+ +
+
+
+ Брони +
+
+ + 45,68% + +
+ +
+
+
+ Продажи +
+
+ + 29,13% + +
+
+
-
1
-
2
-
3
-
4
+
+
+

12

+

минут

+
+

Среднее время сеанса

+
+ +
+
+

856

+ {/*

минут

*/} +
+

+ Коммерческих предложений сформировано +

+
+ +
+
+

12,41%

+ {/*

минут

*/} +
+

Конверсия из сеанса в бронь

+
+ +
+
+

132,1

+

млн. р.

+
+

Получено через Graff.estate

+
-
-
-
-
-

+

+
+ +
+
+
+ +
+ +
+
+

Инструмент продаж поможет вам продавать удаленно

-
-

- Высокий уровень графики и полное погружение покупателя в - процесс выбора квартиры. -

-

- Покажите все преимущества вашего жилого комплекса клиенту из - любого конца мира. Местоположение и устройство значения не - имеют. Нужен только интернет. -

-
- +

+ Покажите все преимущества вашего жилого комплекса клиенту из + любого конца мира. Местоположение и устройство значения не + имеют. +
+ Нужен только интернет. +

+

+ Высокий уровень графики и полное погружение покупателя +
в процесс выбора квартиры. +

-
- +
+ + +
-
+
-
- Можем оценить +
+ Оцените
эффективность
@@ -472,9 +642,9 @@ function App() {
инструмента продаж
-
+
Мы изучили отраслевую аналитику на рынке продаж новых квартир и - на основе данных собрали калькулятор эффективности продукта + на основе данных собрали калькулятор эффективности продукта.

Когда девелопер строит жилой комплекс используя проектное @@ -487,192 +657,22 @@ function App() {
-
-
-
-

- Релевантный опыт -

-
-
-
- {mapCity === "Тюмень" && ( - - {mapCity} -
-
- )} - {mapCity === "Екатеринбург" && ( - - {mapCity} -
-
- )} - {mapCity === "Санкт-Петербург" && ( - - {mapCity} -
-
- )} - {mapCity === "Брянск" && ( - - {mapCity} -
-
- )} - {mapCity === "Нижний Тагил" && ( - - {mapCity} -
-
- )} -
-
- handleClickComplexCard("Тюмень")} - /> - handleClickComplexCard("Екатеринбург")} - /> - {/* */} - handleClickComplexCard("Тюмень")} - /> - handleClickComplexCard("Тюмень")} - /> - {isShowMoreComplexCards && ( - <> - - handleClickComplexCard("Санкт-Петербург") - } - /> - handleClickComplexCard("Екатеринбург")} - /> - handleClickComplexCard("Екатеринбург")} - /> - handleClickComplexCard("Брянск")} - /> - handleClickComplexCard("Екатеринбург")} - /> - handleClickComplexCard("Екатеринбург")} - /> - handleClickComplexCard("Тюмень")} - /> - handleClickComplexCard("Нижний Тагил")} - /> - - )} - {!isShowMoreComplexCards && ( - - )} +
+
+
+
+
+

ЖК «Life Резиденция»

+

Россия, Тюмень.

+
diff --git a/client/src/components/Calc.tsx b/client/src/components/Calc.tsx index b5f95e1..2341dc6 100644 --- a/client/src/components/Calc.tsx +++ b/client/src/components/Calc.tsx @@ -145,11 +145,12 @@ function Calc() { }, []); return ( -
-
-

+

+
+

Данные по региону

+

Регион

selectRegion(option.id)} />
-
-
+ +
+

Средняя площадь
@@ -173,7 +175,7 @@ function Calc() {

-
+

Средняя площадь
@@ -187,7 +189,7 @@ function Calc() {

-
+

Средняя стоимость
@@ -205,17 +207,22 @@ function Calc() { Установлены усредненные показатели по региону
Источник:{" "} - + наш.дом.рф

-
-

+

+

Статистика продаж

+

Очных консультаций в месяц @@ -223,13 +230,13 @@ function Calc() {

-
+
@@ -237,7 +244,7 @@ function Calc() { 100%
-
+
{consultsPerMonth}
@@ -251,7 +258,7 @@ function Calc() { {!isEnabled ? "30" : "48"}%
-
+
{!isEnabled ? "10" : "22"}%
-
+
-
-

+

+

Результаты расчета

-
-
-

+ +

+
+

Срок реализации

+
+
+

+ {implementationTime} +

+

{implementationTimeCase}

+
+ {isEnabled && ( +

+ На{" "} + + {diffImplementationTime} {diffImplementationTimeCase} + {" "} + вы сократили срок реализации проекта +

+ )} +
+
+ +
+

Месячный доход

+
+
+

+ {profitPerMonth} +

+

млн. р.

+
+ {isEnabled && ( +

+ На{" "} + + {diffProfitPerMonth} млн. р. + {" "} + в месяц вы заработали больше +

+ )} +
+
+
+ +
+ +
+ + {/*
+
+

Срок реализации

@@ -324,7 +400,7 @@ function Calc() {
-

+

Месячный доход

@@ -355,8 +431,9 @@ function Calc() { )}
-
-
+
*/} + + {/*
-
+
*/}
); diff --git a/client/src/components/PieChart/PieChart.css b/client/src/components/PieChart/PieChart.css index 0015c1f..4ef68e2 100644 --- a/client/src/components/PieChart/PieChart.css +++ b/client/src/components/PieChart/PieChart.css @@ -9,9 +9,9 @@ #7a31c3 0, #7a31c3 36%, #fb57f4 0, - #fb57f4 42%, + #fb57f4 43%, #8742f8 0, - #8742f8 52%, + #8742f8 53%, #d375ff 0, #d375ff 70%, #798fff 0, diff --git a/client/src/components/PieChart/PieChart.tsx b/client/src/components/PieChart/PieChart.tsx index 71480ff..a0179a8 100644 --- a/client/src/components/PieChart/PieChart.tsx +++ b/client/src/components/PieChart/PieChart.tsx @@ -3,10 +3,10 @@ import "./PieChart.css"; function PieChart() { return ( -
+
36,27% - 6,22% - 9,95% + 6,22% + 9,95% 17,93% 29,64%
diff --git a/client/src/components/SearchableSelect.tsx b/client/src/components/SearchableSelect.tsx index f6a6baf..93c6a45 100644 --- a/client/src/components/SearchableSelect.tsx +++ b/client/src/components/SearchableSelect.tsx @@ -77,7 +77,7 @@ function SearchableSelect({
setIsOpen(!isOpen)} >