import { FlatList, StyleSheet, Platform } from 'react-native'; import { useBridgeState } from '../useBridgeState'; import React from 'react'; import { DEFAULT_TOOLBAR_ITEMS, HEADING_ITEMS, ToolbarContext, type ToolbarItem, } from './actions'; import { EditLinkBar } from './EditLinkBar'; import { useKeyboard } from '../../utils'; import type { EditorBridge } from '../../types'; import { ToolbarItemComp } from './ToolbarItemComp'; import { WebToolbar } from './WebToolbar'; interface ToolbarProps { editor: EditorBridge; hidden?: boolean; items?: ToolbarItem[]; shouldHideDisabledToolbarItems?: boolean; } export const toolbarStyles = StyleSheet.create({}); export function Toolbar({ editor, hidden = undefined, items = DEFAULT_TOOLBAR_ITEMS, shouldHideDisabledToolbarItems = false, }: ToolbarProps) { const editorState = useBridgeState(editor); const { isKeyboardUp } = useKeyboard(); const [toolbarContext, setToolbarContext] = React.useState( ToolbarContext.Main ); const hideToolbar = hidden === undefined ? !isKeyboardUp || !editorState.isFocused : hidden; const args = { editor, editorState, setToolbarContext, toolbarContext, }; const filteredItems = shouldHideDisabledToolbarItems ? items.filter((item) => !item.disabled(args)) : items; switch (toolbarContext) { case ToolbarContext.Main: case ToolbarContext.Heading: if (Platform.OS === 'web') { return (