import React, { ReactElement } from 'react'; import { ProviderFactory } from '@atlaskit/editor-common'; import { EditorView } from 'prosemirror-view'; import AvatarsWithPluginState from '../../../plugins/collab-edit/ui'; import Toolbar from '../../Toolbar'; import { MainToolbar, MainToolbarIconBefore, MainToolbarCustomComponentsSlot, } from './MainToolbar'; import { EditorAppearance, ReactComponents, ToolbarUIComponentFactory, } from '../../../types'; import { CollabEditOptions } from '../../../plugins/collab-edit'; import { DispatchAnalyticsEvent } from '../../../plugins/analytics'; import { EventDispatcher } from '../../../event-dispatcher'; import { EditorActions } from '../../..'; import { ContextPanelConsumer } from '../../ContextPanel/context'; import { FeatureFlags } from '../../../types/feature-flags'; export interface FullPageToolbarProps { appearance?: EditorAppearance; providerFactory: ProviderFactory; editorActions?: EditorActions; editorDOMElement: JSX.Element; editorView: EditorView; eventDispatcher: EventDispatcher; dispatchAnalyticsEvent?: DispatchAnalyticsEvent; primaryToolbarComponents?: ToolbarUIComponentFactory[]; customPrimaryToolbarComponents?: ReactComponents; popupsMountPoint?: HTMLElement; popupsBoundariesElement?: HTMLElement; popupsScrollableElement?: HTMLElement; disabled: boolean; collabEdit?: CollabEditOptions; showKeyline: boolean; containerElement: HTMLElement | null; beforeIcon?: ReactElement; hasMinWidth?: boolean; featureFlags?: FeatureFlags; } export const FullPageToolbar: React.FunctionComponent = React.memo( (props) => { return ( {({ width: contextPanelWidth }) => ( 0} > {props.beforeIcon && ( {props.beforeIcon} )} {props?.featureFlags?.showAvatarGroupAsPlugin === true ? null : ( )} {props.customPrimaryToolbarComponents} )} ); }, );