From 52975eadb336fc9477e28b6e7bc81ddccee038c2 Mon Sep 17 00:00:00 2001 From: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com> Date: Mon, 5 May 2025 23:54:42 +0200 Subject: [PATCH] refactor: all user admin page modals (#18097) --- .../UserCreateModal.svelte} | 0 .../UserDeleteConfirmModal.svelte} | 15 ++--- .../UserEditModal.svelte} | 0 .../UserRestoreConfirmModal.svelte} | 16 ++--- .../routes/admin/user-management/+page.svelte | 63 ++++++------------- 5 files changed, 29 insertions(+), 65 deletions(-) rename web/src/lib/{components/forms/create-user-form.svelte => modals/UserCreateModal.svelte} (100%) rename web/src/lib/{components/admin-page/delete-confirm-dialogue.svelte => modals/UserDeleteConfirmModal.svelte} (89%) rename web/src/lib/{components/forms/edit-user-form.svelte => modals/UserEditModal.svelte} (100%) rename web/src/lib/{components/admin-page/restore-dialogue.svelte => modals/UserRestoreConfirmModal.svelte} (80%) diff --git a/web/src/lib/components/forms/create-user-form.svelte b/web/src/lib/modals/UserCreateModal.svelte similarity index 100% rename from web/src/lib/components/forms/create-user-form.svelte rename to web/src/lib/modals/UserCreateModal.svelte diff --git a/web/src/lib/components/admin-page/delete-confirm-dialogue.svelte b/web/src/lib/modals/UserDeleteConfirmModal.svelte similarity index 89% rename from web/src/lib/components/admin-page/delete-confirm-dialogue.svelte rename to web/src/lib/modals/UserDeleteConfirmModal.svelte index e2d3c86bf3..8bd7d35cd8 100644 --- a/web/src/lib/components/admin-page/delete-confirm-dialogue.svelte +++ b/web/src/lib/modals/UserDeleteConfirmModal.svelte @@ -9,12 +9,10 @@ interface Props { user: UserResponseDto; - onSuccess: () => void; - onFail: () => void; - onCancel: () => void; + onClose: (confirmed?: true) => void; } - let { user, onSuccess, onFail, onCancel }: Props = $props(); + let { user, onClose }: Props = $props(); let forceDelete = $state(false); let deleteButtonDisabled = $state(false); @@ -27,14 +25,11 @@ userAdminDeleteDto: { force: forceDelete }, }); - if (deletedAt == undefined) { - onFail(); - } else { - onSuccess(); + if (deletedAt !== undefined) { + onClose(true); } } catch (error) { handleError(error, $t('errors.unable_to_delete_user')); - onFail(); } }; @@ -47,7 +42,7 @@ (confirmed ? handleDeleteUser() : onCancel())} + onClose={(confirmed) => (confirmed ? handleDeleteUser() : onClose())} disabled={deleteButtonDisabled} > {#snippet promptSnippet()} diff --git a/web/src/lib/components/forms/edit-user-form.svelte b/web/src/lib/modals/UserEditModal.svelte similarity index 100% rename from web/src/lib/components/forms/edit-user-form.svelte rename to web/src/lib/modals/UserEditModal.svelte diff --git a/web/src/lib/components/admin-page/restore-dialogue.svelte b/web/src/lib/modals/UserRestoreConfirmModal.svelte similarity index 80% rename from web/src/lib/components/admin-page/restore-dialogue.svelte rename to web/src/lib/modals/UserRestoreConfirmModal.svelte index 7fd51aaf06..551550c012 100644 --- a/web/src/lib/components/admin-page/restore-dialogue.svelte +++ b/web/src/lib/modals/UserRestoreConfirmModal.svelte @@ -7,24 +7,20 @@ interface Props { user: UserResponseDto; - onSuccess: () => void; - onFail: () => void; - onCancel: () => void; + onClose: (confirmed?: true) => void; } - let { user, onSuccess, onFail, onCancel }: Props = $props(); + let { user, onClose }: Props = $props(); const handleRestoreUser = async () => { try { const { deletedAt } = await restoreUserAdmin({ id: user.id }); - if (deletedAt == undefined) { - onSuccess(); - } else { - onFail(); + + if (deletedAt === undefined) { + onClose(true); } } catch (error) { handleError(error, $t('errors.unable_to_restore_user')); - onFail(); } }; @@ -33,7 +29,7 @@ title={$t('restore_user')} confirmText={$t('continue')} confirmColor="success" - onClose={(confirmed) => (confirmed ? handleRestoreUser() : onCancel())} + onClose={(confirmed) => (confirmed ? handleRestoreUser() : onClose())} > {#snippet promptSnippet()}

diff --git a/web/src/routes/admin/user-management/+page.svelte b/web/src/routes/admin/user-management/+page.svelte index 42d1404177..817ca9cff4 100644 --- a/web/src/routes/admin/user-management/+page.svelte +++ b/web/src/routes/admin/user-management/+page.svelte @@ -1,10 +1,6 @@

- {#if shouldShowDeleteConfirmDialog && selectedUser} - (shouldShowDeleteConfirmDialog = false)} - /> - {/if} - - {#if shouldShowRestoreDialog && selectedUser} - (shouldShowRestoreDialog = false)} - /> - {/if} - deleteUserHandler(immichUser)} + onclick={() => handleDelete(immichUser)} aria-label={$t('delete_user')} /> {/if} @@ -189,7 +162,7 @@ title={$t('admin.user_restore_scheduled_removal', { values: { date: getDeleteDate(immichUser.deletedAt) }, })} - onclick={() => restoreUserHandler(immichUser)} + onclick={() => handleRestore(immichUser)} aria-label={$t('admin.user_restore_scheduled_removal')} /> {/if}