fix(web): escape shortcut (#3753)

* fix: escape shortcut

* feat: more escape scenarios

* feat: more escape shortcuts

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
This commit is contained in:
martin
2023-09-26 04:53:26 +02:00
committed by GitHub
parent 8873c9a02f
commit f63d6d5b67
21 changed files with 140 additions and 27 deletions
+1 -1
View File
@@ -314,7 +314,7 @@
<!-- Context Menu -->
{#if $isShowContextMenu}
<ContextMenu {...$contextMenuPosition} on:outclick={closeAlbumContextMenu}>
<ContextMenu {...$contextMenuPosition} on:outclick={closeAlbumContextMenu} on:escape={closeAlbumContextMenu}>
<MenuOption on:click={() => setAlbumToDelete()}>
<span class="flex place-content-center place-items-center gap-2">
<DeleteOutline size="18" />
@@ -48,6 +48,8 @@
export let data: PageData;
let { isViewing: showAssetViewer } = assetViewingStore;
let album = data.album;
$: album = data.album;
@@ -102,6 +104,30 @@
}
});
const handleEscape = () => {
if (viewMode === ViewMode.SELECT_USERS) {
viewMode = ViewMode.VIEW;
return;
}
if (viewMode === ViewMode.CONFIRM_DELETE) {
viewMode = ViewMode.VIEW;
return;
}
if (viewMode === ViewMode.SELECT_ASSETS) {
handleCloseSelectAssets();
return;
}
if ($showAssetViewer) {
return;
}
if ($isMultiSelectState) {
assetInteractionStore.clearMultiselect();
return;
}
goto(backUrl);
return;
};
const refreshAlbum = async () => {
const { data } = await api.albumApi.getAlbumInfo({ id: album.id, withoutAssets: true });
album = data;
@@ -403,6 +429,7 @@
isSelectionMode={viewMode === ViewMode.SELECT_THUMBNAIL}
singleSelect={viewMode === ViewMode.SELECT_THUMBNAIL}
on:select={({ detail: asset }) => handleUpdateThumbnail(asset.id)}
on:escape={handleEscape}
>
{#if viewMode !== ViewMode.SELECT_THUMBNAIL}
<!-- ALBUM TITLE -->
@@ -540,6 +567,6 @@
<EditDescriptionModal
{album}
on:close={() => (isEditingDescription = false)}
on:updated={({ detail: description }) => handleUpdateDescription(description)}
on:save={({ detail: description }) => handleUpdateDescription(description)}
/>
{/if}