From 93ee6ee0a55a000ca17e277b6e081dc75f9396df Mon Sep 17 00:00:00 2001 From: Jason Rasmussen Date: Mon, 12 May 2025 17:48:05 -0400 Subject: [PATCH] refactor: dialog controller (#18235) --- .../admin-page/jobs/jobs-panel.svelte | 6 +-- .../actions/keep-this-delete-others.svelte | 6 +-- .../face-editor/face-editor.svelte | 7 +--- .../faces-page/merge-face-selector.svelte | 7 +--- .../faces-page/person-side-panel.svelte | 5 +-- .../actions/remove-from-album.svelte | 6 +-- .../actions/remove-from-shared-link.svelte | 4 +- .../dialog/dialog-wrapper.svelte | 9 ---- .../shared-components/dialog/dialog.ts | 42 ------------------- .../user-settings-page/device-list.svelte | 13 +++--- .../partner-settings.svelte | 3 +- .../user-api-key-list.svelte | 3 +- .../user-purchase-settings.svelte | 24 +++++------ web/src/lib/managers/modal-manager.svelte.ts | 2 +- web/src/lib/utils/album-utils.ts | 4 +- .../shared-links/[[id=id]]/+page.svelte | 4 +- .../[[assetId=id]]/+page.svelte | 6 +-- .../[[assetId=id]]/+page.svelte | 12 ++---- .../[[assetId=id]]/+page.svelte | 3 +- web/src/routes/+layout.svelte | 2 - .../admin/library-management/+page.svelte | 7 ++-- web/src/routes/admin/users/[id]/+page.svelte | 4 +- 22 files changed, 53 insertions(+), 126 deletions(-) delete mode 100644 web/src/lib/components/shared-components/dialog/dialog-wrapper.svelte delete mode 100644 web/src/lib/components/shared-components/dialog/dialog.ts diff --git a/web/src/lib/components/admin-page/jobs/jobs-panel.svelte b/web/src/lib/components/admin-page/jobs/jobs-panel.svelte index 2c59f59416b..73dfb309082 100644 --- a/web/src/lib/components/admin-page/jobs/jobs-panel.svelte +++ b/web/src/lib/components/admin-page/jobs/jobs-panel.svelte @@ -3,6 +3,7 @@ notificationController, NotificationType, } from '$lib/components/shared-components/notification/notification'; + import { modalManager } from '$lib/managers/modal-manager.svelte'; import { featureFlags } from '$lib/stores/server-config.store'; import { getJobName } from '$lib/utils'; import { handleError } from '$lib/utils/handle-error'; @@ -20,10 +21,9 @@ mdiVideo, } from '@mdi/js'; import type { Component } from 'svelte'; + import { t } from 'svelte-i18n'; import JobTile from './job-tile.svelte'; import StorageMigrationDescription from './storage-migration-description.svelte'; - import { dialogController } from '$lib/components/shared-components/dialog/dialog'; - import { t } from 'svelte-i18n'; interface Props { jobs: AllJobStatusResponseDto; @@ -45,7 +45,7 @@ const handleConfirmCommand = async (jobId: JobName, dto: JobCommandDto) => { if (dto.force) { - const isConfirmed = await dialogController.show({ + const isConfirmed = await modalManager.showDialog({ prompt: $t('admin.confirm_reprocess_all_faces'), }); diff --git a/web/src/lib/components/asset-viewer/actions/keep-this-delete-others.svelte b/web/src/lib/components/asset-viewer/actions/keep-this-delete-others.svelte index 8705476d8d7..090e87f4a92 100644 --- a/web/src/lib/components/asset-viewer/actions/keep-this-delete-others.svelte +++ b/web/src/lib/components/asset-viewer/actions/keep-this-delete-others.svelte @@ -1,12 +1,12 @@ - -{#if $dialog} - -{/if} diff --git a/web/src/lib/components/shared-components/dialog/dialog.ts b/web/src/lib/components/shared-components/dialog/dialog.ts deleted file mode 100644 index 69a64aad219..00000000000 --- a/web/src/lib/components/shared-components/dialog/dialog.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { writable } from 'svelte/store'; - -type DialogActions = { - onClose: (confirmed: boolean) => void; -}; - -type DialogOptions = { - title?: string; - prompt?: string; - confirmText?: string; - cancelText?: string; - hideCancelButton?: boolean; - disable?: boolean; - width?: 'wide' | 'narrow' | undefined; -}; - -export type Dialog = DialogOptions & DialogActions; - -function createDialogWrapper() { - const dialog = writable(); - - async function show(options: DialogOptions) { - return new Promise((resolve) => { - const newDialog: Dialog = { - ...options, - onClose: (confirmed) => { - dialog.set(undefined); - resolve(confirmed); - }, - }; - - dialog.set(newDialog); - }); - } - - return { - dialog, - show, - }; -} - -export const dialogController = createDialogWrapper(); diff --git a/web/src/lib/components/user-settings-page/device-list.svelte b/web/src/lib/components/user-settings-page/device-list.svelte index 96870046df3..a56f4cc3165 100644 --- a/web/src/lib/components/user-settings-page/device-list.svelte +++ b/web/src/lib/components/user-settings-page/device-list.svelte @@ -1,11 +1,11 @@