import { useState, useRef, useEffect } from "react"; import Button from "./Button"; import MoreIcon from "../icons/MoreIcon"; import PopoverWrapper from "./PopoverWrapper"; import clsx from "clsx"; import { useClickAway } from "@uidotdev/usehooks"; interface ActionsPopoverProps { options: { label: string; onClick: () => void; icon?: React.ReactNode; disabled?: boolean; }[]; isOpened?: boolean; className?: string; } export default function ActionsPopover({ options, isOpened = false, className, }: ActionsPopoverProps) { const [opened, setOpened] = useState(isOpened); const buttonRef = useRef(null); const ref = useClickAway(() => setOpened(false)); useEffect(() => { const handleScroll = () => setOpened(false); addEventListener("scroll", handleScroll, true); return () => removeEventListener("scroll", handleScroll, true); }, []); return (
{options.map((option) => ( ))}
); }