share-project-button.tsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import ShareProjectModal from '@/features/share-project-modal/components/share-project-modal'
  2. import OLButton from '@/shared/components/ol/ol-button'
  3. import MaterialIcon from '@/shared/components/material-icon'
  4. import { useCallback, useState } from 'react'
  5. import { useTranslation } from 'react-i18next'
  6. import { useEditorAnalytics } from '@/shared/hooks/use-editor-analytics'
  7. export default function ShareProjectButton() {
  8. const { t } = useTranslation()
  9. const { sendEventOnce } = useEditorAnalytics()
  10. const [showShareModal, setShowShareModal] = useState(false)
  11. const handleOpenShareModal = useCallback(() => {
  12. sendEventOnce('ide-open-share-modal-once')
  13. setShowShareModal(true)
  14. }, [sendEventOnce])
  15. const handleHideShareModal = useCallback(() => {
  16. setShowShareModal(false)
  17. }, [])
  18. return (
  19. <>
  20. <div className="ide-redesign-toolbar-button-container">
  21. <OLButton
  22. size="sm"
  23. variant="primary"
  24. leadingIcon={<MaterialIcon type="person_add" />}
  25. onClick={handleOpenShareModal}
  26. >
  27. {t('share')}
  28. </OLButton>
  29. </div>
  30. <ShareProjectModal
  31. show={showShareModal}
  32. handleOpen={handleOpenShareModal}
  33. handleHide={handleHideShareModal}
  34. />
  35. </>
  36. )
  37. }