|
@@ -28,6 +28,9 @@ import { usePageItemControl } from './use-page-item-control';
|
|
|
|
|
|
|
|
import styles from './PageTreeItem.module.scss';
|
|
import styles from './PageTreeItem.module.scss';
|
|
|
|
|
|
|
|
|
|
+const moduleClass = styles['page-tree-item'] ?? '';
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
const logger = loggerFactory('growi:cli:Item');
|
|
const logger = loggerFactory('growi:cli:Item');
|
|
|
|
|
|
|
|
export const PageTreeItem: FC<TreeItemProps> = (props) => {
|
|
export const PageTreeItem: FC<TreeItemProps> = (props) => {
|
|
@@ -58,7 +61,6 @@ export const PageTreeItem: FC<TreeItemProps> = (props) => {
|
|
|
|
|
|
|
|
const { page } = itemNode;
|
|
const { page } = itemNode;
|
|
|
const [isOpen, setIsOpen] = useState(_isOpen);
|
|
const [isOpen, setIsOpen] = useState(_isOpen);
|
|
|
- const [shouldHide, setShouldHide] = useState(false);
|
|
|
|
|
|
|
|
|
|
const { mutate: mutateChildren } = useSWRxPageChildren(isOpen ? page._id : null);
|
|
const { mutate: mutateChildren } = useSWRxPageChildren(isOpen ? page._id : null);
|
|
|
|
|
|
|
@@ -77,17 +79,6 @@ export const PageTreeItem: FC<TreeItemProps> = (props) => {
|
|
|
router.push(link);
|
|
router.push(link);
|
|
|
}, [router]);
|
|
}, [router]);
|
|
|
|
|
|
|
|
- const displayDroppedItemByPageId = useCallback((pageId) => {
|
|
|
|
|
- const target = document.getElementById(`pagetree-item-${pageId}`);
|
|
|
|
|
- if (target == null) {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- // // wait 500ms to avoid removing before d-none is set by useDrag end() callback
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- target.classList.remove('d-none');
|
|
|
|
|
- }, 500);
|
|
|
|
|
- }, []);
|
|
|
|
|
-
|
|
|
|
|
const [, drag] = useDrag({
|
|
const [, drag] = useDrag({
|
|
|
type: 'PAGE_TREE',
|
|
type: 'PAGE_TREE',
|
|
|
item: { page },
|
|
item: { page },
|
|
@@ -100,9 +91,6 @@ export const PageTreeItem: FC<TreeItemProps> = (props) => {
|
|
|
end: (item, monitor) => {
|
|
end: (item, monitor) => {
|
|
|
// in order to set d-none to dropped Item
|
|
// in order to set d-none to dropped Item
|
|
|
const dropResult = monitor.getDropResult();
|
|
const dropResult = monitor.getDropResult();
|
|
|
- if (dropResult != null) {
|
|
|
|
|
- setShouldHide(true);
|
|
|
|
|
- }
|
|
|
|
|
},
|
|
},
|
|
|
collect: monitor => ({
|
|
collect: monitor => ({
|
|
|
isDragging: monitor.isDragging(),
|
|
isDragging: monitor.isDragging(),
|
|
@@ -136,8 +124,6 @@ export const PageTreeItem: FC<TreeItemProps> = (props) => {
|
|
|
setIsOpen(true);
|
|
setIsOpen(true);
|
|
|
}
|
|
}
|
|
|
catch (err) {
|
|
catch (err) {
|
|
|
- // display the dropped item
|
|
|
|
|
- displayDroppedItemByPageId(droppedPage._id);
|
|
|
|
|
if (err.code === 'operation__blocked') {
|
|
if (err.code === 'operation__blocked') {
|
|
|
toastWarning(t('pagetree.you_cannot_move_this_page_now'));
|
|
toastWarning(t('pagetree.you_cannot_move_this_page_now'));
|
|
|
}
|
|
}
|
|
@@ -180,11 +166,13 @@ export const PageTreeItem: FC<TreeItemProps> = (props) => {
|
|
|
drop(c);
|
|
drop(c);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- const mainClassName = `${isOver ? 'grw-pagetree-is-over' : ''} ${shouldHide ? 'd-none' : ''}`;
|
|
|
|
|
|
|
+ const itemClassName = `${isOver ? 'drag-over' : ''}`;
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
<TreeItemLayout
|
|
<TreeItemLayout
|
|
|
|
|
+ className={moduleClass}
|
|
|
targetPathOrId={props.targetPathOrId}
|
|
targetPathOrId={props.targetPathOrId}
|
|
|
|
|
+ itemLevel={props.itemLevel}
|
|
|
itemNode={props.itemNode}
|
|
itemNode={props.itemNode}
|
|
|
isOpen={isOpen}
|
|
isOpen={isOpen}
|
|
|
isEnableActions={props.isEnableActions}
|
|
isEnableActions={props.isEnableActions}
|
|
@@ -196,7 +184,7 @@ export const PageTreeItem: FC<TreeItemProps> = (props) => {
|
|
|
onRenamed={props.onRenamed}
|
|
onRenamed={props.onRenamed}
|
|
|
itemRef={itemRef}
|
|
itemRef={itemRef}
|
|
|
itemClass={PageTreeItem}
|
|
itemClass={PageTreeItem}
|
|
|
- mainClassName={mainClassName}
|
|
|
|
|
|
|
+ itemClassName={itemClassName}
|
|
|
customEndComponents={[CountBadgeForPageTreeItem]}
|
|
customEndComponents={[CountBadgeForPageTreeItem]}
|
|
|
customHoveredEndComponents={[Control, NewPageCreateButton]}
|
|
customHoveredEndComponents={[Control, NewPageCreateButton]}
|
|
|
customHeadOfChildrenComponents={[NewPageInput, () => <CreatingNewPageSpinner show={isProcessingSubmission} />]}
|
|
customHeadOfChildrenComponents={[NewPageInput, () => <CreatingNewPageSpinner show={isProcessingSubmission} />]}
|