editor-navigation-toolbar.tsx 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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 EditorNavigationToolbarRoot from '@/features/editor-navigation-toolbar/components/editor-navigation-toolbar-root'
  5. import ShareProjectModal from '@/features/share-project-modal/components/share-project-modal'
  6. import EditorOverLimitModal from '@/features/share-project-modal/components/editor-over-limit-modal'
  7. import ViewOnlyAccessModal from '@/features/share-project-modal/components/view-only-access-modal'
  8. import { useEditorAnalytics } from '@/shared/hooks/use-editor-analytics'
  9. function EditorNavigationToolbar() {
  10. const [showShareModal, setShowShareModal] = useState(false)
  11. const { onlineUsersArray } = useOnlineUsersContext()
  12. const { openDoc } = useEditorManagerContext()
  13. const { sendEventOnce } = useEditorAnalytics()
  14. const handleOpenShareModal = useCallback(() => {
  15. sendEventOnce('ide-open-share-modal-once')
  16. setShowShareModal(true)
  17. }, [sendEventOnce])
  18. const handleHideShareModal = useCallback(() => {
  19. setShowShareModal(false)
  20. }, [])
  21. return (
  22. <>
  23. <EditorNavigationToolbarRoot
  24. onlineUsersArray={onlineUsersArray}
  25. openDoc={openDoc}
  26. openShareProjectModal={handleOpenShareModal}
  27. />
  28. <EditorOverLimitModal />
  29. <ViewOnlyAccessModal />
  30. <ShareProjectModal
  31. show={showShareModal}
  32. handleOpen={handleOpenShareModal}
  33. handleHide={handleHideShareModal}
  34. />
  35. </>
  36. )
  37. }
  38. export default EditorNavigationToolbar