fix: component port labels showing wrong name after editing blueprint
The label lookup in drawComponentGate read from gate.component (potentially stale copy) while gateOutputCount read from state.customComponents (updated definition), causing a mismatch — fewer ports but old outputIds, so the first (deleted) output's label was shown instead of the surviving one. Three fixes: - renderer: use customComponents as authoritative source for label lookup - saveLoad: re-link gate.component refs to customComponents after loading - components: update existing instances even when a "new" component overwrites an existing definition with the same name Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -325,8 +325,10 @@ function drawComponentGate(gate) {
|
||||
ctx.fillStyle = '#444';
|
||||
ctx.fillText(getGateLabel(gate), gate.x + w / 2, gate.y + h - 6);
|
||||
|
||||
// Get port labels from the component definition
|
||||
const comp = gate.component;
|
||||
// Get port labels from the authoritative component definition (customComponents)
|
||||
// This must match the source used by gateOutputCount/gateInputCount for port counts
|
||||
const compId = gate.type.substring(10);
|
||||
const comp = state.customComponents?.[compId] || gate.component;
|
||||
const inputLabels = [];
|
||||
const outputLabels = [];
|
||||
if (comp) {
|
||||
|
||||
Reference in New Issue
Block a user