From 92dff9979388ff192c80e6cb1e36a1db0bbd8547 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Thu, 5 Mar 2026 18:00:58 -0800 Subject: [PATCH] fix: thread image 404 on subdomains + move photo section to top Pass /data/ paths through subdomain routing without rewriting so generated image files are accessible on *.rspace.online subdomains. Move image upload/generate section above the compose textarea in the thread builder editor layout. Co-Authored-By: Claude Opus 4.6 --- .../components/folk-thread-builder.ts | 27 ++++++++++--------- server/index.ts | 1 + 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/modules/rsocials/components/folk-thread-builder.ts b/modules/rsocials/components/folk-thread-builder.ts index a0d28da..dabf3b4 100644 --- a/modules/rsocials/components/folk-thread-builder.ts +++ b/modules/rsocials/components/folk-thread-builder.ts @@ -324,20 +324,22 @@ export class FolkThreadBuilder extends HTMLElement {
- +
+ +
+ Preview +
+
+ + +
+
+
- -
- - - -
- Preview -
-
+
Your tweet thread preview will appear here
@@ -1133,10 +1135,11 @@ export class FolkThreadBuilder extends HTMLElement { } .draft-item__delete:hover { color: #ef4444; } - .image-section { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; } + .image-section { display: flex; flex-direction: column; gap: 0.75rem; margin-bottom: 0.75rem; } + .image-buttons { display: flex; gap: 0.5rem; } .image-preview { border-radius: 8px; overflow: hidden; border: 1px solid var(--rs-input-border, #334155); } .image-preview[hidden] { display: none; } - .image-preview img { display: block; max-width: 200px; height: auto; } + .image-preview img { display: block; width: 100%; max-height: 200px; object-fit: cover; } #share-link-area { grid-column: 1 / -1; } .share-link { diff --git a/server/index.ts b/server/index.ts index 979ff58..cd285e4 100644 --- a/server/index.ts +++ b/server/index.ts @@ -1932,6 +1932,7 @@ const server = Bun.serve({ // Global routes pass through without subdomain prefix if ( url.pathname.startsWith("/api/") || + url.pathname.startsWith("/data/") || url.pathname.startsWith("/.well-known/") || url.pathname === "/about" || url.pathname === "/admin" ||