editor-navigation-toolbar.tsx 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { useState, useCallback } from 'react'
  2. import { useOnlineUsersContext } from '@/features/ide-react/context/online-users-context'
  3. import { useEditorManagerContext } from '@/features/ide-react/context/editor-manager-context'
  4. import * as eventTracking from '@/infrastructure/event-tracking'
  5. import EditorNavigationToolbarRoot from '@/features/editor-navigation-toolbar/components/editor-navigation-toolbar-root'
  6. import ShareProjectModal from '@/features/share-project-modal/components/restricted-link-sharing/share-project-modal'
  7. import EditorOverLimitModal from '@/features/share-project-modal/components/restricted-link-sharing/editor-over-limit-modal'
  8. import ViewOnlyAccessModal from '@/features/share-project-modal/components/restricted-link-sharing/view-only-access-modal'
  9. function EditorNavigationToolbar() {
  10. const [showShareModal, setShowShareModal] = useState(false)
  11. const { onlineUsersArray } = useOnlineUsersContext()
  12. const { openDoc } = useEditorManagerContext()
  13. const handleOpenShareModal = useCallback(() => {
  14. eventTracking.sendMBOnce('ide-open-share-modal-once')
  15. setShowShareModal(true)
  16. }, [])
  17. const handleHideShareModal = useCallback(() => {
  18. setShowShareModal(false)
  19. }, [])
  20. return (
  21. <>
  22. <EditorNavigationToolbarRoot
  23. onlineUsersArray={onlineUsersArray}
  24. openDoc={openDoc}
  25. openShareProjectModal={handleOpenShareModal}
  26. />
  27. <EditorOverLimitModal />
  28. <ViewOnlyAccessModal />
  29. <ShareProjectModal
  30. show={showShareModal}
  31. handleOpen={handleOpenShareModal}
  32. handleHide={handleHideShareModal}
  33. />
  34. </>
  35. )
  36. }
  37. export default EditorNavigationToolbar