diff --git a/web/src/lib/constants.ts b/web/src/lib/constants.ts index d4d436ad87..3a1f8cf3de 100644 --- a/web/src/lib/constants.ts +++ b/web/src/lib/constants.ts @@ -369,7 +369,6 @@ export enum SettingInputFieldType { export const AlbumPageViewMode = { SELECT_THUMBNAIL: 'select-thumbnail', SELECT_ASSETS: 'select-assets', - VIEW_USERS: 'view-users', VIEW: 'view', OPTIONS: 'options', }; @@ -377,7 +376,6 @@ export const AlbumPageViewMode = { export type AlbumPageViewMode = | typeof AlbumPageViewMode.SELECT_THUMBNAIL | typeof AlbumPageViewMode.SELECT_ASSETS - | typeof AlbumPageViewMode.VIEW_USERS | typeof AlbumPageViewMode.VIEW | typeof AlbumPageViewMode.OPTIONS; diff --git a/web/src/lib/modals/AlbumUsersModal.svelte b/web/src/lib/modals/AlbumUsersModal.svelte index 51fc8eead6..78976bf6d1 100644 --- a/web/src/lib/modals/AlbumUsersModal.svelte +++ b/web/src/lib/modals/AlbumUsersModal.svelte @@ -23,12 +23,10 @@ interface Props { album: AlbumResponseDto; - onClose: () => void; - onRemove: (userId: string) => void; - onRefreshAlbum: () => void; + onClose: (changed?: boolean) => void; } - let { album, onClose, onRemove, onRefreshAlbum }: Props = $props(); + let { album, onClose }: Props = $props(); let currentUser: UserResponseDto | undefined = $state(); @@ -71,12 +69,12 @@ try { await removeUserFromAlbum({ id: album.id, userId }); - onRemove(userId); const message = userId === 'me' ? $t('album_user_left', { values: { album: album.albumName } }) : $t('album_user_removed', { values: { user: user.name } }); notificationController.show({ type: NotificationType.Info, message }); + onClose(true); } catch (error) { handleError(error, $t('errors.unable_to_remove_album_users')); } @@ -88,8 +86,9 @@ const message = $t('user_role_set', { values: { user: user.name, role: role == AlbumUserRole.Viewer ? $t('role_viewer') : $t('role_editor') }, }); - onRefreshAlbum(); + notificationController.show({ type: NotificationType.Info, message }); + onClose(true); } catch (error) { handleError(error, $t('errors.unable_to_change_album_user_role')); } 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 1f6d7c7cf3..c9848a1a01 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 @@ -441,6 +441,14 @@ await modalManager.show(QrCodeModal, { title: $t('view_link'), value: makeSharedLinkUrl(sharedLink.key) }); } }; + + const handleEditUsers = async () => { + const changed = await modalManager.show(AlbumUsersModal, { album }); + + if (changed) { + album = await getAlbumInfo({ id: album.id, withoutAssets: true }); + } + };