fix(ui): save to gallery rect too large

Was including all layer types in the rect - only want the raster layers.
This commit is contained in:
psychedelicious 2024-08-30 22:04:05 +10:00
parent 4e74006c5f
commit 41f2ee2633
2 changed files with 9 additions and 5 deletions

View File

@ -22,7 +22,7 @@ export const SaveToGalleryButton = memo(() => {
const onClick = useCallback(async () => { const onClick = useCallback(async () => {
isSaving.setTrue(); isSaving.setTrue();
const rect = shift ? canvasManager.stateApi.getBbox().rect : canvasManager.stage.getVisibleRect(); const rect = shift ? canvasManager.stateApi.getBbox().rect : canvasManager.stage.getVisibleRect('raster_layer');
const result = await withResultAsync(() => const result = await withResultAsync(() =>
canvasManager.compositor.rasterizeAndUploadCompositeRasterLayer(rect, true) canvasManager.compositor.rasterizeAndUploadCompositeRasterLayer(rect, true)

View File

@ -2,7 +2,7 @@ import type { CanvasManager } from 'features/controlLayers/konva/CanvasManager';
import { CanvasModuleABC } from 'features/controlLayers/konva/CanvasModuleABC'; import { CanvasModuleABC } from 'features/controlLayers/konva/CanvasModuleABC';
import { CANVAS_SCALE_BY } from 'features/controlLayers/konva/constants'; import { CANVAS_SCALE_BY } from 'features/controlLayers/konva/constants';
import { getPrefixedId, getRectUnion } from 'features/controlLayers/konva/util'; import { getPrefixedId, getRectUnion } from 'features/controlLayers/konva/util';
import type { Coordinate, Dimensions, Rect } from 'features/controlLayers/store/types'; import type { CanvasEntityIdentifier, Coordinate, Dimensions, Rect } from 'features/controlLayers/store/types';
import type Konva from 'konva'; import type Konva from 'konva';
import type { KonvaEventObject } from 'konva/lib/Node'; import type { KonvaEventObject } from 'konva/lib/Node';
import { clamp } from 'lodash-es'; import { clamp } from 'lodash-es';
@ -76,13 +76,17 @@ export class CanvasStageModule extends CanvasModuleABC {
}); });
}; };
getVisibleRect = (): Rect => { getVisibleRect = (type?: Exclude<CanvasEntityIdentifier['type'], 'ip_adapter'>): Rect => {
const rects = []; const rects = [];
for (const adapter of this.manager.adapters.getAll()) { for (const adapter of this.manager.adapters.getAll()) {
if (adapter.state.isEnabled) { if (!adapter.state.isEnabled) {
rects.push(adapter.transformer.getRelativeRect()); continue;
} }
if (type && adapter.state.type !== type) {
continue;
}
rects.push(adapter.transformer.getRelativeRect());
} }
return getRectUnion(...rects); return getRectUnion(...rects);