fix(ui): stale selected entity

This commit is contained in:
psychedelicious 2024-07-03 18:51:04 +10:00
parent 319de5c4e9
commit 4564f36d4a

View File

@ -213,7 +213,6 @@ export const initializeRenderer = (
} else { } else {
selectedEntity = null; selectedEntity = null;
} }
logIfDebugging('Selected entity changed');
return selectedEntity; return selectedEntity;
}; };
@ -228,7 +227,6 @@ export const initializeRenderer = (
} else { } else {
currentFill = canvasV2.tool.fill; currentFill = canvasV2.tool.fill;
} }
logIfDebugging('Current fill changed');
return currentFill; return currentFill;
}; };
@ -243,10 +241,8 @@ export const initializeRenderer = (
// Read-only state, derived from redux // Read-only state, derived from redux
let prevCanvasV2 = getState().canvasV2; let prevCanvasV2 = getState().canvasV2;
let canvasV2 = getState().canvasV2; let canvasV2 = getState().canvasV2;
let prevSelectedEntity: CanvasEntity | null = selectSelectedEntity(prevCanvasV2); const getSelectedEntity = () => selectSelectedEntity(canvasV2);
let prevCurrentFill: RgbaColor = selectCurrentFill(prevCanvasV2, prevSelectedEntity); const getCurrentFill = () => selectCurrentFill(canvasV2, getSelectedEntity());
const getSelectedEntity = () => prevSelectedEntity;
const getCurrentFill = () => prevCurrentFill;
const getBbox = () => canvasV2.bbox; const getBbox = () => canvasV2.bbox;
const getDocument = () => canvasV2.document; const getDocument = () => canvasV2.document;
const getToolState = () => canvasV2.tool; const getToolState = () => canvasV2.tool;
@ -374,14 +370,11 @@ export const initializeRenderer = (
return; return;
} }
const selectedEntity = selectSelectedEntity(canvasV2);
const currentFill = selectCurrentFill(canvasV2, selectedEntity);
if ( if (
isFirstRender || isFirstRender ||
canvasV2.layers.entities !== prevCanvasV2.layers.entities || canvasV2.layers.entities !== prevCanvasV2.layers.entities ||
canvasV2.tool.selected !== prevCanvasV2.tool.selected || canvasV2.tool.selected !== prevCanvasV2.tool.selected ||
prevSelectedEntity?.id !== selectedEntity?.id canvasV2.selectedEntityIdentifier?.id !== prevCanvasV2.selectedEntityIdentifier?.id
) { ) {
logIfDebugging('Rendering layers'); logIfDebugging('Rendering layers');
manager.renderLayers(); manager.renderLayers();
@ -392,7 +385,7 @@ export const initializeRenderer = (
canvasV2.regions.entities !== prevCanvasV2.regions.entities || canvasV2.regions.entities !== prevCanvasV2.regions.entities ||
canvasV2.settings.maskOpacity !== prevCanvasV2.settings.maskOpacity || canvasV2.settings.maskOpacity !== prevCanvasV2.settings.maskOpacity ||
canvasV2.tool.selected !== prevCanvasV2.tool.selected || canvasV2.tool.selected !== prevCanvasV2.tool.selected ||
prevSelectedEntity?.id !== selectedEntity?.id canvasV2.selectedEntityIdentifier?.id !== prevCanvasV2.selectedEntityIdentifier?.id
) { ) {
logIfDebugging('Rendering regions'); logIfDebugging('Rendering regions');
manager.renderRegions(); manager.renderRegions();
@ -403,7 +396,7 @@ export const initializeRenderer = (
canvasV2.inpaintMask !== prevCanvasV2.inpaintMask || canvasV2.inpaintMask !== prevCanvasV2.inpaintMask ||
canvasV2.settings.maskOpacity !== prevCanvasV2.settings.maskOpacity || canvasV2.settings.maskOpacity !== prevCanvasV2.settings.maskOpacity ||
canvasV2.tool.selected !== prevCanvasV2.tool.selected || canvasV2.tool.selected !== prevCanvasV2.tool.selected ||
prevSelectedEntity?.id !== selectedEntity?.id canvasV2.selectedEntityIdentifier?.id !== prevCanvasV2.selectedEntityIdentifier?.id
) { ) {
logIfDebugging('Rendering inpaint mask'); logIfDebugging('Rendering inpaint mask');
manager.renderInpaintMask(); manager.renderInpaintMask();
@ -412,7 +405,7 @@ export const initializeRenderer = (
if ( if (
isFirstRender || isFirstRender ||
canvasV2.controlAdapters.entities !== prevCanvasV2.controlAdapters.entities || canvasV2.controlAdapters.entities !== prevCanvasV2.controlAdapters.entities ||
prevSelectedEntity?.id !== selectedEntity?.id canvasV2.selectedEntityIdentifier?.id !== prevCanvasV2.selectedEntityIdentifier?.id
) { ) {
logIfDebugging('Rendering control adapters'); logIfDebugging('Rendering control adapters');
manager.renderControlAdapters(); manager.renderControlAdapters();
@ -448,15 +441,13 @@ export const initializeRenderer = (
canvasV2.layers.entities !== prevCanvasV2.layers.entities || canvasV2.layers.entities !== prevCanvasV2.layers.entities ||
canvasV2.controlAdapters.entities !== prevCanvasV2.controlAdapters.entities || canvasV2.controlAdapters.entities !== prevCanvasV2.controlAdapters.entities ||
canvasV2.regions.entities !== prevCanvasV2.regions.entities || canvasV2.regions.entities !== prevCanvasV2.regions.entities ||
prevSelectedEntity?.id !== selectedEntity?.id canvasV2.selectedEntityIdentifier?.id !== prevCanvasV2.selectedEntityIdentifier?.id
) { ) {
logIfDebugging('Arranging entities'); logIfDebugging('Arranging entities');
manager.arrangeEntities(); manager.arrangeEntities();
} }
prevCanvasV2 = canvasV2; prevCanvasV2 = canvasV2;
prevSelectedEntity = selectedEntity;
prevCurrentFill = currentFill;
if (isFirstRender) { if (isFirstRender) {
isFirstRender = false; isFirstRender = false;