|
|
@@ -4,6 +4,7 @@ import type { IUserHasId } from '@growi/core';
|
|
|
import { pagePathUtils } from '@growi/core/dist/utils';
|
|
|
import { format } from 'date-fns';
|
|
|
import { useTranslation } from 'react-i18next';
|
|
|
+import { Dropdown } from 'reactstrap';
|
|
|
|
|
|
import { useOnTemplateButtonClicked } from '~/client/services/use-on-template-button-clicked';
|
|
|
import { toastError } from '~/client/util/toastr';
|
|
|
@@ -16,6 +17,7 @@ import { DropendMenu } from './DropendMenu';
|
|
|
import { DropendToggle } from './DropendToggle';
|
|
|
import { useOnNewButtonClicked, useOnTodaysButtonClicked } from './hooks';
|
|
|
|
|
|
+
|
|
|
const generateTodaysPath = (currentUser: IUserHasId, parentDirName: string) => {
|
|
|
const now = format(new Date(), 'yyyy/MM/dd');
|
|
|
const userHomepagePath = pagePathUtils.userHomepagePath(currentUser);
|
|
|
@@ -31,6 +33,8 @@ export const PageCreateButton = React.memo((): JSX.Element => {
|
|
|
|
|
|
const [isHovered, setIsHovered] = useState(false);
|
|
|
|
|
|
+ const [dropdownOpen, setDropdownOpen] = useState(false);
|
|
|
+
|
|
|
const todaysPath = currentUser == null
|
|
|
? null
|
|
|
: generateTodaysPath(currentUser, t('create_page_dropdown.todays.memo'));
|
|
|
@@ -58,8 +62,11 @@ export const PageCreateButton = React.memo((): JSX.Element => {
|
|
|
|
|
|
const onMouseLeaveHandler = () => {
|
|
|
setIsHovered(false);
|
|
|
+ setDropdownOpen(false);
|
|
|
};
|
|
|
|
|
|
+ const toggle = () => setDropdownOpen(!dropdownOpen);
|
|
|
+
|
|
|
return (
|
|
|
<div
|
|
|
className="d-flex flex-row"
|
|
|
@@ -74,19 +81,20 @@ export const PageCreateButton = React.memo((): JSX.Element => {
|
|
|
/>
|
|
|
</div>
|
|
|
{ isHovered && (
|
|
|
- <div className="btn-group dropend position-absolute">
|
|
|
- <DropendToggle
|
|
|
- className="dropdown-toggle dropdown-toggle-split"
|
|
|
- data-bs-toggle="dropdown"
|
|
|
- aria-expanded="false"
|
|
|
- />
|
|
|
+ <Dropdown
|
|
|
+ isOpen={dropdownOpen}
|
|
|
+ toggle={toggle}
|
|
|
+ direction="end"
|
|
|
+ className="position-absolute"
|
|
|
+ >
|
|
|
+ <DropendToggle />
|
|
|
<DropendMenu
|
|
|
onClickCreateNewPageButtonHandler={onClickNewButton}
|
|
|
onClickCreateTodaysButtonHandler={onClickTodaysButton}
|
|
|
onClickTemplateButtonHandler={onClickTemplateButtonHandler}
|
|
|
todaysPath={todaysPath}
|
|
|
/>
|
|
|
- </div>
|
|
|
+ </Dropdown>
|
|
|
)}
|
|
|
</div>
|
|
|
);
|