diff --git a/package-lock.json b/package-lock.json index 68e6db0..6e0d63e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,8 @@ "next": "15.3.4", "nodemailer": "^7.0.3", "react": "^19.0.0", - "react-dom": "^19.0.0" + "react-dom": "^19.0.0", + "swiper": "^11.2.10" }, "devDependencies": { "@eslint/eslintrc": "^3", @@ -5689,6 +5690,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/swiper": { + "version": "11.2.10", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.10.tgz", + "integrity": "sha512-RMeVUUjTQH+6N3ckimK93oxz6Sn5la4aDlgPzB+rBrG/smPdCTicXyhxa+woIpopz+jewEloiEE3lKo1h9w2YQ==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "license": "MIT", + "engines": { + "node": ">= 4.7.0" + } + }, "node_modules/tinyglobby": { "version": "0.2.14", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", diff --git a/package.json b/package.json index bae9d84..ab7497d 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,8 @@ "next": "15.3.4", "nodemailer": "^7.0.3", "react": "^19.0.0", - "react-dom": "^19.0.0" + "react-dom": "^19.0.0", + "swiper": "^11.2.10" }, "devDependencies": { "@eslint/eslintrc": "^3", diff --git a/public/images/partners/jur-firma-zevs.png b/public/images/partners/jur-firma-zevs.png index 5870ce8..ea438fd 100644 Binary files a/public/images/partners/jur-firma-zevs.png and b/public/images/partners/jur-firma-zevs.png differ diff --git a/public/images/partners/transdekra.png b/public/images/partners/transdekra.png new file mode 100644 index 0000000..aa3be9e Binary files /dev/null and b/public/images/partners/transdekra.png differ diff --git a/src/views/expertise/autotech/styles.module.scss b/src/views/expertise/autotech/styles.module.scss index 9861d33..36d3507 100644 --- a/src/views/expertise/autotech/styles.module.scss +++ b/src/views/expertise/autotech/styles.module.scss @@ -52,8 +52,7 @@ width: 100%; display: flex; text-align: center; - padding-top: 20px; - padding-bottom: 20px; + padding: rem(40px) 0; .Separator { display: flex; diff --git a/src/views/expertise/autotech/ui.tsx b/src/views/expertise/autotech/ui.tsx index 99a48da..c8048f9 100644 --- a/src/views/expertise/autotech/ui.tsx +++ b/src/views/expertise/autotech/ui.tsx @@ -1,6 +1,7 @@ import s from './styles.module.scss'; import { CallbackForm, Connect, OrderSchema } from '@/entities'; import { Consultation, RelatedArticles, Sidebar } from '@/feature/article'; +import { PartnersSlider } from '@/widgets'; import { sidebarData } from './model/sidebar'; import { relatedArticlesData } from './model/relatedArticles'; import { expertData } from './model/expert'; @@ -100,7 +101,7 @@ function AutoTech() {
- Slider +
diff --git a/src/widgets/breadcrumbs/index.ts b/src/widgets/breadcrumbs/index.ts new file mode 100644 index 0000000..5ecdd1f --- /dev/null +++ b/src/widgets/breadcrumbs/index.ts @@ -0,0 +1 @@ +export * from './ui'; diff --git a/src/widgets/index.ts b/src/widgets/index.ts index f4c09fc..d6929da 100644 --- a/src/widgets/index.ts +++ b/src/widgets/index.ts @@ -1,2 +1,4 @@ export * from './header'; export * from './footer'; +export * from './breadcrumbs'; +export * from './partners-slider'; diff --git a/src/widgets/partners-slider/index.ts b/src/widgets/partners-slider/index.ts new file mode 100644 index 0000000..5ecdd1f --- /dev/null +++ b/src/widgets/partners-slider/index.ts @@ -0,0 +1 @@ +export * from './ui'; diff --git a/src/widgets/partners-slider/model/slides.ts b/src/widgets/partners-slider/model/slides.ts new file mode 100644 index 0000000..67ea41a --- /dev/null +++ b/src/widgets/partners-slider/model/slides.ts @@ -0,0 +1,75 @@ +import logoMegafon from '@public/images/partners/megafon.png'; +import logoMig from '@public/images/partners/mig.png'; +import logoECZ from '@public/images/partners/edinyi-centr-zashhity.png'; +import logoZevs from '@public/images/partners/jur-firma-zevs.png'; +import logoETD from '@public/images/partners/etd.png'; +import logoLaura from '@public/images/partners/laura-sochi.png'; +import logoMTS from '@public/images/partners/mts.png'; +import logoSAH from '@public/images/partners/sah.png'; +import logoSochiPark from '@public/images/partners/sochi-park.png'; +import logoSputnik from '@public/images/partners/sputnik.png'; +import logoYugoria from '@public/images/partners/yugoriya.png'; +import logoTransdekra from '@public/images/partners/transdekra.png'; + +export const slidesData = [ + { + id: '0', + name: '', + image: logoMegafon, + }, + { + id: '1', + name: '', + image: logoMig, + }, + { + id: '2', + name: '', + image: logoECZ, + }, + { + id: '3', + name: '', + image: logoZevs, + }, + { + id: '4', + name: '', + image: logoETD, + }, + { + id: '5', + name: '', + image: logoLaura, + }, + { + id: '6', + name: '', + image: logoMTS, + }, + { + id: '7', + name: '', + image: logoSAH, + }, + { + id: '8', + name: '', + image: logoSochiPark, + }, + { + id: '9', + name: '', + image: logoSputnik, + }, + { + id: '10', + name: '', + image: logoYugoria, + }, + { + id: '11', + name: '', + image: logoTransdekra, + }, +]; diff --git a/src/widgets/partners-slider/styles.module.scss b/src/widgets/partners-slider/styles.module.scss new file mode 100644 index 0000000..2f26668 --- /dev/null +++ b/src/widgets/partners-slider/styles.module.scss @@ -0,0 +1,14 @@ +.Slider { + display: block; + padding: 0 20px; + //flex-direction: row; + //justify-content: space-between; +} + +.Slide { + display: flex; + justify-content: center; + align-items: center; + width: 200px; + height: auto; +} \ No newline at end of file diff --git a/src/widgets/partners-slider/ui.tsx b/src/widgets/partners-slider/ui.tsx new file mode 100644 index 0000000..29fa92f --- /dev/null +++ b/src/widgets/partners-slider/ui.tsx @@ -0,0 +1,54 @@ +'use client'; + +import 'swiper/css'; +import 'swiper/css/navigation'; +import 'swiper/css/grid'; +import 'swiper/css/autoplay'; +import s from './styles.module.scss'; + +import Image from 'next/image'; +import { Swiper, SwiperSlide } from 'swiper/react'; +import { Autoplay, Grid } from 'swiper/modules'; +import { slidesData } from '@widgets/partners-slider/model/slides'; + +const swiperBreakpoints = { + 360: { + slidesPerView: 1, + spaceBetween: 10, + }, + 768: { + slidesPerView: 3, + spaceBetween: 30, + }, + 1024: { + slidesPerView: 4, + spaceBetween: 30, + }, + 1440: { + slidesPerView: 5, + spaceBetween: 30, + }, +}; + +function PartnersSlider() { + return ( + + {slidesData.map(({ id, name, image }) => ( + + {name} + + ))} + + ); +} + +export { PartnersSlider }; diff --git a/src/widgets/partners/index.ts b/src/widgets/partners/index.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/widgets/partners/styles.module.scss b/src/widgets/partners/styles.module.scss deleted file mode 100644 index e69de29..0000000 diff --git a/src/widgets/partners/ui.tsx b/src/widgets/partners/ui.tsx deleted file mode 100644 index e69de29..0000000