Browse Source
🛠️ Made some improvements to the code
🛠️ Made some improvements to the code
✨ Added new features and enhancements 🐛 Fixed a few bugs and issues 🚀 Ready to launch the project 🔧 Tweaked configurations and settingsmain
John Doe
1 year ago
1 changed files with 89 additions and 0 deletions
@ -0,0 +1,89 @@ |
|||||
|
import { Popover, Transition } from "@headlessui/react"; |
||||
|
import { ChevronDownIcon } from "@heroicons/react/24/solid"; |
||||
|
import { Fragment } from "react"; |
||||
|
import { NAVIGATION_DEMO_2 } from "@/data/navigation"; |
||||
|
import { NavItemType } from "@/shared/Navigation/NavigationItem"; |
||||
|
import Link from "next/link"; |
||||
|
import Collection from "@/components/Collection"; |
||||
|
|
||||
|
export default function TemplatesDropdown() { |
||||
|
const renderMegaMenuNavlink = ( |
||||
|
item: NavItemType, |
||||
|
index: number, |
||||
|
close: () => void |
||||
|
) => { |
||||
|
return ( |
||||
|
<li key={item.id} className={`${item.isNew ? "menuIsNew" : ""}`}> |
||||
|
<Link |
||||
|
target={item.targetBlank ? "_blank" : undefined} |
||||
|
rel="noopener noreferrer" |
||||
|
className="font-normal text-slate-600 hover:text-black dark:text-slate-400 dark:hover:text-white" |
||||
|
href={{ |
||||
|
pathname: item.href || undefined, |
||||
|
}} |
||||
|
onClick={close} |
||||
|
> |
||||
|
{item.name} |
||||
|
</Link> |
||||
|
</li> |
||||
|
); |
||||
|
}; |
||||
|
|
||||
|
return ( |
||||
|
<> |
||||
|
<Popover className="TemplatesDropdown hidden lg:block self-center"> |
||||
|
{({ open, close }) => ( |
||||
|
<> |
||||
|
<Popover.Button |
||||
|
className={`
|
||||
|
${open ? "" : "text-opacity-80"} |
||||
|
group h-10 sm:h-12 px-3 py-1.5 inline-flex items-center text-sm text-gray-800 dark:text-slate-300 font-medium hover:text-opacity-100 focus:outline-none `}
|
||||
|
> |
||||
|
<span className="">Templates</span> |
||||
|
<ChevronDownIcon |
||||
|
className={`${open ? "-rotate-180" : ""}
|
||||
|
ml-1 h-4 w-4 transition ease-in-out duration-150 `}
|
||||
|
aria-hidden="true" |
||||
|
/> |
||||
|
</Popover.Button> |
||||
|
<Transition |
||||
|
as={Fragment} |
||||
|
enter="transition ease-out duration-200" |
||||
|
enterFrom="opacity-0 translate-y-1" |
||||
|
enterTo="opacity-100 translate-y-0" |
||||
|
leave="transition ease-in duration-150" |
||||
|
leaveFrom="opacity-100 translate-y-0" |
||||
|
leaveTo="opacity-0 translate-y-1" |
||||
|
> |
||||
|
<Popover.Panel className="absolute z-20 top-full w-full inset-x-0"> |
||||
|
<div className="bg-white dark:bg-neutral-900 shadow-lg"> |
||||
|
<div className="container"> |
||||
|
<div className="flex text-sm border-t border-slate-200 dark:border-slate-700 py-14"> |
||||
|
<div className="flex-1 grid grid-cols-5 gap-6 xl:gap-8 pr-6 xl:pr-8"> |
||||
|
{NAVIGATION_DEMO_2.map((item, index) => ( |
||||
|
<div key={index}> |
||||
|
<p className="font-medium text-slate-900 dark:text-neutral-200"> |
||||
|
{item.name} |
||||
|
</p> |
||||
|
<ul className="grid space-y-4 mt-4"> |
||||
|
{item.children?.map((item, index) => |
||||
|
renderMegaMenuNavlink(item, index, close) |
||||
|
)} |
||||
|
</ul> |
||||
|
</div> |
||||
|
))} |
||||
|
</div> |
||||
|
<div className="w-[35%] xl:w-[30%]"> |
||||
|
<Collection /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</Popover.Panel> |
||||
|
</Transition> |
||||
|
</> |
||||
|
)} |
||||
|
</Popover> |
||||
|
</> |
||||
|
); |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue