diff --git a/src/lib/components/EditImageModal.svelte b/src/lib/components/EditImageModal.svelte index 8b8e4d0..527ee0a 100644 --- a/src/lib/components/EditImageModal.svelte +++ b/src/lib/components/EditImageModal.svelte @@ -11,7 +11,7 @@ image: ImageEntry | null; device: Device; onClose: () => void; - onApply: (imageId: string, config: PipelineConfig) => void; + onApply: (imageId: string, config: PipelineConfig, processedDataUrl: string | null) => void; } let { open, image, device, onClose, onApply }: Props = $props(); @@ -36,7 +36,7 @@ function handleApply(): void { if (!image) return; - onApply(image.id, localConfig); + onApply(image.id, localConfig, previewDataUrl); onClose(); } diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index d26503b..6bf1498 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -89,9 +89,15 @@ editingImage = null; } - function handleApplyPipeline(imageId: string, config: PipelineConfig): void { + function handleApplyPipeline(imageId: string, config: PipelineConfig, processedDataUrl: string | null): void { imagesStore.setPipelineOverride(imageId, config); - imagesStore.reprocessImage(imageId, deviceStore.selected); + if (processedDataUrl) { + // Use the already-processed preview directly + imagesStore.updateImage(imageId, { processedDataUrl }); + } else { + // Fallback: reprocess if no preview available + imagesStore.reprocessImage(imageId, deviceStore.selected); + } } function handleClearAll(): void {