feat(web): improved action bar actions (#2553)

* feat(web): improved action bar actions

* Update web/src/lib/components/photos-page/actions/delete-assets.svelte

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>

* update archive and favorite actions

* feat: add un archive/favorite on associated pages

* fix favorite action + use isAllArchived for photos

* remove unneeded unarchive check

---------

Co-authored-by: Michel Heusschen <59014050+michelheusschen@users.noreply.github.com>
This commit is contained in:
Jason Rasmussen
2023-05-26 09:11:10 -04:00
committed by GitHub
parent 71ef7685c5
commit d6756f3d81
20 changed files with 253 additions and 276 deletions

View File

@@ -1,14 +1,14 @@
<script lang="ts">
import UserPageLayout from '$lib/components/layouts/user-page-layout.svelte';
import AddToAlbum from '$lib/components/photos-page/actions/add-to-album.svelte';
import ArchiveAction from '$lib/components/photos-page/actions/archive-action.svelte';
import CreateSharedLink from '$lib/components/photos-page/actions/create-shared-link.svelte';
import DeleteAssets from '$lib/components/photos-page/actions/delete-assets.svelte';
import DownloadFiles from '$lib/components/photos-page/actions/download-files.svelte';
import MoveToArchive from '$lib/components/photos-page/actions/move-to-archive.svelte';
import DownloadAction from '$lib/components/photos-page/actions/download-action.svelte';
import FavoriteAction from '$lib/components/photos-page/actions/favorite-action.svelte';
import AssetGrid from '$lib/components/photos-page/asset-grid.svelte';
import AssetSelectContextMenu from '$lib/components/photos-page/asset-select-context-menu.svelte';
import AssetSelectControlBar from '$lib/components/photos-page/asset-select-control-bar.svelte';
import OptionAddToAlbum from '$lib/components/photos-page/menu-options/option-add-to-album.svelte';
import OptionAddToFavorites from '$lib/components/photos-page/menu-options/option-add-to-favorites.svelte';
import {
assetInteractionStore,
isMultiSelectStoreState,
@@ -16,6 +16,7 @@
} from '$lib/stores/asset-interaction.store';
import { assetStore } from '$lib/stores/assets.store';
import { onDestroy } from 'svelte';
import DotsVertical from 'svelte-material-icons/DotsVertical.svelte';
import Plus from 'svelte-material-icons/Plus.svelte';
import type { PageData } from './$types';
@@ -24,6 +25,8 @@
onDestroy(() => {
assetInteractionStore.clearMultiselect();
});
$: isAllFavorite = Array.from($selectedAssets).every((asset) => asset.isFavorite);
</script>
<UserPageLayout user={data.user} hideNavbar={$isMultiSelectStoreState} showUploadButton>
@@ -34,14 +37,16 @@
clearSelect={assetInteractionStore.clearMultiselect}
>
<CreateSharedLink />
<MoveToArchive onAssetArchive={(asset) => assetStore.removeAsset(asset.id)} />
<DownloadFiles />
<AssetSelectContextMenu icon={Plus} title="Add">
<OptionAddToFavorites />
<OptionAddToAlbum />
<OptionAddToAlbum shared />
<AddToAlbum />
<AddToAlbum shared />
</AssetSelectContextMenu>
<DeleteAssets onAssetDelete={assetStore.removeAsset} />
<AssetSelectContextMenu icon={DotsVertical} title="Menu">
<FavoriteAction menuItem removeFavorite={isAllFavorite} />
<DownloadAction menuItem />
<ArchiveAction menuItem onAssetArchive={(asset) => assetStore.removeAsset(asset.id)} />
</AssetSelectContextMenu>
</AssetSelectControlBar>
{/if}
</svelte:fragment>