From 55d36c82d659138fa62a3b5e46d3f16a74ec401d Mon Sep 17 00:00:00 2001 From: Cho Young-Hwi Date: Thu, 14 May 2026 18:29:12 +0900 Subject: [PATCH 1/2] [#191] Move illustration checkbox from Edit tab to Publish area The illustration upload UI now appears directly above the Publish button in the action bar, so users can add illustrations without switching tabs. Co-Authored-By: Claude Opus 4.6 (1M context) --- app/web/components/PreviewPanel.tsx | 128 ++++++++++++++-------------- package.json | 2 +- 2 files changed, 65 insertions(+), 65 deletions(-) diff --git a/app/web/components/PreviewPanel.tsx b/app/web/components/PreviewPanel.tsx index 192191b..07dc971 100644 --- a/app/web/components/PreviewPanel.tsx +++ b/app/web/components/PreviewPanel.tsx @@ -500,70 +500,6 @@ export function PreviewPanel({ storyName, fileName, authFetch, onPublish, publis {saving ? "Saving..." : "Save"} - {/* Inline illustration upload for plot files */} - {isPlot && ( -
- - {showIllustrations && ( -
-
illustrationInputRef.current?.click()} - onDragOver={(e) => { e.preventDefault(); e.stopPropagation(); }} - onDrop={(e) => { - e.preventDefault(); - e.stopPropagation(); - const file = e.dataTransfer.files?.[0]; - if (file) uploadIllustration(file); - }} - > - - - {illustrationUploading ? "Uploading..." : "Drop image here or click to browse"} - - WebP/JPEG, max 500KB -
- {illustrationError && ( - {illustrationError} - )} - {uploadedImages.map((img, i) => ( -
- Image uploaded! Copy the markdown below and paste it where you want the illustration to appear in your plot: -
- - ![Scene description]({img.url}) - - -
-
- ))} -
- )} -
- )} )} @@ -769,6 +705,70 @@ export function PreviewPanel({ storyName, fileName, authFetch, onPublish, publis ) : (
+ {/* Inline illustration upload for plot files */} + {isPlot && ( +
+ + {showIllustrations && ( +
+
illustrationInputRef.current?.click()} + onDragOver={(e) => { e.preventDefault(); e.stopPropagation(); }} + onDrop={(e) => { + e.preventDefault(); + e.stopPropagation(); + const file = e.dataTransfer.files?.[0]; + if (file) uploadIllustration(file); + }} + > + + + {illustrationUploading ? "Uploading..." : "Drop image here or click to browse"} + + WebP/JPEG, max 500KB +
+ {illustrationError && ( + {illustrationError} + )} + {uploadedImages.map((img, i) => ( +
+ Image uploaded! Copy the markdown below and paste it where you want the illustration to appear in your plot: +
+ + ![Scene description]({img.url}) + + +
+
+ ))} +
+ )} +
+ )}
{(isGenesis) && ( <> diff --git a/package.json b/package.json index a0cc251..f08a14a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "plotlink-ows", - "version": "1.0.32", + "version": "1.0.33", "bin": { "plotlink-ows": "./bin/plotlink-ows.js" }, From 1bc35ebbaa19062aca5f13c261ee3d33e5392abd Mon Sep 17 00:00:00 2001 From: Cho Young-Hwi Date: Thu, 14 May 2026 18:31:11 +0900 Subject: [PATCH 2/2] [#191] Gate illustration UI to Preview tab only Only render the illustration checkbox when activeTab === "preview" so it does not appear while the Edit tab is active. Co-Authored-By: Claude Opus 4.6 (1M context) --- app/web/components/PreviewPanel.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/web/components/PreviewPanel.tsx b/app/web/components/PreviewPanel.tsx index 07dc971..b706768 100644 --- a/app/web/components/PreviewPanel.tsx +++ b/app/web/components/PreviewPanel.tsx @@ -705,8 +705,8 @@ export function PreviewPanel({ storyName, fileName, authFetch, onPublish, publis
) : (
- {/* Inline illustration upload for plot files */} - {isPlot && ( + {/* Inline illustration upload for plot files (Preview tab only) */} + {isPlot && activeTab === "preview" && (