From ce90a2ec1a7e395b9eceea82c5eb8e6d82bfb5f0 Mon Sep 17 00:00:00 2001 From: Jason Rasmussen Date: Tue, 13 May 2025 09:16:05 -0400 Subject: [PATCH] refactor(web): disable login confirm modal (#18261) --- .../settings/auth/auth-settings.svelte | 41 +++-------------- .../AuthDisableLoginConfirmModal.svelte | 44 +++++++++++++++++++ 2 files changed, 51 insertions(+), 34 deletions(-) create mode 100644 web/src/lib/modals/AuthDisableLoginConfirmModal.svelte diff --git a/web/src/lib/components/admin-page/settings/auth/auth-settings.svelte b/web/src/lib/components/admin-page/settings/auth/auth-settings.svelte index fb6c2ebb2e..d7af26688a 100644 --- a/web/src/lib/components/admin-page/settings/auth/auth-settings.svelte +++ b/web/src/lib/components/admin-page/settings/auth/auth-settings.svelte @@ -6,7 +6,8 @@ import SettingSelect from '$lib/components/shared-components/settings/setting-select.svelte'; import SettingSwitch from '$lib/components/shared-components/settings/setting-switch.svelte'; import { SettingInputFieldType } from '$lib/constants'; - import ConfirmModal from '$lib/modals/ConfirmModal.svelte'; + import { modalManager } from '$lib/managers/modal-manager.svelte'; + import AuthDisableLoginConfirmModal from '$lib/modals/AuthDisableLoginConfirmModal.svelte'; import { OAuthTokenEndpointAuthMethod, type SystemConfigDto } from '@immich/sdk'; import { isEqual } from 'lodash-es'; import { t } from 'svelte-i18n'; @@ -24,8 +25,6 @@ let { savedConfig, defaultConfig, config = $bindable(), disabled = false, onReset, onSave }: Props = $props(); - let isConfirmOpen = $state(false); - const handleToggleOverride = () => { // click runs before bind const previouslyEnabled = config.oauth.mobileOverrideEnabled; @@ -34,45 +33,19 @@ } }; - const handleSave = (skipConfirm: boolean) => { + const handleSave = async (skipConfirm: boolean) => { const allMethodsDisabled = !config.oauth.enabled && !config.passwordLogin.enabled; if (allMethodsDisabled && !skipConfirm) { - isConfirmOpen = true; - return; + const isConfirmed = await modalManager.show(AuthDisableLoginConfirmModal, {}); + if (!isConfirmed) { + return; + } } - isConfirmOpen = false; onSave({ passwordLogin: config.passwordLogin, oauth: config.oauth }); }; -{#if isConfirmOpen} - (confirmed ? handleSave(true) : (isConfirmOpen = false))} - > - {#snippet promptSnippet()} -
-

{$t('admin.authentication_settings_disable_all')}

-

- - {#snippet children({ message })} - - {message} - - {/snippet} - -

-
- {/snippet} -
-{/if} -
e.preventDefault()}> diff --git a/web/src/lib/modals/AuthDisableLoginConfirmModal.svelte b/web/src/lib/modals/AuthDisableLoginConfirmModal.svelte new file mode 100644 index 0000000000..4795209ece --- /dev/null +++ b/web/src/lib/modals/AuthDisableLoginConfirmModal.svelte @@ -0,0 +1,44 @@ + + + + +
+

{$t('admin.authentication_settings_disable_all')}

+

+ + {#snippet children({ message })} + + {message} + + {/snippet} + +

+
+
+ +
+ + +
+
+