This is an automated email from the ASF dual-hosted git repository.

tiagobento pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools.git


The following commit(s) were added to refs/heads/main by this push:
     new 9fb900084c0 kie-issues#928: On the DMN Editor, don't allow the DRD 
selection panel to open at the same time as DRG / External nodes panel (#2157)
9fb900084c0 is described below

commit 9fb900084c056d66a8895cbc2e77ee5578989575
Author: Tiago Bento <[email protected]>
AuthorDate: Wed Feb 14 11:10:32 2024 -0500

    kie-issues#928: On the DMN Editor, don't allow the DRD selection panel to 
open at the same time as DRG / External nodes panel (#2157)
---
 packages/dmn-editor/src/diagram/Diagram.tsx        |  4 +--
 .../dmn-editor/src/diagram/DrdSelectorPanel.tsx    |  5 ++-
 packages/dmn-editor/src/diagram/DrgNodesPanel.tsx  |  4 +--
 packages/dmn-editor/src/diagram/Palette.tsx        | 37 ++++++++++++----------
 .../src/externalNodes/ExternalNodesPanel.tsx       |  4 +--
 packages/dmn-editor/src/store/Store.ts             | 13 +++-----
 6 files changed, 32 insertions(+), 35 deletions(-)

diff --git a/packages/dmn-editor/src/diagram/Diagram.tsx 
b/packages/dmn-editor/src/diagram/Diagram.tsx
index 3fb72742c7b..3740b0ea1c4 100644
--- a/packages/dmn-editor/src/diagram/Diagram.tsx
+++ b/packages/dmn-editor/src/diagram/Diagram.tsx
@@ -75,7 +75,7 @@ import { repositionNode } from "../mutations/repositionNode";
 import { resizeNode } from "../mutations/resizeNode";
 import { updateExpression } from "../mutations/updateExpression";
 import { OverlaysPanel } from "../overlaysPanel/OverlaysPanel";
-import { DiagramNodesPanel, SnapGrid } from "../store/Store";
+import { DiagramLhsPanel, SnapGrid } from "../store/Store";
 import { useDmnEditorStore, useDmnEditorStoreApi } from 
"../store/StoreContext";
 import { Unpacked } from "../tsExt/tsExt";
 import { buildXmlHref, parseXmlHref } from "../xml/xmlHrefs";
@@ -1071,7 +1071,7 @@ export const Diagram = React.forwardRef<DiagramRef, { 
container: React.RefObject
                 console.debug("DMN DIAGRAM: Esc pressed. Closing all open 
panels.");
                 state.diagram.propertiesPanel.isOpen = false;
                 state.diagram.overlaysPanel.isOpen = false;
-                state.diagram.openNodesPanel = DiagramNodesPanel.NONE;
+                state.diagram.openLhsPanel = DiagramLhsPanel.NONE;
                 e.preventDefault();
               } else {
                 // Let the
diff --git a/packages/dmn-editor/src/diagram/DrdSelectorPanel.tsx 
b/packages/dmn-editor/src/diagram/DrdSelectorPanel.tsx
index 40a3b787f61..4b1627ee71b 100644
--- a/packages/dmn-editor/src/diagram/DrdSelectorPanel.tsx
+++ b/packages/dmn-editor/src/diagram/DrdSelectorPanel.tsx
@@ -24,7 +24,7 @@ import { Text, TextContent } from 
"@patternfly/react-core/dist/js/components/Tex
 import { Button, ButtonVariant } from 
"@patternfly/react-core/dist/js/components/Button";
 import { PlusCircleIcon } from 
"@patternfly/react-icons/dist/js/icons/plus-circle-icon";
 import { Divider } from "@patternfly/react-core/dist/js/components/Divider";
-import { DiagramNodesPanel } from "../store/Store";
+import { DiagramLhsPanel } from "../store/Store";
 import { getDrdId } from "./drd/drdId";
 import { Title } from "@patternfly/react-core/dist/js/components/Title";
 import { Form, FormGroup, FormSection } from 
"@patternfly/react-core/dist/js/components/Form";
@@ -76,8 +76,7 @@ export function DrdSelectorPanel() {
                   });
 
                   state.diagram.drdIndex = newIndex;
-                  state.diagram.drdSelector.isOpen = false;
-                  state.diagram.openNodesPanel = DiagramNodesPanel.DRG_NODES;
+                  state.diagram.openLhsPanel = DiagramLhsPanel.DRG_NODES;
                   state.focus.consumableId = getDrdId({ drdIndex: newIndex });
                 });
               }}
diff --git a/packages/dmn-editor/src/diagram/DrgNodesPanel.tsx 
b/packages/dmn-editor/src/diagram/DrgNodesPanel.tsx
index 2957f0eec09..29d112f2fea 100644
--- a/packages/dmn-editor/src/diagram/DrgNodesPanel.tsx
+++ b/packages/dmn-editor/src/diagram/DrgNodesPanel.tsx
@@ -26,7 +26,7 @@ import { TimesIcon } from 
"@patternfly/react-icons/dist/js/icons/times-icon";
 import * as React from "react";
 import { useCallback, useState } from "react";
 import { DmnObjectListItem } from "../externalNodes/DmnObjectListItem";
-import { DiagramNodesPanel } from "../store/Store";
+import { DiagramLhsPanel } from "../store/Store";
 import { useDmnEditorStore, useDmnEditorStoreApi } from 
"../store/StoreContext";
 import { Unpacked } from "../tsExt/tsExt";
 import { buildXmlHref } from "../xml/xmlHrefs";
@@ -90,7 +90,7 @@ export function DrgNodesPanel() {
             variant={ButtonVariant.plain}
             onClick={() =>
               dmnEditorStoreApi.setState((state) => {
-                state.diagram.openNodesPanel = DiagramNodesPanel.NONE;
+                state.diagram.openLhsPanel = DiagramLhsPanel.NONE;
               })
             }
           >
diff --git a/packages/dmn-editor/src/diagram/Palette.tsx 
b/packages/dmn-editor/src/diagram/Palette.tsx
index 9f1b6c0734f..02b2538f2dd 100644
--- a/packages/dmn-editor/src/diagram/Palette.tsx
+++ b/packages/dmn-editor/src/diagram/Palette.tsx
@@ -22,7 +22,7 @@ import * as React from "react";
 import { useCallback } from "react";
 import { NodeType } from "./connections/graphStructure";
 import { NODE_TYPES } from "./nodes/NodeTypes";
-import { DiagramNodesPanel } from "../store/Store";
+import { DiagramLhsPanel } from "../store/Store";
 import { useDmnEditorStore, useDmnEditorStoreApi } from 
"../store/StoreContext";
 import { addStandaloneNode } from "../mutations/addStandaloneNode";
 import { CONTAINER_NODES_DESIRABLE_PADDING, getBounds } from 
"./maths/DmnMaths";
@@ -122,13 +122,13 @@ export function Palette({ pulse }: { pulse: boolean }) {
           />
           <Popover
             className={"kie-dmn-editor--drd-selector-popover"}
-            key={`${diagram.drdSelector.isOpen}`}
+            key={DiagramLhsPanel.DRD_SELECTOR}
             aria-label={"DRD Selector Popover"}
-            isVisible={diagram.drdSelector.isOpen}
+            isVisible={diagram.openLhsPanel === DiagramLhsPanel.DRD_SELECTOR}
             reference={() => drdSelectorPopoverRef.current!}
             shouldClose={() => {
               dmnEditorStoreApi.setState((state) => {
-                state.diagram.drdSelector.isOpen = false;
+                state.diagram.openLhsPanel = DiagramLhsPanel.NONE;
               });
             }}
             position={"bottom-start"}
@@ -139,7 +139,10 @@ export function Palette({ pulse }: { pulse: boolean }) {
             title="DRD selector"
             onClick={() => {
               dmnEditorStoreApi.setState((state) => {
-                state.diagram.drdSelector.isOpen = 
!state.diagram.drdSelector.isOpen;
+                state.diagram.openLhsPanel =
+                  state.diagram.openLhsPanel === DiagramLhsPanel.DRD_SELECTOR
+                    ? DiagramLhsPanel.NONE
+                    : DiagramLhsPanel.DRD_SELECTOR;
               });
             }}
           >
@@ -213,7 +216,7 @@ export function Palette({ pulse }: { pulse: boolean }) {
         </aside>
         <br />
         <aside className={"kie-dmn-editor--drg-panel-toggle"}>
-          {diagram.openNodesPanel === DiagramNodesPanel.DRG_NODES && (
+          {diagram.openLhsPanel === DiagramLhsPanel.DRG_NODES && (
             <div className={"kie-dmn-editor--palette-nodes-popover"} style={{ 
maxHeight }}>
               <DrgNodesPanel />
             </div>
@@ -221,14 +224,14 @@ export function Palette({ pulse }: { pulse: boolean }) {
           <button
             title="DRG nodes"
             className={`kie-dmn-editor--drg-panel-toggle-button ${
-              diagram.openNodesPanel === DiagramNodesPanel.DRG_NODES ? 
"active" : ""
+              diagram.openLhsPanel === DiagramLhsPanel.DRG_NODES ? "active" : 
""
             }`}
             onClick={() => {
               dmnEditorStoreApi.setState((state) => {
-                state.diagram.openNodesPanel =
-                  state.diagram.openNodesPanel === DiagramNodesPanel.DRG_NODES
-                    ? DiagramNodesPanel.NONE
-                    : DiagramNodesPanel.DRG_NODES;
+                state.diagram.openLhsPanel =
+                  state.diagram.openLhsPanel === DiagramLhsPanel.DRG_NODES
+                    ? DiagramLhsPanel.NONE
+                    : DiagramLhsPanel.DRG_NODES;
               });
             }}
           >
@@ -237,7 +240,7 @@ export function Palette({ pulse }: { pulse: boolean }) {
         </aside>
         <br />
         <aside className={"kie-dmn-editor--external-nodes-panel-toggle"}>
-          {diagram.openNodesPanel === DiagramNodesPanel.EXTERNAL_NODES && (
+          {diagram.openLhsPanel === DiagramLhsPanel.EXTERNAL_NODES && (
             <div className={"kie-dmn-editor--palette-nodes-popover"} style={{ 
maxHeight }}>
               <ExternalNodesPanel />
             </div>
@@ -246,14 +249,14 @@ export function Palette({ pulse }: { pulse: boolean }) {
           <button
             title="External nodes"
             className={`kie-dmn-editor--external-nodes-panel-toggle-button ${
-              diagram.openNodesPanel === DiagramNodesPanel.EXTERNAL_NODES ? 
"active" : ""
+              diagram.openLhsPanel === DiagramLhsPanel.EXTERNAL_NODES ? 
"active" : ""
             }`}
             onClick={() => {
               dmnEditorStoreApi.setState((state) => {
-                state.diagram.openNodesPanel =
-                  state.diagram.openNodesPanel === 
DiagramNodesPanel.EXTERNAL_NODES
-                    ? DiagramNodesPanel.NONE
-                    : DiagramNodesPanel.EXTERNAL_NODES;
+                state.diagram.openLhsPanel =
+                  state.diagram.openLhsPanel === DiagramLhsPanel.EXTERNAL_NODES
+                    ? DiagramLhsPanel.NONE
+                    : DiagramLhsPanel.EXTERNAL_NODES;
               });
             }}
           >
diff --git a/packages/dmn-editor/src/externalNodes/ExternalNodesPanel.tsx 
b/packages/dmn-editor/src/externalNodes/ExternalNodesPanel.tsx
index 07fb04aaa20..32c2a1e798c 100644
--- a/packages/dmn-editor/src/externalNodes/ExternalNodesPanel.tsx
+++ b/packages/dmn-editor/src/externalNodes/ExternalNodesPanel.tsx
@@ -19,7 +19,7 @@
 
 import * as React from "react";
 import { useCallback, useState } from "react";
-import { DiagramNodesPanel, DmnEditorTab } from "../store/Store";
+import { DiagramLhsPanel, DmnEditorTab } from "../store/Store";
 import { useDmnEditorStore, useDmnEditorStoreApi } from 
"../store/StoreContext";
 import { Flex } from "@patternfly/react-core/dist/js/layouts/Flex";
 import { buildXmlHref } from "../xml/xmlHrefs";
@@ -108,7 +108,7 @@ export function ExternalNodesPanel() {
                 variant={ButtonVariant.plain}
                 onClick={() =>
                   dmnEditorStoreApi.setState((state) => {
-                    state.diagram.openNodesPanel = DiagramNodesPanel.NONE;
+                    state.diagram.openLhsPanel = DiagramLhsPanel.NONE;
                   })
                 }
               >
diff --git a/packages/dmn-editor/src/store/Store.ts 
b/packages/dmn-editor/src/store/Store.ts
index 62b5a9289b2..feb47b5d0d1 100644
--- a/packages/dmn-editor/src/store/Store.ts
+++ b/packages/dmn-editor/src/store/Store.ts
@@ -56,8 +56,9 @@ export interface SnapGrid {
   y: number;
 }
 
-export enum DiagramNodesPanel {
+export enum DiagramLhsPanel {
   NONE = "NONE",
+  DRD_SELECTOR = "DRD_SELECTOR",
   DRG_NODES = "DRG_NODES",
   EXTERNAL_NODES = "EXTERNAL_NODES",
 }
@@ -97,10 +98,7 @@ export interface State {
     overlaysPanel: {
       isOpen: boolean;
     };
-    openNodesPanel: DiagramNodesPanel;
-    drdSelector: {
-      isOpen: boolean;
-    };
+    openLhsPanel: DiagramLhsPanel;
     overlays: {
       enableNodeHierarchyHighlight: boolean;
       enableExecutionHitsHighlights: boolean;
@@ -193,10 +191,7 @@ export const defaultStaticState = (): Omit<State, "dmn" | 
"dispatch" | "computed
     overlaysPanel: {
       isOpen: false,
     },
-    openNodesPanel: DiagramNodesPanel.NONE,
-    drdSelector: {
-      isOpen: false,
-    },
+    openLhsPanel: DiagramLhsPanel.NONE,
     overlays: {
       enableNodeHierarchyHighlight: false,
       enableExecutionHitsHighlights: false,


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to