Fixed undo of nodes when on input

This commit is contained in:
Lucas Oliveira 2023-07-20 17:00:37 -03:00
commit a63dcfa109
3 changed files with 20 additions and 12 deletions

View file

@ -152,7 +152,7 @@ export default function ParameterComponent({
return ( return (
<div <div
ref={ref} ref={ref}
className="nopan nodrag mt-1 flex w-full flex-wrap items-center justify-between bg-muted px-5 py-2" className="nopan nodrag noundo mt-1 flex w-full flex-wrap items-center justify-between bg-muted px-5 py-2"
> >
<> <>
<div <div

View file

@ -7,6 +7,7 @@ import {
useState, useState,
} from "react"; } from "react";
import { Edge, Node, useReactFlow } from "reactflow"; import { Edge, Node, useReactFlow } from "reactflow";
import { isWrappedWithClass } from "../utils/utils";
import { TabsContext } from "./tabsContext"; import { TabsContext } from "./tabsContext";
type undoRedoContextType = { type undoRedoContextType = {
@ -148,17 +149,21 @@ export function UndoRedoProvider({ children }) {
} }
const keyDownHandler = (event: KeyboardEvent) => { const keyDownHandler = (event: KeyboardEvent) => {
if ( if (!isWrappedWithClass(event, "noundo")) {
event.key === "z" && if (
(event.ctrlKey || event.metaKey) && event.key === "z" &&
event.shiftKey (event.ctrlKey || event.metaKey) &&
) { event.shiftKey
redo(); ) {
} else if (event.key === "y" && (event.ctrlKey || event.metaKey)) { event.preventDefault();
event.preventDefault(); // prevent the default action redo();
redo(); } else if (event.key === "y" && (event.ctrlKey || event.metaKey)) {
} else if (event.key === "z" && (event.ctrlKey || event.metaKey)) { event.preventDefault(); // prevent the default action
undo(); redo();
} else if (event.key === "z" && (event.ctrlKey || event.metaKey)) {
event.preventDefault();
undo();
}
} }
}; };

View file

@ -85,6 +85,9 @@ export function checkUpperWords(str: string) {
return words.join(" "); return words.join(" ");
} }
export const isWrappedWithClass = (event: any, className: string | undefined) =>
event.target.closest(`.${className}`);
export function groupByFamily(data, baseClasses, left, type) { export function groupByFamily(data, baseClasses, left, type) {
let parentOutput: string; let parentOutput: string;
let arrOfParent: string[] = []; let arrOfParent: string[] = [];