import { DropdownHeader } from '@/shared/components/dropdown/dropdown-menu' import { ToolbarButtonMenu } from './button-menu' import MaterialIcon from '../../../../shared/components/material-icon' import { useTranslation } from 'react-i18next' import { useEditorContext } from '@/shared/context/editor-context' import { memo, useRef, useCallback } from 'react' import OLListGroupItem from '@/shared/components/ol/ol-list-group-item' import sparkleWhite from '@/shared/svgs/sparkle-small-white.svg' import sparkle from '@/shared/svgs/ai-sparkle-text.svg' import { TableInserterDropdown } from './table-inserter-dropdown' import OLOverlay from '@/shared/components/ol/ol-overlay' import OLPopover from '@/shared/components/ol/ol-popover' import useDropdown from '../../../../shared/hooks/use-dropdown' import * as commands from '../../extensions/toolbar/commands' import { useCodeMirrorViewContext } from '../codemirror-context' import { emitToolbarEvent } from '../../extensions/toolbar/utils/analytics' import getMeta from '@/utils/meta' export const TableDropdown = memo(function TableDropdown() { const { t } = useTranslation() const { writefullInstance } = useEditorContext() const showAiFeaturesDisabled = getMeta('ol-showAiFeaturesDisabled') const selectSizeDropdown = useDropdown() const target = useRef(null) const view = useCodeMirrorViewContext() const onSizeSelected = useCallback( (sizeX: number, sizeY: number) => { selectSizeDropdown.onToggle(false) commands.insertTable(view, sizeX, sizeY) emitToolbarEvent(view, 'table-generator-insert-table') view.focus() }, [selectSizeDropdown, view] ) return ( <>
} > {t('toolbar_table_insert_table_lowercase')} { writefullInstance?.openTableGenerator() }} > {t('generate_from_text_or_image')}
{ event.preventDefault() event.stopPropagation() }} onClick={event => { selectSizeDropdown.onToggle(!selectSizeDropdown.open) // prevent click event from bubbling up to the toolbar overflow button causing it to close event.stopPropagation() }} > {t('select_size')} selectSizeDropdown.onToggle(false)} >
) })