DropendMenu.tsx 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import React from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. type DropendMenuProps = {
  4. todaysPath: string,
  5. onClickCreateNewPageButtonHandler: () => Promise<void>
  6. onClickCreateTodaysButtonHandler: () => Promise<void>
  7. onClickTemplateForChildrenButtonHandler: () => Promise<void>
  8. onClickTemplateForDescendantsButtonHandler: () => Promise<void>
  9. }
  10. export const DropendMenu = React.memo((props: DropendMenuProps): JSX.Element => {
  11. const {
  12. todaysPath,
  13. onClickCreateNewPageButtonHandler,
  14. onClickCreateTodaysButtonHandler,
  15. onClickTemplateForChildrenButtonHandler,
  16. onClickTemplateForDescendantsButtonHandler,
  17. } = props;
  18. const { t } = useTranslation('commons');
  19. return (
  20. <ul className="dropdown-menu">
  21. <li>
  22. <button
  23. className="dropdown-item"
  24. onClick={onClickCreateNewPageButtonHandler}
  25. type="button"
  26. >
  27. {t('create_page_dropdown.new_page')}
  28. </button>
  29. </li>
  30. <li><hr className="dropdown-divider" /></li>
  31. <li><span className="text-muted px-3">{t('create_page_dropdown.todays.desc')}</span></li>
  32. <li>
  33. <button
  34. className="dropdown-item"
  35. onClick={onClickCreateTodaysButtonHandler}
  36. type="button"
  37. >
  38. {todaysPath}
  39. </button>
  40. </li>
  41. <li><hr className="dropdown-divider" /></li>
  42. <li><span className="text-muted text-nowrap px-3">{t('create_page_dropdown.template.desc')}</span></li>
  43. <li>
  44. <button
  45. className="dropdown-item"
  46. onClick={onClickTemplateForChildrenButtonHandler}
  47. type="button"
  48. >
  49. {t('create_page_dropdown.template.children')}
  50. </button>
  51. </li>
  52. <li>
  53. <button
  54. className="dropdown-item"
  55. onClick={onClickTemplateForDescendantsButtonHandler}
  56. type="button"
  57. >
  58. {t('create_page_dropdown.template.descendants')}
  59. </button>
  60. </li>
  61. </ul>
  62. );
  63. });
  64. DropendMenu.displayName = 'DropendMenu';