duplicate-project.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import EditorCloneProjectModalWrapper from '@/features/clone-project-modal/components/editor-clone-project-modal-wrapper'
  2. import OLDropdownMenuItem from '@/shared/components/ol/ol-dropdown-menu-item'
  3. import { useEditorAnalytics } from '@/shared/hooks/use-editor-analytics'
  4. import useOpenProject from '@/shared/hooks/use-open-project'
  5. import getMeta from '@/utils/meta'
  6. import { useCallback, useState } from 'react'
  7. import { useTranslation } from 'react-i18next'
  8. export const DuplicateProject = () => {
  9. const { sendEvent } = useEditorAnalytics()
  10. const { t } = useTranslation()
  11. const [showModal, setShowModal] = useState(false)
  12. const anonymous = getMeta('ol-anonymous')
  13. const openProject = useOpenProject()
  14. const handleShowModal = useCallback(() => {
  15. sendEvent('copy-project', { location: 'project-title-dropdown' })
  16. setShowModal(true)
  17. }, [sendEvent])
  18. if (anonymous) {
  19. return null
  20. }
  21. return (
  22. <>
  23. <OLDropdownMenuItem onClick={handleShowModal}>
  24. {t('make_a_copy')}
  25. </OLDropdownMenuItem>
  26. <EditorCloneProjectModalWrapper
  27. show={showModal}
  28. handleHide={() => setShowModal(false)}
  29. openProject={openProject}
  30. />
  31. </>
  32. )
  33. }