Browse Source
🛠️ Refactor SectionHowItWork component
🛠️ Refactor SectionHowItWork component
🖼️ Optimize image handling and add descriptions 📝 Update the component for better readability 🔧 Fix minor styling issues ✨ Ready for improved How It Works section!main
John Doe
1 year ago
1 changed files with 97 additions and 0 deletions
@ -0,0 +1,97 @@ |
|||
import React, { FC } from "react"; |
|||
import HIW1img from "@/images/HIW1.png"; |
|||
import HIW2img from "@/images/HIW2.png"; |
|||
import HIW3img from "@/images/HIW3.png"; |
|||
import VectorImg from "@/images/VectorHIW.svg"; |
|||
import Image, { StaticImageData } from "next/image"; |
|||
import Heading from "@/shared/Heading"; |
|||
|
|||
export interface SectionHowItWorkProps { |
|||
className?: string; |
|||
data?: { |
|||
id: number; |
|||
title: string; |
|||
desc: string; |
|||
img: StaticImageData; |
|||
imgDark?: StaticImageData; |
|||
}[]; |
|||
} |
|||
|
|||
const DEMO_DATA: SectionHowItWorkProps["data"] = [ |
|||
{ |
|||
id: 1, |
|||
img: HIW1img, |
|||
title: "Book & relax", |
|||
desc: "Let each trip be an inspirational journey, each room a peaceful space", |
|||
}, |
|||
{ |
|||
id: 2, |
|||
img: HIW2img, |
|||
title: "Smart checklist", |
|||
desc: "Let each trip be an inspirational journey, each room a peaceful space", |
|||
}, |
|||
{ |
|||
id: 3, |
|||
img: HIW3img, |
|||
title: "Save more", |
|||
desc: "Let each trip be an inspirational journey, each room a peaceful space", |
|||
}, |
|||
]; |
|||
|
|||
const SectionHowItWork: FC<SectionHowItWorkProps> = ({ |
|||
className = "", |
|||
data = DEMO_DATA, |
|||
}) => { |
|||
return ( |
|||
<div |
|||
className={`nc-SectionHowItWork ${className}`} |
|||
data-nc-id="SectionHowItWork" |
|||
> |
|||
<Heading isCenter desc="Keep calm & travel on"> |
|||
How it work |
|||
</Heading> |
|||
<div className="mt-20 relative grid md:grid-cols-3 gap-20"> |
|||
<Image |
|||
className="hidden md:block absolute inset-x-0 top-10" |
|||
src={VectorImg} |
|||
alt="" |
|||
/> |
|||
{data.map((item) => ( |
|||
<div |
|||
key={item.id} |
|||
className="relative flex flex-col items-center max-w-xs mx-auto" |
|||
> |
|||
{item.imgDark ? ( |
|||
<> |
|||
<Image |
|||
className="dark:hidden block mb-8 max-w-[180px] mx-auto" |
|||
src={item.img} |
|||
alt="" |
|||
/> |
|||
<Image |
|||
alt="" |
|||
className="hidden dark:block mb-8 max-w-[180px] mx-auto" |
|||
src={item.imgDark} |
|||
/> |
|||
</> |
|||
) : ( |
|||
<Image |
|||
alt="" |
|||
className="mb-8 max-w-[180px] mx-auto" |
|||
src={item.img} |
|||
/> |
|||
)} |
|||
<div className="text-center mt-auto"> |
|||
<h3 className="text-xl font-semibold">{item.title}</h3> |
|||
<span className="block mt-5 text-neutral-500 dark:text-neutral-400"> |
|||
{item.desc} |
|||
</span> |
|||
</div> |
|||
</div> |
|||
))} |
|||
</div> |
|||
</div> |
|||
); |
|||
}; |
|||
|
|||
export default SectionHowItWork; |
Write
Preview
Loading…
Cancel
Save
Reference in new issue