diff --git a/web/src/lib/components/admin-page/settings/template-settings/template-settings.svelte b/web/src/lib/components/admin-page/settings/template-settings/template-settings.svelte index 8e85664750..872b4b9833 100644 --- a/web/src/lib/components/admin-page/settings/template-settings/template-settings.svelte +++ b/web/src/lib/components/admin-page/settings/template-settings/template-settings.svelte @@ -4,9 +4,11 @@ import LoadingSpinner from '$lib/components/shared-components/loading-spinner.svelte'; import SettingAccordion from '$lib/components/shared-components/settings/setting-accordion.svelte'; import SettingTextarea from '$lib/components/shared-components/settings/setting-textarea.svelte'; + import { modalManager } from '$lib/managers/modal-manager.svelte'; + import EmailTemplatePreviewModal from '$lib/modals/EmailTemplatePreviewModal.svelte'; import { handleError } from '$lib/utils/handle-error'; import { type SystemConfigDto, type SystemConfigTemplateEmailsDto, getNotificationTemplateAdmin } from '@immich/sdk'; - import { Button, Modal, ModalBody } from '@immich/ui'; + import { Button } from '@immich/ui'; import { mdiEyeOutline } from '@mdi/js'; import { t } from 'svelte-i18n'; import { fade } from 'svelte/transition'; @@ -18,14 +20,13 @@ let { savedConfig, config = $bindable() }: Props = $props(); - let htmlPreview = $state(''); let loadingPreview = $state(false); const getTemplate = async (name: string, template: string) => { try { loadingPreview = true; - const result = await getNotificationTemplateAdmin({ name, templateDto: { template } }); - htmlPreview = result.html; + const { html } = await getNotificationTemplateAdmin({ name, templateDto: { template } }); + await modalManager.show(EmailTemplatePreviewModal, { html }); } catch (error) { handleError(error, 'Could not load template.'); } finally { @@ -33,10 +34,6 @@ } }; - const closePreviewModal = () => { - htmlPreview = ''; - }; - const templateConfigs = [ { label: $t('admin.template_email_welcome'), @@ -66,63 +63,47 @@ }; -