Skip to content

Commit a672ab3

Browse files
committed
fix: remove links in state when deleting referenced elements
1 parent 964bb64 commit a672ab3

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

src/js/elements/addElement.js

-1
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,6 @@ export const addLinkFromJSON = link => {
267267

268268
export const addLinkFromLink = link => {
269269
const { source, target, id } = link;
270-
console.log("TCL: source", source);
271270

272271
const s = getElementByBoxId(source.boxId);
273272
const t = getElementByBoxId(target.boxId);

src/js/store/modules/Interface.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ import {
1313
selectElementByBoxId,
1414
selectedElements,
1515
selectElement,
16-
addLinktoLinks
16+
addLinktoLinks,
17+
removeLinksWithDeletedElements
1718
} from "./utils";
1819
import {
1920
ADD_ELEMENT,
@@ -60,6 +61,8 @@ const Interface = {
6061
for (const el of elements) {
6162
deleteElement(el);
6263
}
64+
65+
state.links = removeLinksWithDeletedElements(state.elements, state.links);
6366
},
6467
[ADD_ELEMENT_TO_SELECTION](state, { model }) {
6568
const { boxId } = model.attributes;

src/js/store/modules/utils.js

+12
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ export const deleteElement = element => {
3636
element.deleted = true;
3737
};
3838

39+
export const deleteLink = (links, link) => {
40+
links = links.filter(thisL => thisL.id != link.id);
41+
};
42+
3943
export const addLinktoLinks = (links, link, graph) => {
4044
const l = buildLinkForStore(graph, link);
4145
links.push(l);
@@ -50,6 +54,14 @@ export const selectElementByBoxId = (elements, boxId) => {
5054
}
5155
};
5256

57+
export const removeLinksWithDeletedElements = (elements, links) => {
58+
return links.filter(
59+
link =>
60+
!elements.find(el => el.boxId == link.source.boxId).deleted &&
61+
!elements.find(el => el.boxId == link.target.boxId).deleted
62+
);
63+
};
64+
5365
export const selectElement = element => {
5466
element.selected = true;
5567
};

0 commit comments

Comments
 (0)