Skip to content

Commit 7b2dece

Browse files
authored
Merge pull request #247 from boostcampwm-2024/feature-historyState-fix
[Feature-historyState-fix] redo를 할 때 undo가 함께 트리거되던 문제 해결 / 그룹 선택 이동시 매번 history 갱신 되던 문제 해결
2 parents 6501aa6 + 96631e3 commit 7b2dece

File tree

4 files changed

+13
-12
lines changed

4 files changed

+13
-12
lines changed

client/src/components/MindMapCanvas/ToolMenu.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ type ToolMenuProps = {
1919
setDragmode: React.Dispatch<React.SetStateAction<boolean>>;
2020
};
2121
export default function ToolMenu({ dimensions, zoomIn, zoomOut, dragmode, setDragmode }: ToolMenuProps) {
22-
const { data, selectNode, selectedNode, saveHistory, overrideNodeData } = useNodeListContext();
22+
const { data, selectNode, selectedNode, overrideNodeData } = useNodeListContext();
2323
const intervalRef = useRef(null);
2424

2525
const startZoom = (zoomFn) => {

client/src/components/MindMapCanvas/index.tsx

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,14 @@ export default function MindMapCanvas({ showMinutes, handleShowMinutes }) {
5252
useWindowEventListener("keydown", (e) => {
5353
e.preventDefault();
5454
if (e.metaKey || e.ctrlKey) {
55-
if (e.shiftKey && e.code === "KeyZ") redo();
56-
switch (e.code) {
57-
case "KeyZ":
58-
undo();
59-
break;
60-
case "KeyR":
61-
const url = window.location;
62-
location.href = url.pathname + url.search;
63-
break;
55+
if (e.shiftKey && e.code === "KeyZ") {
56+
redo();
57+
} else if (e.code === "KeyZ") {
58+
undo();
59+
}
60+
if (e.code === "KeyR") {
61+
const url = window.location;
62+
location.href = url.pathname + url.search;
6463
}
6564
}
6665

client/src/konva_mindmap/components/MindMapNode.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import useWindowEventListener from "@/hooks/useWindowEventListener";
2424

2525
export default function MindMapNode({ data, parentNode, node, depth, dragmode, scale }: NodeProps) {
2626
const nodeRef = useRef<Konva.Group>(null);
27-
const { saveHistory, updateNode, selectNode, selectedNode, selectedGroup, overrideNodeData, groupRelease } =
27+
const { saveHistory, updateNode, selectNode, selectedNode, selectedGroup, setData, overrideNodeData, groupRelease } =
2828
useNodeListContext();
2929
const handleSocketEvent = useConnectionStore.getState().handleSocketEvent;
3030
const [isEditing, setIsEditing] = useState(false);
@@ -82,7 +82,7 @@ export default function MindMapNode({ data, parentNode, node, depth, dragmode, s
8282

8383
if (selectedGroup.length) {
8484
const groupMove = getMovedNodesLocation(data, selectedGroup, node, dx, dy, currentPos);
85-
overrideNodeData(groupMove);
85+
setData(groupMove);
8686
return;
8787
}
8888

client/src/store/NodeListProvider.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import useLoading, { MindMapLoadingHook } from "@/hooks/useLoading";
1414
export type NodeListContextType = {
1515
stage: RefObject<Konva.Stage>;
1616
data: NodeData | null;
17+
setData: React.Dispatch<React.SetStateAction<NodeData | null>>;
1718
selectedNode: SelectedNode | null;
1819
history: string[];
1920
updateNode: (id: number, node: Partial<Node>) => void;
@@ -151,6 +152,7 @@ export default function NodeListProvider({ children }: { children: ReactNode })
151152
<NodeListContext.Provider
152153
value={{
153154
data,
155+
setData,
154156
updateNode,
155157
overrideNodeData,
156158
undoData,

0 commit comments

Comments
 (0)