From 1baa49edb7c4e987e45fd703f17d38f887a0b8bd Mon Sep 17 00:00:00 2001 From: Pranav tiwari <67794060+Pranav-8bit@users.noreply.github.com> Date: Thu, 10 Oct 2024 14:26:08 +0530 Subject: [PATCH] fix(web): User removal from option menu on the top in shared album (#12959) * bug fix * added few more type hint * onMount removed, removed current user to user * user check removed and conflict in view mode resolved between option and share info modal * format fix --------- Co-authored-by: Alex --- .../album-page/album-options.svelte | 145 ++++++++++++------ .../[[assetId=id]]/+page.svelte | 9 +- 2 files changed, 106 insertions(+), 48 deletions(-) diff --git a/web/src/lib/components/album-page/album-options.svelte b/web/src/lib/components/album-page/album-options.svelte index ebcf835649070..53fd355c4b0db 100644 --- a/web/src/lib/components/album-page/album-options.svelte +++ b/web/src/lib/components/album-page/album-options.svelte @@ -1,7 +1,13 @@ - -
-
-

{$t('settings').toUpperCase()}

-
- {#if order} - +
+
+

{$t('settings').toUpperCase()}

+
+ {#if order} + + {/if} + - {/if} - -
-
-
-
{$t('people').toUpperCase()}
-
- -
-
- -
-
{user.name}
-
{$t('owner')}
- {#each album.albumUsers as { user } (user.id)} -
+
+
+
{$t('people').toUpperCase()}
+
+ + +
{user.name}
+
{$t('owner')}
- {/each} + + {#each album.albumUsers as { user } (user.id)} +
+
+ +
+
{user.name}
+ {#if user.id !== album.ownerId} + + + handleMenuRemove(user)} text={$t('remove')} /> + + {/if} +
+ {/each} +
-
- + +{/if} + +{#if selectedRemoveUser} + (selectedRemoveUser = null)} + /> +{/if} diff --git a/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte b/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte index 3df4a25b83e1f..fdf21a2bb82cd 100644 --- a/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte +++ b/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte @@ -345,7 +345,7 @@ } }; - const handleRemoveUser = async (userId: string) => { + const handleRemoveUser = async (userId: string, nextViewMode: ViewMode) => { if (userId == 'me' || userId === $user.id) { await goto(backUrl); return; @@ -353,7 +353,9 @@ try { await refreshAlbum(); - viewMode = album.albumUsers.length > 0 ? ViewMode.VIEW_USERS : ViewMode.VIEW; + + // Dynamically set the view mode based on the passed argument + viewMode = album.albumUsers.length > 0 ? nextViewMode : ViewMode.VIEW; } catch (error) { handleError(error, $t('errors.error_deleting_shared_user')); } @@ -730,7 +732,7 @@ (viewMode = ViewMode.VIEW)} {album} - onRemove={handleRemoveUser} + onRemove={(userId) => handleRemoveUser(userId, ViewMode.VIEW_USERS)} onRefreshAlbum={refreshAlbum} /> {/if} @@ -744,6 +746,7 @@ albumOrder = order; await setModeToView(); }} + onRemove={(userId) => handleRemoveUser(userId, ViewMode.OPTIONS)} onClose={() => (viewMode = ViewMode.VIEW)} onToggleEnabledActivity={handleToggleEnableActivity} onShowSelectSharedUser={() => (viewMode = ViewMode.SELECT_USERS)}