Untitled
unknown
javascript
3 years ago
7.5 kB
15
Indexable
/*
As headlessui is using the React Context API to handle the state of the menu and this is
Next 13, we have to tell Next to use client side rendering.
*/
'use client';
import { Fragment } from 'react'
import Link from 'next/link'
import Image from 'next/image'
import { Popover, Transition } from '@headlessui/react'
import {
Bars2Icon,
XMarkIcon,
AtSymbolIcon,
CubeIcon,
ChatBubbleOvalLeftEllipsisIcon,
ClipboardDocumentCheckIcon,
IdentificationIcon,
} from '@heroicons/react/24/outline'
// import { ChevronDownIcon } from '@heroicons/react/solid'
const menuLinks = [
{
name: 'SERVICES',
description: 'Get a better understanding of the sericves Tmutla offers.',
href: '/services',
icon: CubeIcon,
},
{
name: 'CONTACT',
description: 'Reach out and contact us',
href: '/contact',
icon: ChatBubbleOvalLeftEllipsisIcon,
},
// {
// name: 'RESOURCES',
// description: 'Build your knowledge through our expertise',
// href: '/resources',
// icon: ClipboardDocumentCheckIcon,
// },
{
name: 'ABOUT',
description: 'Learn about us, who we are, and what we do',
href: '/about',
icon: IdentificationIcon,
},
// {
// name: 'EVENTS',
// description: 'Participate in one of our events, ask questions, get involved, and learn.',
// href: '/events',
// icon: AtSymbolIcon,
// },
// {
// name: 'ARTICLES',
// description: "See what we have been up to through out industry insights.",
// href: '/articles',
// icon: AtSymbolIcon,
// },
]
// function classNames(...classes) {
// return classes.filter(Boolean).join(' ')
// }
export default function Navbar() {
return (
<Popover className="relative w-full z-50 border-gray-900 border-b-2">
{({ open }) => (
<>
<div className="w-full mx-auto sm:px-6">
<div className="flex justify-between items-center border-b-2 border-gray-100 md:space-x-10">
<div className="flex justify-start lg:w-0 lg:flex-1">
<Link
href='/'
className="-m-3 p-3 flex items-center flex"
>
<span className="sr-only">Workflow</span>
<img
className="w-18 h-14 md:w-32 md:h-24 "
src="/raccoon-200x139.png"
alt="Big Trash Panda Logo"
/>
</Link>
</div>
<div className="md:hidden">
<Popover.Button className="bg-white rounded-md p-2 inline-flex items-center justify-center text-gray-400 hover:text-red hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-red">
<>
<span className="sr-only">Open menu</span>
<Bars2Icon className="h-6 w-6" aria-hidden="true" />
</>
</Popover.Button>
</div>
<Popover.Group as="nav" className="hidden md:flex space-x-10">
<Popover className="relative">
{({ open }) => (
<Transition
show={open}
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
static
className="absolute bottom-0 z-10 -ml-4 mt-3 transform px-2 w-screen max-w-md sm:px-0 lg:ml-0 lg:left-1/2 lg:-translate-x-1/2"
>
<div className="shadow-lg ring-1 ring-black ring-opacity-5 overflow-hidden">
<div className="relative grid gap-6 bg-white px-5 py-6 sm:gap-8 sm:p-8">
{menuLinks.map((item) => (
<Link
key={item.name}
href={item.href}
className="-m-3 p-3 flex items-start hover:bg-gray-50"
>
<div className="flex">
<item.icon className="flex-shrink-0 h-6 w-6 text-red" aria-hidden="true" />
<div className="ml-4">
<p className="text-base font-medium text-gray-900">{item.name}</p>
<p className="mt-1 text-sm text-gray-500">{item.description}</p>
</div>
</div>
</Link>
))}
</div>
</div>
</Popover.Panel>
</Transition>
)}
</Popover>
{menuLinks.map((item) => (
<Link
key={item.name}
href={item.href}
className="px-2 lg:px-6 py-4 flex items-center border-gray-900 text-gray-900 hover:text-gray-700 hover:shadow-lg hover:scale-120 transition ease-in-out delay-250"
>
<span className="text-base font-medium">{item.name}</span>
</Link>
))}
</Popover.Group>
</div>
</div>
<Transition
show={open}
as={Fragment}
enter="duration-200 ease-out"
enterFrom="opacity-0 scale-95"
enterTo="opacity-100 scale-100"
leave="duration-100 ease-in"
leaveFrom="opacity-100 scale-100"
leaveTo="opacity-0 scale-95"
>
<Popover.Panel
focus
static
className="absolute top-0 bottom-0 inset-x-0 p-2 transition transform origin-top-right md:hidden"
>
<div className="shadow-lg ring-1 ring-black ring-opacity-5 bg-white">
<div className="pt-5 pb-6 px-5">
<div className="flex items-center justify-between">
<div>
Big Trash Panda
</div>
<div className="-mr-2">
<Popover.Button className="bg-white p-2 inline-flex items-center justify-center text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-indigo-500">
<span className="sr-only">Close menu</span>
<XMarkIcon className="h-6 w-6" aria-hidden="true" />
</Popover.Button>
</div>
</div>
<div className="mt-6">
<nav className="grid gap-y-8">
{menuLinks.map((item) => (
<Link
key={item.name}
href={item.href}
className="-m-3 p-3 flex items-center hover:bg-gray-50 flex"
>
<item.icon className="flex-shrink-0 h-6 w-6 text-red-dark" aria-hidden="true" />
<span className="ml-3 text-base font-medium text-gray-900">{item.name}</span>
</Link>
))}
</nav>
</div>
</div>
<div className="py-6 px-5 space-y-6">
<div className="lg:hidden w-2/3 pt-6 py-2 px-4 flex flex-col border-t-4 border-solid border-red">
{/* <Link href="/report-breach">
<button className="mb-3 w-full transition duration-500 ease-in-out transform hover:-translate-x-1 hover:scale-110 p-3 bg-red text-black hover:bg-red-light">REPORT A BREACH</button>
</Link> */}
Give us a call:
<a className="pt-3 w-full" href="tel:1-503-884-7615">503-884-7615</a>
</div>
</div>
</div>
</Popover.Panel>
</Transition>
</>
)}
</Popover>
)
}Editor is loading...