import { Box, Menu } from "@mantine/core"; import { BlockSchema, PartialBlock } from "bocknoat-core"; import { ReactNode, useCallback, useRef, useState } from "react"; import { HiChevronRight } from "react-icons/hi"; import { ColorPicker } from "../../../SharedComponents/ColorPicker/components/ColorPicker"; import { DragHandleMenuProps } from "../DragHandleMenu"; import { DragHandleMenuItem } from "../DragHandleMenuItem"; export const BlockColorsButton = ( props: DragHandleMenuProps & { children: ReactNode } ) => { const [opened, setOpened] = useState(false); const menuCloseTimer = useRef(); const startMenuCloseTimer = useCallback(() => { if (menuCloseTimer.current) { clearTimeout(menuCloseTimer.current); } menuCloseTimer.current = setTimeout(() => { setOpened(false); }, 250); }, []); const stopMenuCloseTimer = useCallback(() => { if (menuCloseTimer.current) { clearTimeout(menuCloseTimer.current); } setOpened(true); }, []); if ( !("textColor" in props.block.props) || !("backgroundColor" in props.block.props) ) { return null; } return (
{props.children}
props.editor.updateBlock(props.block, { props: { textColor: color }, } as PartialBlock) } setBackgroundColor={(color) => props.editor.updateBlock(props.block, { props: { backgroundColor: color }, } as PartialBlock) } />
); };