From cc492e5e64a6c25965274f4c158f2c962a603fb9 Mon Sep 17 00:00:00 2001 From: RedrockJS Date: Fri, 27 Jun 2025 10:04:57 +0300 Subject: [PATCH] fix: footer --- package.json | 1 - public/images/logo-dtr-white.png | Bin 0 -> 4517 bytes src/core/constants/route.ts | 12 ++ src/entities/top-menu/ui.tsx | 18 +-- src/shared/ui/icon/ui.tsx | 58 +++++++- src/views/home/ui.tsx | 160 +------------------- src/widgets/footer/index.ts | 1 + src/widgets/footer/styles.module.scss | 207 ++++++++++++++++++++++++++ src/widgets/footer/ui.tsx | 118 ++++++++++++++- src/widgets/header/index.ts | 1 + src/widgets/header/ui.tsx | 12 +- src/widgets/index.ts | 2 + 12 files changed, 410 insertions(+), 180 deletions(-) create mode 100644 public/images/logo-dtr-white.png create mode 100644 src/core/constants/route.ts create mode 100644 src/widgets/footer/index.ts create mode 100644 src/widgets/header/index.ts create mode 100644 src/widgets/index.ts diff --git a/package.json b/package.json index d449e5a..bdb7904 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,6 @@ }, "devDependencies": { "@eslint/eslintrc": "^3", - "@iconify-icon/react": "^3.0.0", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", diff --git a/public/images/logo-dtr-white.png b/public/images/logo-dtr-white.png new file mode 100644 index 0000000000000000000000000000000000000000..ed6a54eee01ba0845e9b6df2cb9d7e2555063ad6 GIT binary patch literal 4517 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
- - - + + +

- + spo-71@yandex.ru

- + г. Сочи, Навагинская д. 9д, оф. 35

diff --git a/src/shared/ui/icon/ui.tsx b/src/shared/ui/icon/ui.tsx index 1cd4e89..9d0afd4 100644 --- a/src/shared/ui/icon/ui.tsx +++ b/src/shared/ui/icon/ui.tsx @@ -6,7 +6,7 @@ import type { SVGProps } from 'react'; type SVGIcon = SVGProps; //RiMapPinLine -function MapIcon(props: SVGIcon) { +function Map(props: SVGIcon) { return ( + + + ); +} + +//MdiYoutube +function Youtube(props: SVGIcon) { + return ( + + + + ); +} + +const Icons = Object.assign( + {}, + { Map, Envelope, Whatsapp, Telegram, Phone, Vk, Youtube }, +); + +export { Icons }; diff --git a/src/views/home/ui.tsx b/src/views/home/ui.tsx index 6bd8516..b4f0fd9 100644 --- a/src/views/home/ui.tsx +++ b/src/views/home/ui.tsx @@ -1,14 +1,10 @@ import s from './styles.module.scss'; -import { BaseMenu, TopMenu } from '@/entities'; +import { Footer, Header } from '@/widgets'; export default function Main() { return (
-
- - -
- +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Asperiores @@ -122,158 +118,8 @@ export default function Main() { eius eligendi fuga harum illo illum nam, nulla, odit officia quaerat quis reiciendis sit tempore!
-
- A aliquam asperiores consequatur cum dignissimos distinctio dolorem - eius eos eum excepturi expedita impedit laborum molestiae mollitia, - natus quam quidem quis quo reprehenderit similique tempore unde - veritatis voluptatem, voluptatibus voluptatum? -
-
- Accusamus adipisci assumenda beatae consequatur, eum exercitationem - explicabo maxime obcaecati officiis porro quae qui ratione sapiente - sequi suscipit velit veritatis? Harum molestiae quis quod? Et harum - neque quam reprehenderit voluptates! -
-
- Aspernatur deleniti distinctio, illum, inventore iure labore maiores - nemo quod sapiente sit voluptas, voluptatem! Minus nobis perspiciatis - rem velit. Delectus, dolores natus? Eos laborum laudantium molestiae, - nobis perferendis unde. Animi. -
-
- Dolores magni nulla quasi? Accusamus aliquam animi aperiam corporis - distinctio eligendi explicabo illo ipsum laboriosam laborum maiores - molestias obcaecati optio provident, quae, quaerat quas quisquam rerum - saepe voluptatum? Asperiores, unde. -
-
- Dignissimos distinctio dolore, ea error fugiat ipsum modi pariatur - praesentium quia velit. Aliquam aut consequuntur corporis, debitis - esse hic iste laboriosam magni mollitia natus non obcaecati placeat - quia recusandae veniam? -
-
- Accusantium aliquam corporis debitis distinctio dolore dolorem earum - eligendi fugiat harum impedit ipsam, libero magni minus molestias nisi - odit officiis possimus quae, quaerat quia quibusdam sit sunt totam ut - vel? -
-
- Animi assumenda dicta dignissimos itaque, nesciunt quo. Aliquam - asperiores aspernatur delectus deleniti dolorem, dolorum eaque ex - exercitationem expedita fugit id, iusto mollitia nesciunt officia quam - suscipit temporibus ullam ut voluptates. -
-
- Ad, at consequuntur dicta dolor, eius ex excepturi, fugit ipsum nisi - nostrum numquam qui reprehenderit sint suscipit tempora unde - voluptatibus. Dicta doloremque eaque est in nemo perspiciatis quae - quisquam, similique? -
-
- Accusantium culpa eaque eius id incidunt ipsam ipsum, laboriosam - nesciunt recusandae, repellendus temporibus vel voluptates voluptatum. - Aliquid consectetur dolores in praesentium voluptate? Accusamus - consequuntur delectus facilis fuga nulla saepe veritatis? -
-
- A aliquid animi commodi dolor est in, iure magnam molestias nesciunt - numquam quam, repellat sunt, veniam! Consectetur facere neque nulla - quos saepe! Dicta eum impedit molestias officiis temporibus tenetur - vitae? -
-
- Animi dignissimos fugiat nihil odit perspiciatis soluta! Commodi - consectetur cupiditate iusto, possimus veritatis voluptas voluptatem. - Adipisci, alias consequuntur cum impedit itaque, minima modi natus - nulla quaerat quam quidem sed unde! -
-
- Accusantium ad aliquid animi aspernatur corporis cumque cupiditate - delectus dolore ea expedita id iste, iure laudantium maiores modi odio - quae quas quis quod quos recusandae rerum sunt totam veniam - voluptatibus? -
-
- Aperiam, aspernatur cum dolorum error exercitationem fuga id - necessitatibus nisi quo rem repudiandae soluta veniam? A architecto - commodi consequuntur culpa deserunt ducimus est et fugit, iusto nihil - odio quo rem? -
-
- Alias distinctio dolorem ducimus eaque, eligendi error eveniet harum - iste iure modi mollitia odit perspiciatis praesentium quaerat quam - quidem rem repudiandae rerum sed sequi sit soluta ut veniam veritatis - voluptate. -
-
- Cumque debitis eaque, error fugiat hic molestias placeat unde? - Accusamus, ad, amet architecto at beatae culpa deleniti expedita - labore magni maiores maxime odio quos repudiandae soluta voluptate? - Esse, nisi, provident. -
-
- A aperiam autem eius error expedita id incidunt ipsum molestias nulla - porro reprehenderit, velit, vero voluptatem voluptatibus voluptatum! - Doloremque ducimus eum expedita molestias numquam porro quisquam - ratione repellendus tenetur voluptatibus. -
-
- A accusamus architecto asperiores consectetur, consequuntur culpa cum - error est, explicabo illum impedit ipsum magnam, molestias nulla - obcaecati officiis pariatur possimus quia recusandae reprehenderit - tempora tempore ullam vitae voluptatem voluptatibus! -
-
- A accusantium alias aliquam aut blanditiis consequatur cumque delectus - distinctio doloremque eligendi error et inventore ipsa ipsum iste - laborum neque odit qui quia, quo repudiandae saepe sit, totam vitae - voluptatem! -
-
- Alias, aliquam animi aspernatur blanditiis consectetur consequatur - corporis cupiditate, dolorum error esse impedit laudantium magni - maiores natus non nulla odit perferendis quam, similique soluta - suscipit tenetur totam vel veniam voluptatem! -
-
- Consequatur corporis cumque, dolore earum esse et fuga itaque laborum - magni maiores modi nihil odit officia officiis omnis praesentium, quae - quo quod ratione repellendus soluta suscipit, ullam! Accusamus, est, - reprehenderit! -
-
- At consectetur debitis dolores, dolorum et expedita laboriosam minus - nemo nihil numquam perspiciatis quas quibusdam repellendus repudiandae - sint tenetur, voluptatibus. Alias dignissimos, labore laudantium nemo - numquam reprehenderit repudiandae similique vero? -
-
- Architecto dignissimos enim et laboriosam quibusdam quisquam - reprehenderit rerum vel veniam voluptatum. Delectus facere modi - veritatis. A ad eaque eligendi enim fugiat harum maiores mollitia nisi - optio quibusdam sint, voluptate. -
-
- Ab commodi iste laboriosam laudantium maiores maxime non odit placeat - quaerat quas reiciendis, sequi temporibus, totam vel veritatis! - Doloremque eveniet expedita, fuga quam quis recusandae veniam? - Exercitationem repellendus veniam voluptates? -
-
- Animi aperiam asperiores autem delectus dignissimos illo impedit - ipsam, iusto natus numquam pariatur quae qui quis quisquam ratione - sequi sit suscipit ullam unde vel! Alias autem nemo odit quod - voluptate. -
-
- Accusamus aspernatur consectetur culpa cum cumque cupiditate doloribus - ducimus explicabo hic, id ipsa laboriosam maiores, molestiae nobis - quasi quia quod rem tempora tempore, voluptatem. Alias atque labore - maiores quia reprehenderit. -
-
footer
+
); } diff --git a/src/widgets/footer/index.ts b/src/widgets/footer/index.ts new file mode 100644 index 0000000..5ecdd1f --- /dev/null +++ b/src/widgets/footer/index.ts @@ -0,0 +1 @@ +export * from './ui'; diff --git a/src/widgets/footer/styles.module.scss b/src/widgets/footer/styles.module.scss index cb80c9b..7813517 100644 --- a/src/widgets/footer/styles.module.scss +++ b/src/widgets/footer/styles.module.scss @@ -1,3 +1,210 @@ .Footer { + display: flex; + flex-direction: column; +} +.Container { + &_green { + background: #007c6f; + } + + &_gray { + background: #3d3d3d; + } +} + +.Grid { + margin: 0 auto; + width: 1540px; + padding: 40px 0 0; + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr; + ///grid-template-rows: 1fr 1fr; + grid-auto-columns: 1fr; + gap: 0px 0px; + grid-auto-flow: row; + grid-template-areas: + "about linksa linksb linksc" + "contacts contacts social social"; + + .About { + grid-area: about; + + .Image { + margin-bottom: 20px; + } + + .Description { + font-family: $font-roboto; + font-weight: $font-regular; + font-size: 20px; + line-height: 160%; + color: $color-white; + } + } + + .LinksA { + grid-area: linksa; + padding: 10px; + + .Title { + @extend %title; + } + + .List { + @extend %list; + } + + .ListItem { + @extend %list-item; + } + } + + .LinksB { + grid-area: linksb; + padding: 10px; + + .Title { + @extend %title; + } + + .List { + @extend %list; + } + + .ListItem { + @extend %list-item; + } + } + + .LinksC { + grid-area: linksc; + padding: 10px; + + .Title { + @extend %title; + } + + .List { + @extend %list; + } + + .ListItem { + @extend %list-item; + } + } + + .Contacts { + grid-area: contacts; + + .Title { + @extend %title; + } + + .Icons { + display: flex; + flex-direction: row; + justify-content: center; + gap: 24px; + + .IconBox { + display: flex; + flex-direction: column; + align-items: center; + gap: 16px; + + .Icon { + border-radius: 50%; + width: 48px; + height: 48px; + padding: 8px; + background: $color-white; + } + + .Text { + @extend %icon-desc; + } + } + } + } + + .Social { + grid-area: social; + padding-left: 200px; + + .Title { + @extend %title; + } + + .Row { + display: flex; + flex-direction: row; + align-items: center; + gap: 20px; + } + + .Icon { + + } + } +} + +.Bottom { + margin: 0 auto; + width: 1540px; + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; + padding: 16px 0; + + font-family: $font-roboto; + font-weight: $font-regular; + font-size: 16px; + line-height: 100%; + color: $color-white; + + & a { + text-decoration: none; + color: $color-link-hover; + margin: 0 8px; + + &:hover { + text-decoration: underline; + } + } +} + +%title { + font-family: $font-roboto; + font-weight: $font-regular; + font-size: 20px; + line-height: 100%; + color: $color-white; + margin-bottom: 20px; +} + +%list { + display: flex; + flex-direction: column; + gap: 10px; + list-style: disc; +} + +%list-item { + font-family: $font-roboto; + font-weight: $font-regular; + font-size: 16px; + line-height: 130%; + color: $color-white; + margin-left: 20px; +} + +%icon-desc { + font-family: $font-roboto; + font-weight: $font-regular; + font-size: 18px; + line-height: 100%; + color: $color-white; + margin-bottom: 20px; } \ No newline at end of file diff --git a/src/widgets/footer/ui.tsx b/src/widgets/footer/ui.tsx index 8a6cc39..96517e2 100644 --- a/src/widgets/footer/ui.tsx +++ b/src/widgets/footer/ui.tsx @@ -1,5 +1,119 @@ import s from './styles.module.scss'; +import Link from 'next/link'; +import Image from 'next/image'; +import { ROUTES, ROUTES_EXTERNAL } from '@core/constants/route'; +import dtrLogo from '@public/images/logo-dtr-white.png'; +import { Icons } from '@shared/ui/icon'; -export default function Footer() { - return
footer
; +function Footer() { + return ( +
+
+
+
+ ДиТрасо +

+ В соответствии с п.5.1 ст.18 №128-фз лицензия для оценочной + деятельности не требуется с 01.07.2006г. +

+
+
+

Оценка имущества

+
    +
  1. Оценка жилой недвижимости
  2. +
  3. Оценка коммерческой недвижимости
  4. +
  5. Оценка ущерба недвижимости
  6. +
  7. Оценка сооружений
  8. +
  9. Оценка машин и оборудования
  10. +
  11. + Оценка стоимости предприятия (бизнеса) +
  12. +
+
+
+

Экспертиза

+
    +
  1. Автотехническая экспертиза
  2. +
  3. Товароведческая экспертиза
  4. +
  5. Трасологическая экспертиза
  6. +
  7. Кадастровая экспертиза
  8. +
  9. Строительно-техническая экспертиза
  10. +
  11. Оценочная экспертиза
  12. +
+
+
+

Юриспруденция

+
    +
  1. Семейные и наследственные споры
  2. +
  3. Земельные и имущественные споры
  4. +
  5. Взыскание долгов с юридических лиц
  6. +
  7. Страховые споры
  8. +
  9. + Сопровождение сделок и составление договоров +
  10. +
  11. Представительство в суде
  12. +
+
+
+

Контакты и адреса

+ +
+
+

Социальные сети:

+ +
+
+
+ +
+
+ © ООО “ДИ ТРАСО” | + Политика конфиденциальности | + Карта сайта +
+
+
+ ); } + +export { Footer }; diff --git a/src/widgets/header/index.ts b/src/widgets/header/index.ts new file mode 100644 index 0000000..5ecdd1f --- /dev/null +++ b/src/widgets/header/index.ts @@ -0,0 +1 @@ +export * from './ui'; diff --git a/src/widgets/header/ui.tsx b/src/widgets/header/ui.tsx index 181455f..1ad3b2b 100644 --- a/src/widgets/header/ui.tsx +++ b/src/widgets/header/ui.tsx @@ -1,5 +1,13 @@ import s from './styles.module.scss'; +import { BaseMenu, TopMenu } from '@/entities'; -export default function Header() { - return
header
; +function Header() { + return ( +
+ + +
+ ); } + +export { Header }; diff --git a/src/widgets/index.ts b/src/widgets/index.ts new file mode 100644 index 0000000..f4c09fc --- /dev/null +++ b/src/widgets/index.ts @@ -0,0 +1,2 @@ +export * from './header'; +export * from './footer';