editor-navigation-toolbar.tsx 1.9 KB

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