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 fb6c2ebb2ed..d7af26688ac 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}
- {$t('admin.authentication_settings_disable_all')}
-