mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
fix(web): close edit faces panel on Escape key press (#27519)
Move `showEditFaces` state to `assetViewerManager` so the edit faces panel open/close state is globally accessible. Add Escape key handling to `PersonSidePanel` that closes the assign-face sub-panel first, then the edit faces panel. Guard the asset viewer's global Escape-to-close action so it doesn't fire while either face panel is open. Change-Id: I0c947fe0758aef0eac473f4cc72f6a3b6a6a6964
This commit is contained in:
@@ -44,6 +44,7 @@ class AssetViewerManager extends BaseEventManager<Events> {
|
||||
isPlayingMotionPhoto = $state(false);
|
||||
isShowEditor = $state(false);
|
||||
#isFaceEditMode = $state(false);
|
||||
#isEditFacesPanelOpen = $state(false);
|
||||
#viewingAssetStoreState = $state<AssetResponseDto>();
|
||||
#viewState = $state<boolean>(false);
|
||||
gridScrollTarget = $state<AssetGridRouteSearchParams | null | undefined>();
|
||||
@@ -72,6 +73,10 @@ class AssetViewerManager extends BaseEventManager<Events> {
|
||||
return this.#isFaceEditMode;
|
||||
}
|
||||
|
||||
get isEditFacesPanelOpen() {
|
||||
return this.#isEditFacesPanelOpen;
|
||||
}
|
||||
|
||||
get zoomState() {
|
||||
return this.#zoomState;
|
||||
}
|
||||
@@ -186,6 +191,20 @@ class AssetViewerManager extends BaseEventManager<Events> {
|
||||
this.#isFaceEditMode = false;
|
||||
}
|
||||
|
||||
openEditFacesPanel() {
|
||||
this.#isEditFacesPanelOpen = true;
|
||||
}
|
||||
|
||||
closeEditFacesPanel() {
|
||||
this.#isEditFacesPanelOpen = false;
|
||||
}
|
||||
|
||||
resetPanelState() {
|
||||
this.closeEditor();
|
||||
this.closeFaceEditMode();
|
||||
this.closeEditFacesPanel();
|
||||
}
|
||||
|
||||
setAsset(asset: AssetResponseDto) {
|
||||
this.#viewingAssetStoreState = asset;
|
||||
this.#viewState = true;
|
||||
|
||||
Reference in New Issue
Block a user