Skip to content

Commit 583b21c

Browse files
committed
fix: set active layer after setting layers
1 parent 986c2d9 commit 583b21c

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

src/components/LayerManager.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ export const LayerManager: FC<LayerManagerProps> = ({
5858
}
5959
layer.isVisible = !layer.isVisible;
6060
setLayers([...layers]);
61+
if (getActiveLayerId() === layerId && !layer.isVisible) {
62+
setActiveLayerId(getLayers()[0].id);
63+
}
6164
};
6265

6366
const handleLockUnlockLayer = (evt: MouseEvent, layerId: string): void => {
@@ -68,6 +71,9 @@ export const LayerManager: FC<LayerManagerProps> = ({
6871
}
6972
layer.isLocked = !layer.isLocked;
7073
setLayers([...layers]);
74+
if (getActiveLayerId() === layerId && layer.isLocked) {
75+
setActiveLayerId(getLayers()[0].id);
76+
}
7177
};
7278

7379
const handleCreateNewLayer = (evt: MouseEvent): void => {

src/helpers/import-export-handlers/import-entities-from-json.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import {type Entity, EntityName, type JsonEntity} from '../../entities/Entity';
55
import {LineEntity, type LineJsonData} from '../../entities/LineEntity';
66
import {PointEntity, type PointJsonData} from '../../entities/PointEntity';
77
import {RectangleEntity, type RectangleJsonData} from '../../entities/RectangleEntity';
8-
import {setActiveLayerId, setEntities, setLayers} from '../../state';
9-
import type {JsonDrawingFileDeserialized, JsonDrawingFileSerialized} from './export-entities-to-json';
10-
import {getNewLayer} from "../get-new-layer.ts";
8+
import {setActiveLayerId, setEntities, setLayers} from '../../state.ts';
9+
import {getNewLayer} from '../get-new-layer.ts';
10+
import type {JsonDrawingFileDeserialized, JsonDrawingFileSerialized,} from './export-entities-to-json.ts';
1111

1212
/**
1313
* Open a file selection dialog to select *.json files

src/helpers/import-export-handlers/import-entities-from-local-storage.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {LOCAL_STORAGE_KEY} from '../../App.types.ts';
2-
import {setEntities, setLayers} from '../../state.ts';
2+
import {setActiveLayerId, setEntities, setLayers} from '../../state.ts';
33
import {getNewLayer} from '../get-new-layer.ts';
44
import {getEntitiesAndLayersFromJsonString} from './import-entities-from-json.ts';
55
import type {JsonDrawingFileDeserialized} from "./export-entities-to-json.ts";
@@ -8,6 +8,7 @@ export async function importEntitiesAndLayersFromLocalStorage(): Promise<void> {
88
const file = await getEntitiesAndLayersFromLocalStorage();
99
setEntities(file.entities);
1010
setLayers(file.layers);
11+
setActiveLayerId(file.layers[0].id);
1112
}
1213

1314
export async function getEntitiesAndLayersFromLocalStorage(): Promise<JsonDrawingFileDeserialized> {

0 commit comments

Comments
 (0)