actions-menu.tsx 994 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { ElementType } from 'react'
  2. import { useTranslation } from 'react-i18next'
  3. import getMeta from '../../../utils/meta'
  4. import importOverleafModules from '../../../../macros/import-overleaf-module.macro'
  5. import ActionsCopyProject from './actions-copy-project'
  6. import ActionsWordCount from './actions-word-count'
  7. const components = importOverleafModules('editorLeftMenuManageTemplate') as {
  8. import: { default: ElementType }
  9. path: string
  10. }[]
  11. export default function ActionsMenu() {
  12. const { t } = useTranslation()
  13. const anonymous = getMeta('ol-anonymous')
  14. if (anonymous) {
  15. return null
  16. }
  17. return (
  18. <>
  19. <h4>{t('actions')}</h4>
  20. <ul className="list-unstyled nav">
  21. <li>
  22. <ActionsCopyProject />
  23. </li>
  24. {components.map(({ import: { default: Component }, path }) => (
  25. <li key={path}>
  26. <Component />
  27. </li>
  28. ))}
  29. <li>
  30. <ActionsWordCount />
  31. </li>
  32. </ul>
  33. </>
  34. )
  35. }