homepage/src/components/services/group.jsx
Alex Higgins 041fae1fb3 Adds ability to collapse layout sections
Reverts pnpm lock file changes

Make entire section above list clickable.

Implement in headlessui instead of pulling in new library.

Remove unecessary packages and clean up ESLint errors
2023-06-22 10:00:04 -07:00

36 lines
1.3 KiB
JavaScript

import classNames from "classnames";
import { Transition } from '@headlessui/react'
import { useState } from 'react'
import List from "components/services/list";
import ResolvedIcon from "components/resolvedicon";
export default function ServicesGroup({ group, services, layout, fiveColumns, disableCollapse}) {
const [isShowing, setIsShowing] = useState(true)
return (
<div
key={services.name}
className={classNames(
layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/2 lg:basis-1/3 xl:basis-1/4",
layout?.style !== "row" && fiveColumns ? "3xl:basis-1/5" : "",
"flex-1 p-1"
)}
>
<div className="flex">
{/* eslint-disable-next-line no-shadow */}
<button type="button" disabled={disableCollapse} onClick={() => setIsShowing((isShowing) => !isShowing)} className="grow select-none items-center">
{layout?.icon &&
<div className="flex-shrink-0 mr-2 w-7 h-7">
<ResolvedIcon icon={layout.icon} />
</div>
}
<h2 className="flex text-theme-800 dark:text-theme-300 text-xl font-medium">{services.name}</h2>
</button>
</div>
<Transition show={isShowing}><List group={group} services={services.services} layout={layout} /></Transition>
</div>
);
}