|
@@ -1,5 +1,5 @@
|
|
|
import React, {
|
|
import React, {
|
|
|
- useCallback, useState, FC, useEffect, memo,
|
|
|
|
|
|
|
+ useCallback, useState, FC, useEffect, memo, useRef,
|
|
|
} from 'react';
|
|
} from 'react';
|
|
|
import nodePath from 'path';
|
|
import nodePath from 'path';
|
|
|
import { useTranslation } from 'react-i18next';
|
|
import { useTranslation } from 'react-i18next';
|
|
@@ -125,12 +125,19 @@ const Item: FC<ItemProps> = (props: ItemProps) => {
|
|
|
console.log('pageItem was droped!!');
|
|
console.log('pageItem was droped!!');
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- const [{ isOver }, drop] = useDrop(() => ({
|
|
|
|
|
|
|
+ const [, drop] = useDrop(() => ({
|
|
|
accept: 'PAGE_TREE',
|
|
accept: 'PAGE_TREE',
|
|
|
drop: pageItemDropHandler,
|
|
drop: pageItemDropHandler,
|
|
|
- collect: monitor => ({
|
|
|
|
|
- isOver: monitor.isOver(),
|
|
|
|
|
- }),
|
|
|
|
|
|
|
+ hover: (item, monitor) => {
|
|
|
|
|
+ // when a drag item is overlapped more than 1 sec, the drop target item will be opened.
|
|
|
|
|
+ if (monitor.isOver()) {
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ if (monitor.isOver()) {
|
|
|
|
|
+ setIsOpen(true);
|
|
|
|
|
+ }
|
|
|
|
|
+ }, 1000);
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
}));
|
|
}));
|
|
|
|
|
|
|
|
const hasChildren = useCallback((): boolean => {
|
|
const hasChildren = useCallback((): boolean => {
|