editor-navigation-toolbar.tsx 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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 NewShareProjectModal from '@/features/share-project-modal/components/restricted-link-sharing/share-project-modal'
  7. import ShareProjectModal from '@/features/share-project-modal/components/share-project-modal'
  8. import EditorOverLimitModal from '@/features/share-project-modal/components/restricted-link-sharing/editor-over-limit-modal'
  9. import ViewOnlyAccessModal from '@/features/share-project-modal/components/restricted-link-sharing/view-only-access-modal'
  10. import getMeta from '@/utils/meta'
  11. function EditorNavigationToolbar() {
  12. const [showShareModal, setShowShareModal] = useState(false)
  13. const { onlineUsersArray } = useOnlineUsersContext()
  14. const { openDoc } = useEditorManagerContext()
  15. const handleOpenShareModal = useCallback(() => {
  16. eventTracking.sendMBOnce('ide-open-share-modal-once')
  17. setShowShareModal(true)
  18. }, [])
  19. const handleHideShareModal = useCallback(() => {
  20. setShowShareModal(false)
  21. }, [])
  22. const showNewShareModal = getMeta('ol-linkSharingWarning')
  23. return (
  24. <>
  25. <EditorNavigationToolbarRoot
  26. onlineUsersArray={onlineUsersArray}
  27. openDoc={openDoc}
  28. openShareProjectModal={handleOpenShareModal}
  29. />
  30. {showNewShareModal ? (
  31. <>
  32. <EditorOverLimitModal />
  33. <ViewOnlyAccessModal />
  34. <NewShareProjectModal
  35. show={showShareModal}
  36. handleOpen={handleOpenShareModal}
  37. handleHide={handleHideShareModal}
  38. />
  39. </>
  40. ) : (
  41. <ShareProjectModal
  42. show={showShareModal}
  43. handleHide={handleHideShareModal}
  44. />
  45. )}
  46. </>
  47. )
  48. }
  49. export default EditorNavigationToolbar