diff --git a/src/admin/AdminPhotoMenuClient.tsx b/src/admin/AdminPhotoMenuClient.tsx index a32dd09c..ca0c8488 100644 --- a/src/admin/AdminPhotoMenuClient.tsx +++ b/src/admin/AdminPhotoMenuClient.tsx @@ -1,15 +1,12 @@ 'use client'; +import { ComponentProps } from 'react'; import { pathForAdminPhotoEdit } from '@/site/paths'; -import { Menu } from '@headlessui/react'; -import clsx from 'clsx/lite'; -import Link from 'next/link'; -import { FiMoreHorizontal } from 'react-icons/fi'; +import MoreMenu from '../components/MoreMenu'; -export interface AdminPhotoMenuClientProps { +export interface AdminPhotoMenuClientProps + extends ComponentProps { photoId: string - className?: string - buttonClassName?: string } export default function AdminPhotoMenuClient({ @@ -18,35 +15,10 @@ export default function AdminPhotoMenuClient({ buttonClassName, }: AdminPhotoMenuClientProps) { return ( -
- - - - - - - - Edit Photo - - - - -
+ buttonClassName, + }}/> ); } diff --git a/src/components/MoreMenu.tsx b/src/components/MoreMenu.tsx new file mode 100644 index 00000000..b92400c1 --- /dev/null +++ b/src/components/MoreMenu.tsx @@ -0,0 +1,58 @@ +import clsx from 'clsx/lite'; +import Link from 'next/link'; +import { Menu } from '@headlessui/react'; +import { FiMoreHorizontal } from 'react-icons/fi'; +import { ReactNode } from 'react'; + +export default function MoreMenu({ + className, + buttonClassName, + items, +}: { + className?: string + buttonClassName?: string + items: { href: string, label: ReactNode }[], +}) { + return ( +
+ + + + + + {items.map(({ href, label }) => + + + {label} + + + )} + + +
+ ); +}