import { Badge as MantineBadge, Group as MantineGroup, Stack as MantineStack, Text as MantineText, } from "@mantine/core"; import { mergeRefs } from "@mantine/hooks"; import { assertEmpty } from "@blocknote/core"; import { ComponentProps, elementOverflow } from "@blocknote/react"; import { forwardRef, useEffect, useRef } from "react"; export const SuggestionMenuItem = forwardRef< HTMLDivElement, ComponentProps["SuggestionMenu"]["Item"] >((props, ref) => { const { className, isSelected, onClick, item, id, ...rest } = props; assertEmpty(rest); const itemRef = useRef(null); useEffect(() => { if (!itemRef.current || !isSelected) { return; } const overflow = elementOverflow( itemRef.current, itemRef.current.closest(".bn-suggestion-menu, #ai-suggestion-menu")!, ); if (overflow !== "none") { itemRef.current.scrollIntoView({ block: "nearest" }); } }, [isSelected]); return ( event.preventDefault()} onClick={onClick} aria-selected={isSelected || undefined} > {item.icon && ( {item.icon} )} {item.title} {item.subtext} {item.badge && ( {item.badge} )} ); });