Skip to content

Commit 9225662

Browse files
authored
Merge pull request #13904 from ethereum/slider-swiper
Migrate Slider usage to new Swiper
2 parents 79ea516 + e480d23 commit 9225662

File tree

7 files changed

+89
-353
lines changed

7 files changed

+89
-353
lines changed

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
"class-variance-authority": "^0.7.0",
5555
"clsx": "^2.1.1",
5656
"cmdk": "^1.0.0",
57-
"embla-carousel-react": "^7.0.0",
5857
"ethereum-blockies-base64": "^1.0.2",
5958
"framer-motion": "^10.13.0",
6059
"gray-matter": "^4.0.3",

src/components/Slider/Slider.stories.tsx

Lines changed: 0 additions & 109 deletions
This file was deleted.

src/components/Slider/index.tsx

Lines changed: 0 additions & 151 deletions
This file was deleted.

src/components/Swiper/index.tsx

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import { useTranslation } from "next-i18next"
22
import { EffectCards, Keyboard, Navigation, Pagination } from "swiper/modules"
3-
import { Swiper as SwiperParent, SwiperSlide } from "swiper/react"
4-
import type { SwiperOptions } from "swiper/types"
3+
import {
4+
Swiper as SwiperParent,
5+
type SwiperProps as SwiperParentProps,
6+
SwiperSlide,
7+
} from "swiper/react"
58

69
import { ChevronNext, ChevronPrev } from "@/components/Chevron"
710

@@ -12,23 +15,27 @@ import "swiper/css/navigation"
1215
import "swiper/css/pagination"
1316
import "swiper/css/effect-cards"
1417

15-
type SwiperProps = {
18+
type SwiperProps = SwiperParentProps & {
1619
children: React.ReactNode[]
17-
options?: SwiperOptions
18-
className?: string
19-
swiperClass?: string
20+
/**
21+
* Additional class names for the container element.
22+
*/
23+
containerClassName?: string
24+
/**
25+
* Additional class names for the slider element.
26+
*/
2027
sliderClass?: string
2128
}
29+
2230
const Swiper = ({
2331
children,
24-
className,
25-
swiperClass,
32+
containerClassName,
2633
sliderClass,
27-
options,
34+
...props
2835
}: SwiperProps) => {
2936
const { t } = useTranslation("common")
3037
return (
31-
<div className={cn("h-fit", className)}>
38+
<div className={cn("h-fit", containerClassName)}>
3239
<SwiperParent
3340
navigation={{
3441
nextEl: ".swiper-button-next",
@@ -43,8 +50,7 @@ const Swiper = ({
4350
modules={[Navigation, Pagination, Keyboard, EffectCards]}
4451
slidesPerView={1}
4552
slidesPerGroup={1}
46-
className={swiperClass}
47-
{...options}
53+
{...props}
4854
>
4955
{children.map((child, index) => (
5056
<SwiperSlide className={sliderClass} key={index}>

src/pages/index.tsx

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -251,8 +251,8 @@ const HomePage = ({
251251

252252
{/* Mobile */}
253253
<Swiper
254-
options={{ effect: "cards" }}
255-
className={cn(
254+
effect="cards"
255+
containerClassName={cn(
256256
"lg:hidden", // Mobile only
257257
"[&_.swiper-slide]:overflow-visible [&_.swiper-slide]:rounded-2xl [&_.swiper-slide]:shadow-card-hover",
258258
"[&_.swiper]:mx-auto [&_.swiper]:mt-4 [&_.swiper]:!flex [&_.swiper]:h-fit [&_.swiper]:max-w-128 [&_.swiper]:flex-col [&_.swiper]:items-center"
@@ -582,18 +582,16 @@ const HomePage = ({
582582
<p>{t("page-index:page-index-posts-subtitle")}</p>
583583

584584
<Swiper
585-
className="mt-4 md:mt-16"
586-
options={{
587-
spaceBetween: 32,
588-
breakpoints: {
589-
[breakpointAsNumber.sm]: {
590-
slidesPerView: 2,
591-
slidesPerGroup: 2,
592-
},
593-
[breakpointAsNumber.lg]: {
594-
slidesPerView: 3,
595-
slidesPerGroup: 3,
596-
},
585+
containerClassName="mt-4 md:mt-16"
586+
spaceBetween={32}
587+
breakpoints={{
588+
[breakpointAsNumber.sm]: {
589+
slidesPerView: 2,
590+
slidesPerGroup: 2,
591+
},
592+
[breakpointAsNumber.lg]: {
593+
slidesPerView: 3,
594+
slidesPerGroup: 3,
597595
},
598596
}}
599597
>

0 commit comments

Comments
 (0)