DropendMenu.tsx 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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
  68. container="body"
  69. style={{ zIndex: 1055 }}
  70. >
  71. <DropdownItem
  72. onClick={onClickCreateNewPageButtonHandler}
  73. >
  74. {t('create_page_dropdown.new_page')}
  75. </DropdownItem>
  76. {todaysPath != null && (
  77. <>
  78. <DropdownItem divider />
  79. <li><span className="text-muted px-3">{t('create_page_dropdown.todays.desc')}</span></li>
  80. <DropdownItem
  81. onClick={onClickCreateTodaysButtonHandler}
  82. >
  83. {todaysPath}
  84. </DropdownItem>
  85. </>
  86. )}
  87. <DropdownItem divider />
  88. <li><span className="text-muted text-nowrap px-3">{t('create_page_dropdown.template.desc')}</span></li>
  89. <DropdownItem
  90. onClick={() => onClickTemplateButtonHandler('_template')}
  91. >
  92. {t('create_page_dropdown.template.children')}
  93. </DropdownItem>
  94. <DropdownItem
  95. onClick={() => onClickTemplateButtonHandler('__template')}
  96. >
  97. {t('create_page_dropdown.template.descendants')}
  98. </DropdownItem>
  99. </DropdownMenu>
  100. </>
  101. );
  102. });
  103. DropendMenu.displayName = 'DropendMenu';