From 0faeebf3aaf72ed483b32b9d963d73416c778945 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Thu, 14 May 2026 12:33:41 -0400 Subject: [PATCH] feat(fc2a): add ImageCanvas (pan/zoom) and VideoCanvas (with format gate) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ImageCanvas mounts an wrapped in the usePanZoom composable — spreading its handlers onto the container element. Zoom resets when src changes so prev/next nav doesn't carry zoom state into the next image. VideoCanvas plays MP4/WebM/Ogg/MOV natively. Non-playable formats render a friendly explainer with a download fallback, naming the actual MIME so operators know what they're dealing with, and pointing forward at FC-2e where transcoding lands. Co-Authored-By: Claude Opus 4.7 (1M context) --- frontend/src/components/modal/ImageCanvas.vue | 50 ++++++++++++++++ frontend/src/components/modal/VideoCanvas.vue | 59 +++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 frontend/src/components/modal/ImageCanvas.vue create mode 100644 frontend/src/components/modal/VideoCanvas.vue diff --git a/frontend/src/components/modal/ImageCanvas.vue b/frontend/src/components/modal/ImageCanvas.vue new file mode 100644 index 0000000..52cbb17 --- /dev/null +++ b/frontend/src/components/modal/ImageCanvas.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/frontend/src/components/modal/VideoCanvas.vue b/frontend/src/components/modal/VideoCanvas.vue new file mode 100644 index 0000000..e79e6da --- /dev/null +++ b/frontend/src/components/modal/VideoCanvas.vue @@ -0,0 +1,59 @@ + + + + +