chore: Refactor Edit Album Modal (#18653)

This commit is contained in:
Arno 2025-05-29 12:30:25 +02:00 committed by GitHub
parent 8ea40973a7
commit 10181defb1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 23 deletions

View File

@ -143,7 +143,6 @@
let albumGroupOption: string = $state(AlbumGroupBy.None);
let albumToEdit: AlbumResponseDto | null = $state(null);
let albumToShare: AlbumResponseDto | null = $state(null);
let albumToDelete: AlbumResponseDto | null = null;
@ -257,9 +256,14 @@
await deleteSelectedAlbum();
};
const handleEdit = (album: AlbumResponseDto) => {
albumToEdit = album;
const handleEdit = async (album: AlbumResponseDto) => {
closeAlbumContextMenu();
const editedAlbum = await modalManager.show(EditAlbumForm, {
album,
});
if (editedAlbum) {
successEditAlbumInfo(editedAlbum);
}
};
const deleteSelectedAlbum = async () => {
@ -305,8 +309,6 @@
};
const successEditAlbumInfo = (album: AlbumResponseDto) => {
albumToEdit = null;
notificationController.show({
message: $t('album_info_updated'),
type: NotificationType.Info,
@ -422,15 +424,3 @@
<MenuOption icon={mdiDeleteOutline} text={$t('delete')} onClick={() => setAlbumToDelete()} />
{/if}
</RightClickContextMenu>
{#if allowEdit}
<!-- Edit Modal -->
{#if albumToEdit}
<EditAlbumForm
album={albumToEdit}
onEditSuccess={successEditAlbumInfo}
onCancel={() => (albumToEdit = null)}
onClose={() => (albumToEdit = null)}
/>
{/if}
{/if}

View File

@ -8,12 +8,10 @@
interface Props {
album: AlbumResponseDto;
onEditSuccess?: ((album: AlbumResponseDto) => unknown) | undefined;
onCancel?: (() => unknown) | undefined;
onClose: () => void;
onClose: (album?: AlbumResponseDto) => void;
}
let { album = $bindable(), onEditSuccess = undefined, onCancel = undefined, onClose }: Props = $props();
let { album = $bindable(), onClose }: Props = $props();
let albumName = $state(album.albumName);
let description = $state(album.description);
@ -32,7 +30,7 @@
});
album.albumName = albumName;
album.description = description;
onEditSuccess?.(album);
onClose(album);
} catch (error) {
handleError(error, $t('errors.unable_to_update_album_info'));
} finally {
@ -71,7 +69,7 @@
<ModalFooter>
<div class="flex gap-2 w-full">
<Button shape="round" color="secondary" fullWidth onclick={() => onCancel?.()}>{$t('cancel')}</Button>
<Button shape="round" color="secondary" fullWidth onclick={() => onClose()}>{$t('cancel')}</Button>
<Button shape="round" type="submit" fullWidth disabled={isSubmitting} form="edit-album-form">{$t('save')}</Button>
</div>
</ModalFooter>