From 62e06873589041fc84eefb3177c8852b4cf667c2 Mon Sep 17 00:00:00 2001 From: RedrockJS Date: Thu, 3 Jul 2025 16:26:00 +0300 Subject: [PATCH] refactor: create article model --- public/svg/rotated-lines.svg | 1 + src/core/types/expert.ts | 7 +++ src/core/types/relatedArticles.ts | 5 ++ src/core/types/sidebar.ts | 10 +++ src/feature/article/consultation/ui.tsx | 12 ++-- src/feature/article/related-articles/ui.tsx | 54 +++++----------- src/feature/article/sidebar/ui.tsx | 63 +++++++++++-------- src/views/expertise/autotech/model/expert.ts | 8 +++ .../autotech/model/relatedArticles.ts | 29 +++++++++ src/views/expertise/autotech/model/sidebar.ts | 33 ++++++++++ .../expertise/autotech/styles.module.scss | 21 +++++++ src/views/expertise/autotech/ui.tsx | 23 +++++-- 12 files changed, 191 insertions(+), 75 deletions(-) create mode 100644 public/svg/rotated-lines.svg create mode 100644 src/core/types/expert.ts create mode 100644 src/core/types/relatedArticles.ts create mode 100644 src/core/types/sidebar.ts create mode 100644 src/views/expertise/autotech/model/expert.ts create mode 100644 src/views/expertise/autotech/model/relatedArticles.ts create mode 100644 src/views/expertise/autotech/model/sidebar.ts diff --git a/public/svg/rotated-lines.svg b/public/svg/rotated-lines.svg new file mode 100644 index 0000000..ca4955a --- /dev/null +++ b/public/svg/rotated-lines.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/core/types/expert.ts b/src/core/types/expert.ts new file mode 100644 index 0000000..c2faf4d --- /dev/null +++ b/src/core/types/expert.ts @@ -0,0 +1,7 @@ +import { StaticImageData } from 'next/image'; + +export type TExpert = { + position: string; + name: string; + photo: string | StaticImageData; +}; diff --git a/src/core/types/relatedArticles.ts b/src/core/types/relatedArticles.ts new file mode 100644 index 0000000..fba493f --- /dev/null +++ b/src/core/types/relatedArticles.ts @@ -0,0 +1,5 @@ +export type TRelatedArticles = { + title: string; + description: string; + link: string; +}; diff --git a/src/core/types/sidebar.ts b/src/core/types/sidebar.ts new file mode 100644 index 0000000..f21c976 --- /dev/null +++ b/src/core/types/sidebar.ts @@ -0,0 +1,10 @@ +export type TSidebar = { + estimate: string; + relatedTitle?: string; + related?: { + title: string; + link: string; + }[]; + warrantiesTitle?: string; + warranties?: string[]; +}; diff --git a/src/feature/article/consultation/ui.tsx b/src/feature/article/consultation/ui.tsx index efa566a..ac621b7 100644 --- a/src/feature/article/consultation/ui.tsx +++ b/src/feature/article/consultation/ui.tsx @@ -1,9 +1,11 @@ import s from './styles.module.scss'; import { Button, Input, PhoneInput } from '@shared/ui'; import Image from 'next/image'; -import expertPhoto from '@public/images/photo/yancen-yana.png'; +import { TExpert } from '@core/types/expert'; -function Consultation() { +type ConsultationProps = TExpert; + +function Consultation({ name, position, photo }: ConsultationProps) { return (
@@ -22,9 +24,9 @@ function Consultation() {
- {'Автоэксперт -

Янцен Яна

-

Автоэксперт

+ {`${position} +

{name}

+

{position}

diff --git a/src/feature/article/related-articles/ui.tsx b/src/feature/article/related-articles/ui.tsx index 005f142..d9de3d5 100644 --- a/src/feature/article/related-articles/ui.tsx +++ b/src/feature/article/related-articles/ui.tsx @@ -1,7 +1,13 @@ import s from './styles.module.scss'; +import Link from 'next/link'; +import { TRelatedArticles } from '@core/types/relatedArticles'; import { CallbackForm } from '@/entities'; -function RelatedArticles() { +type RelatedArticlesProps = { + related: TRelatedArticles[]; +}; + +function RelatedArticles({ related }: RelatedArticlesProps) { return (
@@ -10,42 +16,16 @@ function RelatedArticles() { Похожие услуги, которые возможно Вас заинтересуют
-
-

Трасологическая экспертиза

-

- Эксперты нашей компании быстро и точно восстановят картину - происшествия и дадут профессиональную оценку ситуации. Также во - время трасологической экспертизы изучаются имеющиеся повреждения - и следы на месте… -

-
-
-

Товароведческая экспертиза

-

- Судебная экспертиза товаров должна проводиться только - специалистом, получившим узкопрофильную квалификацию. Если Вам - необходима товароведческая экспертиза и для суда, мы готовы - подробно исследовать любой товар. Результат работы… -

-
-
-

Оценочная экспертиза

-

- Судебная оценочная (стоимостная) экспертиза представляет собой - вид экспертизы, главной задачей которой является определение - рыночной стоимости объектов оценки… -

-
-
-

Рецензия (Проверка) экспертизы

-

- Необходимость в составлении рецензии на судебную экспертизу - появляется в ситуациях, когда выводы заключения являются не - обоснованными, а квалификация и опыт эксперта не вызывают - доверия. В ходе рецензирования экспертное заключение - проверяется… -

-
+ {related.map(({ title, description, link }, index) => ( +
+

+ {title} +

+

+ {description} +

+
+ ))}
diff --git a/src/feature/article/sidebar/ui.tsx b/src/feature/article/sidebar/ui.tsx index 9907630..43a02fb 100644 --- a/src/feature/article/sidebar/ui.tsx +++ b/src/feature/article/sidebar/ui.tsx @@ -1,12 +1,22 @@ import s from './styles.module.scss'; +import Link from 'next/link'; import { Button } from '@shared/ui'; +import { TSidebar } from '@core/types/sidebar'; -function Sidebar() { +type SidebarProps = TSidebar; + +function Sidebar({ + estimate = '3', + relatedTitle, + related, + warrantiesTitle, + warranties, +}: SidebarProps) { return (

Срок выполнения:

-

от 3 дней

+

от {estimate} дней

Наш эксперт свяжется с вами для уточнения обстоятельств дела и определения точной стоимости. @@ -15,31 +25,30 @@ function Sidebar() {

+7 (900) 241-34-34

-
-

Сопутствующие экспертизы

-
    -
  • Трасологическая
  • -
  • Оценочная
  • -
  • Товароведческая
  • -
  • Рецензирование (проверка)
  • -
-
-
-

Наши гарантии

-
    -
  • - Эксперты компании являются членами Саморегулируемой организации - судебных экспертов -
  • -
  • - Деятельность компании застрахована на 60 000 000 рублей -
  • -
  • - Экспертизы выполняются в соответствии с Федеральными - Законодательными Актами -
  • -
-
+ {related && ( +
+

{relatedTitle}

+
    + {related?.map(({ title, link }, index) => ( +
  • + {title} +
  • + ))} +
+
+ )} + {warranties && ( +
+

{warrantiesTitle}

+
    + {warranties.map((warranty, index) => ( +
  • + {warranty} +
  • + ))} +
+
+ )}
); } diff --git a/src/views/expertise/autotech/model/expert.ts b/src/views/expertise/autotech/model/expert.ts new file mode 100644 index 0000000..888ed8c --- /dev/null +++ b/src/views/expertise/autotech/model/expert.ts @@ -0,0 +1,8 @@ +import { TExpert } from '@core/types/expert'; +import expertPhoto from '@public/images/photo/yancen-yana.png'; + +export const expertData: TExpert = { + name: 'Янцен Яна', + position: 'Автоэксперт', + photo: expertPhoto, +}; diff --git a/src/views/expertise/autotech/model/relatedArticles.ts b/src/views/expertise/autotech/model/relatedArticles.ts new file mode 100644 index 0000000..c23209c --- /dev/null +++ b/src/views/expertise/autotech/model/relatedArticles.ts @@ -0,0 +1,29 @@ +import { TRelatedArticles } from '@core/types/relatedArticles'; +import { ROUTES } from '@core/constants/route'; + +export const relatedArticlesData: TRelatedArticles[] = [ + { + title: 'Трасологическая экспертиза', + description: + 'Эксперты нашей компании быстро и точно восстановят картину происшествия и дадут профессиональную оценку ситуации. Также во время трасологической экспертизы изучаются имеющиеся повреждения и следы на месте…', + link: ROUTES.EXPERTIZA_TRASOLOGIA, + }, + { + title: 'Оценочная экспертиза', + description: + 'Судебная оценочная (стоимостная) экспертиза представляет собой вид экспертизы, главной задачей которой является определение рыночной стоимости объектов оценки…', + link: ROUTES.EXPERTIZA_OCENKI, + }, + { + title: 'Товароведческая экспертиза', + description: + 'Судебная экспертиза товаров должна проводиться только специалистом, получившим узкопрофильную квалификацию. Если Вам необходима товароведческая экспертиза и для суда, мы готовы подробно исследовать любой товар. Результат работы…', + link: ROUTES.EXPERTIZA_TOVAR, + }, + { + title: 'Рецензия (Проверка) экспертизы', + description: + 'Необходимость в составлении рецензии на судебную экспертизу появляется в ситуациях, когда выводы заключения являются не обоснованными, а квалификация и опыт эксперта не вызывают доверия. В ходе рецензирования экспертное заключение проверяется…', + link: ROUTES.EXPERTIZA_RECENZII, + }, +]; diff --git a/src/views/expertise/autotech/model/sidebar.ts b/src/views/expertise/autotech/model/sidebar.ts new file mode 100644 index 0000000..4cc179b --- /dev/null +++ b/src/views/expertise/autotech/model/sidebar.ts @@ -0,0 +1,33 @@ +import { TSidebar } from '@core/types/sidebar'; +import { ROUTES } from '@core/constants/route'; + +const sidebarData: TSidebar = { + estimate: '3', + relatedTitle: 'Сопутствующие экспертизы', + related: [ + { + title: 'Трасологическая', + link: ROUTES.EXPERTIZA_TRASOLOGIA, + }, + { + title: 'Оценочная', + link: ROUTES.EXPERTIZA_OCENKI, + }, + { + title: 'Товароведческая', + link: ROUTES.EXPERTIZA_TOVAR, + }, + { + title: 'Рецензирование (проверка)', + link: ROUTES.EXPERTIZA_RECENZII, + }, + ], + warrantiesTitle: 'Наши гарантии', + warranties: [ + 'Эксперты компании являются членами Саморегулируемой организации судебных экспертов', + 'Деятельность компании застрахована на 60 000 000 рублей', + 'Экспертизы выполняются в соответствии с Федеральными Законодательными Актами', + ], +}; + +export { sidebarData }; diff --git a/src/views/expertise/autotech/styles.module.scss b/src/views/expertise/autotech/styles.module.scss index 86962f5..9861d33 100644 --- a/src/views/expertise/autotech/styles.module.scss +++ b/src/views/expertise/autotech/styles.module.scss @@ -46,3 +46,24 @@ margin-bottom: 16px; } } + +.Partners { + .Divider { + width: 100%; + display: flex; + text-align: center; + padding-top: 20px; + padding-bottom: 20px; + + .Separator { + display: flex; + width: 100%; + margin: 0 auto; + min-height: 15px; + mask-size: 20px 100%; + mask-repeat: repeat-x; + background-color: $color-green; + mask-image: url(/svg/rotated-lines.svg); + } + } +} diff --git a/src/views/expertise/autotech/ui.tsx b/src/views/expertise/autotech/ui.tsx index 7b2b7a8..99a48da 100644 --- a/src/views/expertise/autotech/ui.tsx +++ b/src/views/expertise/autotech/ui.tsx @@ -1,7 +1,9 @@ import s from './styles.module.scss'; import { CallbackForm, Connect, OrderSchema } from '@/entities'; import { Consultation, RelatedArticles, Sidebar } from '@/feature/article'; -import { Button } from '@shared/ui'; +import { sidebarData } from './model/sidebar'; +import { relatedArticlesData } from './model/relatedArticles'; +import { expertData } from './model/expert'; function AutoTech() { return ( @@ -52,7 +54,9 @@ function AutoTech() { изменен. + +

Документы, необходимые для экспертизы:

Для начала работ по автомобильной экспертизе эксперту понадобятся @@ -85,15 +89,22 @@ function AutoTech() {

- - - -
+ + +
+
+ +
+ Slider +
+ +
+
); }