Browse Source
🎉 Implemented new UI components
🎉 Implemented new UI components
🚀 Enhanced user experience 🌟 Added initial data handling logic 💡 Improved code readability and organization 🛠️ Fixed minor styling issuesmain
John Doe
1 year ago
1 changed files with 88 additions and 0 deletions
@ -0,0 +1,88 @@ |
|||
"use client"; |
|||
|
|||
import { Tab } from "@headlessui/react"; |
|||
import CarCard from "@/components/CarCard"; |
|||
import ExperiencesCard from "@/components/ExperiencesCard"; |
|||
import StayCard from "@/components/StayCard"; |
|||
import { |
|||
DEMO_CAR_LISTINGS, |
|||
DEMO_EXPERIENCES_LISTINGS, |
|||
DEMO_STAY_LISTINGS, |
|||
} from "@/data/listings"; |
|||
import React, { Fragment, useState } from "react"; |
|||
import ButtonSecondary from "@/shared/ButtonSecondary"; |
|||
|
|||
const AccountSavelists = () => { |
|||
let [categories] = useState(["Stays", "Experiences", "Cars"]); |
|||
|
|||
const renderSection1 = () => { |
|||
return ( |
|||
<div className="space-y-6 sm:space-y-8"> |
|||
<div> |
|||
<h2 className="text-3xl font-semibold">Save lists</h2> |
|||
</div> |
|||
<div className="w-14 border-b border-neutral-200 dark:border-neutral-700"></div> |
|||
|
|||
<div> |
|||
<Tab.Group> |
|||
<Tab.List className="flex space-x-1 overflow-x-auto"> |
|||
{categories.map((item) => ( |
|||
<Tab key={item} as={Fragment}> |
|||
{({ selected }) => ( |
|||
<button |
|||
className={`flex-shrink-0 block !leading-none font-medium px-5 py-2.5 text-sm sm:text-base sm:px-6 sm:py-3 capitalize rounded-full focus:outline-none ${ |
|||
selected |
|||
? "bg-secondary-900 text-secondary-50 " |
|||
: "text-neutral-500 dark:text-neutral-400 dark:hover:text-neutral-100 hover:text-neutral-900 hover:bg-neutral-100 dark:hover:bg-neutral-800" |
|||
} `}
|
|||
> |
|||
{item} |
|||
</button> |
|||
)} |
|||
</Tab> |
|||
))} |
|||
</Tab.List> |
|||
<Tab.Panels> |
|||
<Tab.Panel className="mt-8"> |
|||
<div className="grid grid-cols-1 gap-6 md:gap-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"> |
|||
{DEMO_STAY_LISTINGS.filter((_, i) => i < 8).map((stay) => ( |
|||
<StayCard key={stay.id} data={stay} /> |
|||
))} |
|||
</div> |
|||
<div className="flex mt-11 justify-center items-center"> |
|||
<ButtonSecondary>Show me more</ButtonSecondary> |
|||
</div> |
|||
</Tab.Panel> |
|||
<Tab.Panel className="mt-8"> |
|||
<div className="grid grid-cols-1 gap-6 md:gap-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"> |
|||
{DEMO_EXPERIENCES_LISTINGS.filter((_, i) => i < 8).map( |
|||
(stay) => ( |
|||
<ExperiencesCard key={stay.id} data={stay} /> |
|||
) |
|||
)} |
|||
</div> |
|||
<div className="flex mt-11 justify-center items-center"> |
|||
<ButtonSecondary>Show me more</ButtonSecondary> |
|||
</div> |
|||
</Tab.Panel> |
|||
<Tab.Panel className="mt-8"> |
|||
<div className="grid grid-cols-1 gap-6 md:gap-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"> |
|||
{DEMO_CAR_LISTINGS.filter((_, i) => i < 8).map((stay) => ( |
|||
<CarCard key={stay.id} data={stay} /> |
|||
))} |
|||
</div> |
|||
<div className="flex mt-11 justify-center items-center"> |
|||
<ButtonSecondary>Show me more</ButtonSecondary> |
|||
</div> |
|||
</Tab.Panel> |
|||
</Tab.Panels> |
|||
</Tab.Group> |
|||
</div> |
|||
</div> |
|||
); |
|||
}; |
|||
|
|||
return renderSection1(); |
|||
}; |
|||
|
|||
export default AccountSavelists; |
Write
Preview
Loading…
Cancel
Save
Reference in new issue