DropendMenu.tsx 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import React from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import { DropdownMenu, DropdownItem } from 'reactstrap';
  4. import { LabelType } from '~/interfaces/template';
  5. type DropendMenuProps = {
  6. onClickCreateNewPageButtonHandler: () => Promise<void>
  7. onClickCreateTodaysButtonHandler: () => Promise<void>
  8. onClickTemplateButtonHandler: (label: LabelType) => Promise<void>
  9. todaysPath: string | null,
  10. }
  11. export const DropendMenu = React.memo((props: DropendMenuProps): JSX.Element => {
  12. const {
  13. onClickCreateNewPageButtonHandler,
  14. onClickCreateTodaysButtonHandler,
  15. onClickTemplateButtonHandler,
  16. todaysPath,
  17. } = props;
  18. const { t } = useTranslation('commons');
  19. return (
  20. <>
  21. {/* <ul className="dropdown-menu">
  22. <li>
  23. <button
  24. className="dropdown-item"
  25. onClick={onClickCreateNewPageButtonHandler}
  26. type="button"
  27. >
  28. {t('create_page_dropdown.new_page')}
  29. </button>
  30. </li>
  31. {todaysPath != null && (
  32. <>
  33. <li><hr className="dropdown-divider" /></li>
  34. <li><span className="text-muted px-3">{t('create_page_dropdown.todays.desc')}</span></li>
  35. <li>
  36. <button
  37. className="dropdown-item"
  38. onClick={onClickCreateTodaysButtonHandler}
  39. type="button"
  40. >
  41. {todaysPath}
  42. </button>
  43. </li>
  44. </>
  45. )}
  46. <li><hr className="dropdown-divider" /></li>
  47. <li><span className="text-muted text-nowrap px-3">{t('create_page_dropdown.template.desc')}</span></li>
  48. <li>
  49. <button
  50. className="dropdown-item"
  51. onClick={() => onClickTemplateButtonHandler('_template')}
  52. type="button"
  53. >
  54. {t('create_page_dropdown.template.children')}
  55. </button>
  56. </li>
  57. <li>
  58. <button
  59. className="dropdown-item"
  60. onClick={() => onClickTemplateButtonHandler('__template')}
  61. type="button"
  62. >
  63. {t('create_page_dropdown.template.descendants')}
  64. </button>
  65. </li>
  66. </ul> */}
  67. <DropdownMenu container="body">
  68. <DropdownItem
  69. onClick={onClickCreateNewPageButtonHandler}
  70. >
  71. {t('create_page_dropdown.new_page')}
  72. </DropdownItem>
  73. {todaysPath != null && (
  74. <>
  75. <DropdownItem divider />
  76. <li><span className="text-muted px-3">{t('create_page_dropdown.todays.desc')}</span></li>
  77. <DropdownItem
  78. onClick={onClickCreateTodaysButtonHandler}
  79. >
  80. {todaysPath}
  81. </DropdownItem>
  82. </>
  83. )}
  84. <DropdownItem divider />
  85. <li><span className="text-muted text-nowrap px-3">{t('create_page_dropdown.template.desc')}</span></li>
  86. <DropdownItem
  87. onClick={() => onClickTemplateButtonHandler('_template')}
  88. >
  89. {t('create_page_dropdown.template.children')}
  90. </DropdownItem>
  91. <DropdownItem
  92. onClick={() => onClickTemplateButtonHandler('__template')}
  93. >
  94. {t('create_page_dropdown.template.descendants')}
  95. </DropdownItem>
  96. </DropdownMenu>
  97. </>
  98. );
  99. });
  100. DropendMenu.displayName = 'DropendMenu';