import { ToolbarMenuBar } from './menu-bar' import { ToolbarProjectTitle } from './project-title' import { OnlineUsers } from './online-users' import ShareProjectButton from './share-project-button' import ChangeLayoutButton from './change-layout-button' import ShowHistoryButton from './show-history-button' import { LabsActions } from './labs-actions' import { useLayoutContext } from '@/shared/context/layout-context' import BackToEditorButton from '@/features/editor-navigation-toolbar/components/back-to-editor-button' import { useCallback } from 'react' import * as eventTracking from '../../../../infrastructure/event-tracking' import { ToolbarLogos } from './logos' import { useEditorContext } from '@/shared/context/editor-context' import importOverleafModules from '../../../../../macros/import-overleaf-module.macro' import UpgradeButton from './upgrade-button' import getMeta from '@/utils/meta' import { useIdeReactContext } from '@/features/ide-react/context/ide-react-context' const [publishModalModules] = importOverleafModules('publishModal') const SubmitProjectButton = publishModalModules?.import.NewPublishToolbarButton export const Toolbar = () => { const { view, restoreView } = useLayoutContext() const { cobranding } = useEditorContext() const { permissionsLevel } = useIdeReactContext() const shouldDisplaySubmitButton = (permissionsLevel === 'owner' || permissionsLevel === 'readAndWrite') && SubmitProjectButton const handleBackToEditorClick = useCallback(() => { eventTracking.sendMB('navigation-clicked-history', { action: 'close' }) restoreView() }, [restoreView]) if (view === 'history') { return (
{/* Empty div used for spacing */}
) } return (
{shouldDisplaySubmitButton && cobranding && ( )} {getMeta('ol-showUpgradePrompt') && }
) }