import { useState } from 'react' import { Box, SpanBox } from '../../elements/LayoutPrimitives' import { LibraryItemNode } from '../../../lib/networking/queries/useGetLibraryItemsQuery' import { LinkedItemCardAction } from './CardTypes' import { Button } from '../../elements/Button' import { theme } from '../../tokens/stitches.config' import { ArchiveBox, DotsThree, Notebook, Tag, Trash, Tray, } from 'phosphor-react' import { CardMenu } from '../CardMenu' import { UserBasicData } from '../../../lib/networking/queries/useGetViewerQuery' import { useFloating, shift, offset } from '@floating-ui/react' type LibraryHoverActionsProps = { anchor: HTMLDivElement | null viewer: UserBasicData isHovered: boolean item: LibraryItemNode handleAction: (action: LinkedItemCardAction) => void } export const LibraryHoverActions = (props: LibraryHoverActionsProps) => { const [menuOpen, setMenuOpen] = useState(false) const { refs, floatingStyles } = useFloating({ elements: { reference: props.anchor, }, middleware: [ offset({ mainAxis: -44, crossAxis: -10, }), ], placement: 'top-end', }) return ( setMenuOpen(open)} actionHandler={props.handleAction} triggerElement={ } /> ) }