From c8dc3ec2f1e37ef58841bab6e66028b0447efd10 Mon Sep 17 00:00:00 2001 From: shrimbly Date: Wed, 15 Apr 2026 19:49:09 +1200 Subject: [PATCH] fix: use shared downloadMedia utility in output nodes - OutputGalleryNode: replace hardcoded .png/.mp4 download with shared downloadMedia utility for correct MIME-based extensions - OutputNode: wrap downloadMedia call in try/catch to prevent unhandled rejection Co-Authored-By: Claude Opus 4.6 --- src/components/nodes/OutputGalleryNode.tsx | 12 ++++-------- src/components/nodes/OutputNode.tsx | 6 +++++- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/components/nodes/OutputGalleryNode.tsx b/src/components/nodes/OutputGalleryNode.tsx index 4c97c3fb..dfd8888b 100644 --- a/src/components/nodes/OutputGalleryNode.tsx +++ b/src/components/nodes/OutputGalleryNode.tsx @@ -8,6 +8,7 @@ import { useWorkflowStore } from "@/store/workflowStore"; import { OutputGalleryNodeData } from "@/types"; import { useAdaptiveImageSrc } from "@/hooks/useAdaptiveImageSrc"; import { defaultNodeDimensions } from "@/store/utils/nodeDefaults"; +import { downloadMedia as downloadMediaUtil } from "@/utils/downloadMedia"; type MediaItem = { type: "image" | "video"; src: string }; @@ -67,14 +68,9 @@ export function OutputGalleryNode({ id, data, selected }: NodeProps + console.error("Gallery download failed:", err) + ); }, [lightboxIndex, displayMedia]); const removeMedia = useCallback((index: number) => { diff --git a/src/components/nodes/OutputNode.tsx b/src/components/nodes/OutputNode.tsx index 5e77f87f..c52ba88e 100644 --- a/src/components/nodes/OutputNode.tsx +++ b/src/components/nodes/OutputNode.tsx @@ -76,7 +76,11 @@ export function OutputNode({ id, data, selected }: NodeProps) { const handleDownload = useCallback(async () => { if (!contentSrc) return; const type: MediaType = isAudio ? "audio" : isVideo ? "video" : "image"; - await downloadMedia(contentSrc, type, nodeData.outputFilename ?? undefined); + try { + await downloadMedia(contentSrc, type, nodeData.outputFilename ?? undefined); + } catch (err) { + console.error("Download failed:", err); + } }, [contentSrc, isAudio, isVideo, nodeData.outputFilename]); return (