Delete fix
This commit is contained in:
@@ -1008,39 +1008,46 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const layerId = payload.new?.layer_id ?? payload.old?.layer_id;
|
let layerId = payload.new?.layer_id ?? payload.old?.layer_id;
|
||||||
if (!layerId) return;
|
|
||||||
|
|
||||||
if (payload.event === "INSERT") {
|
if (payload.event === "DELETE") {
|
||||||
layers = layers.map((l) =>
|
if (!layerId)
|
||||||
l.id === layerId
|
layerId = layers.find((l) =>
|
||||||
? {
|
l.pins.some((p) => p.id === id),
|
||||||
...l,
|
)?.id;
|
||||||
pins: [
|
if (!layerId) return;
|
||||||
...l.pins.filter((p) => p.id !== id),
|
|
||||||
payload.new,
|
|
||||||
],
|
|
||||||
}
|
|
||||||
: l,
|
|
||||||
);
|
|
||||||
} else if (payload.event === "UPDATE") {
|
|
||||||
layers = layers.map((l) =>
|
|
||||||
l.id === layerId
|
|
||||||
? {
|
|
||||||
...l,
|
|
||||||
pins: l.pins.map((p) =>
|
|
||||||
p.id === id ? payload.new : p,
|
|
||||||
),
|
|
||||||
}
|
|
||||||
: l,
|
|
||||||
);
|
|
||||||
} else if (payload.event === "DELETE") {
|
|
||||||
layers = layers.map((l) =>
|
layers = layers.map((l) =>
|
||||||
l.id === layerId
|
l.id === layerId
|
||||||
? { ...l, pins: l.pins.filter((p) => p.id !== id) }
|
? { ...l, pins: l.pins.filter((p) => p.id !== id) }
|
||||||
: l,
|
: l,
|
||||||
);
|
);
|
||||||
if (selectedObjectId === id) deselectAll();
|
if (selectedObjectId === id) deselectAll();
|
||||||
|
} else {
|
||||||
|
if (!layerId) return;
|
||||||
|
if (payload.event === "INSERT") {
|
||||||
|
layers = layers.map((l) =>
|
||||||
|
l.id === layerId
|
||||||
|
? {
|
||||||
|
...l,
|
||||||
|
pins: [
|
||||||
|
...l.pins.filter((p) => p.id !== id),
|
||||||
|
payload.new,
|
||||||
|
],
|
||||||
|
}
|
||||||
|
: l,
|
||||||
|
);
|
||||||
|
} else if (payload.event === "UPDATE") {
|
||||||
|
layers = layers.map((l) =>
|
||||||
|
l.id === layerId
|
||||||
|
? {
|
||||||
|
...l,
|
||||||
|
pins: l.pins.map((p) =>
|
||||||
|
p.id === id ? payload.new : p,
|
||||||
|
),
|
||||||
|
}
|
||||||
|
: l,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const layerIdx = layers.findIndex((l) => l.id === layerId);
|
const layerIdx = layers.findIndex((l) => l.id === layerId);
|
||||||
@@ -1055,33 +1062,14 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const layerId = payload.new?.layer_id ?? payload.old?.layer_id;
|
let layerId = payload.new?.layer_id ?? payload.old?.layer_id;
|
||||||
if (!layerId) return;
|
|
||||||
|
|
||||||
if (payload.event === "INSERT") {
|
if (payload.event === "DELETE") {
|
||||||
layers = layers.map((l) =>
|
if (!layerId)
|
||||||
l.id === layerId
|
layerId = layers.find((l) =>
|
||||||
? {
|
(l.shapes ?? []).some((s) => s.id === id),
|
||||||
...l,
|
)?.id;
|
||||||
shapes: [
|
if (!layerId) return;
|
||||||
...(l.shapes ?? []).filter((s) => s.id !== id),
|
|
||||||
payload.new,
|
|
||||||
],
|
|
||||||
}
|
|
||||||
: l,
|
|
||||||
);
|
|
||||||
} else if (payload.event === "UPDATE") {
|
|
||||||
layers = layers.map((l) =>
|
|
||||||
l.id === layerId
|
|
||||||
? {
|
|
||||||
...l,
|
|
||||||
shapes: (l.shapes ?? []).map((s) =>
|
|
||||||
s.id === id ? payload.new : s,
|
|
||||||
),
|
|
||||||
}
|
|
||||||
: l,
|
|
||||||
);
|
|
||||||
} else if (payload.event === "DELETE") {
|
|
||||||
layers = layers.map((l) =>
|
layers = layers.map((l) =>
|
||||||
l.id === layerId
|
l.id === layerId
|
||||||
? {
|
? {
|
||||||
@@ -1091,6 +1079,34 @@
|
|||||||
: l,
|
: l,
|
||||||
);
|
);
|
||||||
if (selectedObjectId === id) deselectAll();
|
if (selectedObjectId === id) deselectAll();
|
||||||
|
} else {
|
||||||
|
if (!layerId) return;
|
||||||
|
if (payload.event === "INSERT") {
|
||||||
|
layers = layers.map((l) =>
|
||||||
|
l.id === layerId
|
||||||
|
? {
|
||||||
|
...l,
|
||||||
|
shapes: [
|
||||||
|
...(l.shapes ?? []).filter(
|
||||||
|
(s) => s.id !== id,
|
||||||
|
),
|
||||||
|
payload.new,
|
||||||
|
],
|
||||||
|
}
|
||||||
|
: l,
|
||||||
|
);
|
||||||
|
} else if (payload.event === "UPDATE") {
|
||||||
|
layers = layers.map((l) =>
|
||||||
|
l.id === layerId
|
||||||
|
? {
|
||||||
|
...l,
|
||||||
|
shapes: (l.shapes ?? []).map((s) =>
|
||||||
|
s.id === id ? payload.new : s,
|
||||||
|
),
|
||||||
|
}
|
||||||
|
: l,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const layerIdx = layers.findIndex((l) => l.id === layerId);
|
const layerIdx = layers.findIndex((l) => l.id === layerId);
|
||||||
@@ -1439,7 +1455,7 @@
|
|||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
class="material-symbols-rounded"
|
class="material-symbols-rounded"
|
||||||
style={icon("", 13)}>close</span
|
style={icon("", 13)}>delete</span
|
||||||
>
|
>
|
||||||
</button>
|
</button>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -1510,7 +1526,7 @@
|
|||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
class="material-symbols-rounded"
|
class="material-symbols-rounded"
|
||||||
style={icon("", 13)}>close</span
|
style={icon("", 13)}>delete</span
|
||||||
>
|
>
|
||||||
</button>
|
</button>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
Reference in New Issue
Block a user