mirror of
https://github.com/drawdb-io/drawdb.git
synced 2025-05-24 10:29:11 +00:00
fix: highlight using selectedElement
This commit is contained in:
parent
b8cb079ca5
commit
2490cb8c01
@ -1,6 +1,5 @@
|
||||
import { useEffect, useState, useRef } from "react";
|
||||
import { Cardinality, ObjectType, Tab } from "../../data/constants";
|
||||
import { RELATIONSHIP_EDITING } from "../../data/customEvents";
|
||||
import { calcPath } from "../../utils/calcPath";
|
||||
import { useDiagram, useSettings, useLayout, useSelect } from "../../hooks";
|
||||
import { cn } from "../../utils/cn";
|
||||
@ -14,28 +13,8 @@ export default function Relationship({ data }) {
|
||||
const pathRef = useRef();
|
||||
|
||||
useEffect(() => {
|
||||
const handleEditing = (event) => {
|
||||
setEditing(event.detail.id === data.id);
|
||||
};
|
||||
|
||||
document.addEventListener(RELATIONSHIP_EDITING, handleEditing);
|
||||
return () => {
|
||||
document.removeEventListener(RELATIONSHIP_EDITING, handleEditing);
|
||||
};
|
||||
}, [data.id]);
|
||||
|
||||
useEffect(() => {
|
||||
const handleClickAway = (event) => {
|
||||
if (pathRef.current && !pathRef.current.contains(event.target)) {
|
||||
setEditing(false);
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener("mousedown", handleClickAway);
|
||||
return () => {
|
||||
document.removeEventListener("mousedown", handleClickAway);
|
||||
};
|
||||
}, [pathRef]);
|
||||
setEditing(data.id === selectedElement.id);
|
||||
}, [data.id, selectedElement.id]);
|
||||
|
||||
let cardinalityStart = "1";
|
||||
let cardinalityEnd = "1";
|
||||
|
@ -4,7 +4,6 @@ import Empty from "../Empty";
|
||||
import SearchBar from "./SearchBar";
|
||||
import RelationshipInfo from "./RelationshipInfo";
|
||||
import { ObjectType } from "../../../data/constants";
|
||||
import { RELATIONSHIP_EDITING } from "../../../data/customEvents";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
export default function RelationshipsTab() {
|
||||
@ -24,20 +23,14 @@ export default function RelationshipsTab() {
|
||||
}
|
||||
keepDOM
|
||||
lazyRender
|
||||
onChange={(k) => {
|
||||
const newId = parseInt(k);
|
||||
const event = new CustomEvent(RELATIONSHIP_EDITING, {
|
||||
detail: { id: newId },
|
||||
});
|
||||
document.dispatchEvent(event);
|
||||
|
||||
onChange={(k) =>
|
||||
setSelectedElement((prev) => ({
|
||||
...prev,
|
||||
open: true,
|
||||
id: newId,
|
||||
id: parseInt(k),
|
||||
element: ObjectType.RELATIONSHIP,
|
||||
}));
|
||||
}}
|
||||
}))
|
||||
}
|
||||
accordion
|
||||
>
|
||||
{relationships.length <= 0 ? (
|
||||
|
@ -1 +0,0 @@
|
||||
export const RELATIONSHIP_EDITING = "relationship-editing";
|
Loading…
Reference in New Issue
Block a user