mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-25 18:26:05 +08:00
fix(core): sidebar renaming bug (#7632)
This commit is contained in:
@@ -679,6 +679,15 @@ export const ExplorerFolderNodeFolder = ({
|
|||||||
[handleDeleteChildren, t]
|
[handleDeleteChildren, t]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const handleCollapsedChange = useCallback((collapsed: boolean) => {
|
||||||
|
if (collapsed) {
|
||||||
|
setNewFolderId(null); // reset new folder id to clear the renaming state
|
||||||
|
setCollapsed(true);
|
||||||
|
} else {
|
||||||
|
setCollapsed(false);
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ExplorerTreeNode
|
<ExplorerTreeNode
|
||||||
icon={({ draggedOver, className, treeInstruction }) => (
|
icon={({ draggedOver, className, treeInstruction }) => (
|
||||||
@@ -694,7 +703,7 @@ export const ExplorerFolderNodeFolder = ({
|
|||||||
renameable
|
renameable
|
||||||
reorderable={reorderable}
|
reorderable={reorderable}
|
||||||
collapsed={collapsed}
|
collapsed={collapsed}
|
||||||
setCollapsed={setCollapsed}
|
setCollapsed={handleCollapsedChange}
|
||||||
onRename={handleRename}
|
onRename={handleRename}
|
||||||
operations={finalOperations}
|
operations={finalOperations}
|
||||||
canDrop={handleCanDrop}
|
canDrop={handleCanDrop}
|
||||||
|
|||||||
@@ -95,12 +95,21 @@ export const ExplorerOrganize = ({
|
|||||||
DropTargetOptions<AffineDNDData>['canDrop']
|
DropTargetOptions<AffineDNDData>['canDrop']
|
||||||
>(() => args => args.source.data.entity?.type === 'folder', []);
|
>(() => args => args.source.data.entity?.type === 'folder', []);
|
||||||
|
|
||||||
|
const handleCollapsedChange = useCallback((collapsed: boolean) => {
|
||||||
|
if (collapsed) {
|
||||||
|
setNewFolderId(null); // reset new folder id to clear the renaming state
|
||||||
|
setCollapsed(true);
|
||||||
|
} else {
|
||||||
|
setCollapsed(false);
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Collapsible.Root className={styles.container} open={!collapsed}>
|
<Collapsible.Root className={styles.container} open={!collapsed}>
|
||||||
<CategoryDivider
|
<CategoryDivider
|
||||||
className={styles.draggedOverHighlight}
|
className={styles.draggedOverHighlight}
|
||||||
label={t['com.affine.rootAppSidebar.organize']()}
|
label={t['com.affine.rootAppSidebar.organize']()}
|
||||||
setCollapsed={setCollapsed}
|
setCollapsed={handleCollapsedChange}
|
||||||
collapsed={collapsed}
|
collapsed={collapsed}
|
||||||
>
|
>
|
||||||
<IconButton
|
<IconButton
|
||||||
|
|||||||
@@ -37,12 +37,21 @@ export const ExplorerTags = ({
|
|||||||
setCollapsed(false);
|
setCollapsed(false);
|
||||||
}, [t, tagService]);
|
}, [t, tagService]);
|
||||||
|
|
||||||
|
const handleCollapsedChange = useCallback((collapsed: boolean) => {
|
||||||
|
if (collapsed) {
|
||||||
|
setCreatedTag(null); // reset created tag to clear the renaming state
|
||||||
|
setCollapsed(true);
|
||||||
|
} else {
|
||||||
|
setCollapsed(false);
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Collapsible.Root className={styles.container} open={!collapsed}>
|
<Collapsible.Root className={styles.container} open={!collapsed}>
|
||||||
<CategoryDivider
|
<CategoryDivider
|
||||||
className={styles.draggedOverHighlight}
|
className={styles.draggedOverHighlight}
|
||||||
label={t['com.affine.rootAppSidebar.tags']()}
|
label={t['com.affine.rootAppSidebar.tags']()}
|
||||||
setCollapsed={setCollapsed}
|
setCollapsed={handleCollapsedChange}
|
||||||
collapsed={collapsed}
|
collapsed={collapsed}
|
||||||
>
|
>
|
||||||
<IconButton
|
<IconButton
|
||||||
|
|||||||
@@ -24,10 +24,8 @@ import { assignInlineVars } from '@vanilla-extract/dynamic';
|
|||||||
import clsx from 'clsx';
|
import clsx from 'clsx';
|
||||||
import type { To } from 'history';
|
import type { To } from 'history';
|
||||||
import {
|
import {
|
||||||
type Dispatch,
|
|
||||||
Fragment,
|
Fragment,
|
||||||
type RefAttributes,
|
type RefAttributes,
|
||||||
type SetStateAction,
|
|
||||||
useCallback,
|
useCallback,
|
||||||
useContext,
|
useContext,
|
||||||
useEffect,
|
useEffect,
|
||||||
@@ -86,7 +84,7 @@ export const ExplorerTreeNode = ({
|
|||||||
reorderable?: boolean;
|
reorderable?: boolean;
|
||||||
defaultRenaming?: boolean;
|
defaultRenaming?: boolean;
|
||||||
collapsed: boolean;
|
collapsed: boolean;
|
||||||
setCollapsed: Dispatch<SetStateAction<boolean>>;
|
setCollapsed: (collapsed: boolean) => void;
|
||||||
renameable?: boolean;
|
renameable?: boolean;
|
||||||
onRename?: (newName: string) => void;
|
onRename?: (newName: string) => void;
|
||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
@@ -285,9 +283,9 @@ export const ExplorerTreeNode = ({
|
|||||||
if (!clickForCollapse) {
|
if (!clickForCollapse) {
|
||||||
onClick?.();
|
onClick?.();
|
||||||
} else {
|
} else {
|
||||||
setCollapsed(prev => !prev);
|
setCollapsed(!collapsed);
|
||||||
}
|
}
|
||||||
}, [clickForCollapse, onClick, setCollapsed]);
|
}, [clickForCollapse, collapsed, onClick, setCollapsed]);
|
||||||
|
|
||||||
const content = (
|
const content = (
|
||||||
<div
|
<div
|
||||||
|
|||||||
Reference in New Issue
Block a user