From 76ec9e3ebf05652e623caf91e6e5d9838cf2cb6f Mon Sep 17 00:00:00 2001 From: Alex Tran Date: Fri, 5 Dec 2025 16:47:46 +0000 Subject: [PATCH] refactor ActionItem --- web/src/lib/managers/event-manager.svelte.ts | 4 +++ web/src/lib/services/workflow.service.ts | 3 ++ .../(user)/utilities/workflows/+page.svelte | 31 +++++++------------ .../workflows/[workflowId]/+page.svelte | 2 +- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/web/src/lib/managers/event-manager.svelte.ts b/web/src/lib/managers/event-manager.svelte.ts index 66a2db8787..dff27ef4fd 100644 --- a/web/src/lib/managers/event-manager.svelte.ts +++ b/web/src/lib/managers/event-manager.svelte.ts @@ -8,6 +8,7 @@ import type { SharedLinkResponseDto, SystemConfigDto, UserAdminResponseDto, + WorkflowResponseDto, } from '@immich/sdk'; export type Events = { @@ -42,6 +43,9 @@ export type Events = { LibraryUpdate: [LibraryResponseDto]; LibraryDelete: [{ id: string }]; + WorkflowUpdate: [WorkflowResponseDto]; + WorkflowDelete: [WorkflowResponseDto]; + ReleaseEvent: [ReleaseEvent]; }; diff --git a/web/src/lib/services/workflow.service.ts b/web/src/lib/services/workflow.service.ts index 3fe4691c25..f42f15cb10 100644 --- a/web/src/lib/services/workflow.service.ts +++ b/web/src/lib/services/workflow.service.ts @@ -1,5 +1,6 @@ import { goto } from '$app/navigation'; import { AppRoute } from '$lib/constants'; +import { eventManager } from '$lib/managers/event-manager.svelte'; import { handleError } from '$lib/utils/handle-error'; import { getFormatter } from '$lib/utils/i18n'; import { @@ -377,6 +378,7 @@ export const handleToggleWorkflowEnabled = async ( workflowUpdateDto: { enabled: !workflow.enabled }, }); + eventManager.emit('WorkflowUpdate', updated); toastManager.success($t('workflow_updated')); return updated; } catch (error) { @@ -398,6 +400,7 @@ export const handleDeleteWorkflow = async (workflow: WorkflowResponseDto): Promi try { await deleteWorkflow({ id: workflow.id }); + eventManager.emit('WorkflowDelete', workflow); toastManager.success($t('workflow_deleted')); return true; } catch (error) { diff --git a/web/src/routes/(user)/utilities/workflows/+page.svelte b/web/src/routes/(user)/utilities/workflows/+page.svelte index af66adb31d..84924901c8 100644 --- a/web/src/routes/(user)/utilities/workflows/+page.svelte +++ b/web/src/routes/(user)/utilities/workflows/+page.svelte @@ -1,13 +1,12 @@ + + {#snippet chipItem(title: string)} {title} diff --git a/web/src/routes/(user)/utilities/workflows/[workflowId]/+page.svelte b/web/src/routes/(user)/utilities/workflows/[workflowId]/+page.svelte index 6248d5ae10..61f7402c35 100644 --- a/web/src/routes/(user)/utilities/workflows/[workflowId]/+page.svelte +++ b/web/src/routes/(user)/utilities/workflows/[workflowId]/+page.svelte @@ -533,7 +533,7 @@ isDragging: draggedActionIndex === index, isDragOver: dragOverActionIndex === index, })} - class="mb-4 cursor-move rounded-2xl border-2 p-4 transition-all bg-light-100 border-dashed hover:border-light-300" + class="mb-4 cursor-move rounded-2xl border-2 p-4 transition-all bg-light-50 border-dashed hover:border-light-300" >
{@render cardOrder(index)}