fix media preview for uploads

This commit is contained in:
Your Name 2026-01-02 01:36:11 -05:00
parent c37d90500a
commit 0d4dc7ebf8
2 changed files with 24 additions and 26 deletions

View File

@ -101,6 +101,8 @@ async function resolveAssetRef(value) {
return resolved[id] || value; return resolved[id] || value;
} }
export { resolveAssetRef };
async function resolveAssetRefsInPosts(posts) { async function resolveAssetRefsInPosts(posts) {
if (!Array.isArray(posts) || posts.length === 0) return posts; if (!Array.isArray(posts) || posts.length === 0) return posts;
const ids = []; const ids = [];

View File

@ -5,7 +5,7 @@ import "../../styles/mapMarkers.css";
import "../../styles/posts.css"; import "../../styles/posts.css";
import "../../styles/filters.css"; import "../../styles/filters.css";
import { createPost, fetchPostPreview } from "../../api/client"; import { createPost, fetchPostPreview, resolveAssetRef } from "../../api/client";
import { import {
FILTER_MAIN_CATEGORIES, FILTER_MAIN_CATEGORIES,
FILTER_CATEGORY_MAP, FILTER_CATEGORY_MAP,
@ -1224,8 +1224,10 @@ export default function MapView({
const fallbackRef = largeRef || mediumRef || smallRef; const fallbackRef = largeRef || mediumRef || smallRef;
const selected = fallbackRef || mediumRef || smallRef; const selected = fallbackRef || mediumRef || smallRef;
if (selected) { if (selected) {
replaceMediaUrl(placeholder, selected); const resolved = await resolveAssetRef(selected);
setDraftImagePreview(selected); const finalUrl = resolved || selected;
replaceMediaUrl(placeholder || selected, finalUrl);
setDraftImagePreview(finalUrl);
} }
} catch (err) { } catch (err) {
console.error("Image upload error:", err); console.error("Image upload error:", err);
@ -1692,29 +1694,23 @@ export default function MapView({
<span>{formatPreviewDate(draftPublishedAt)}</span> <span>{formatPreviewDate(draftPublishedAt)}</span>
) : null} ) : null}
</div> </div>
</div> {draftMediaUrls.length > 1 && (
)} <div className="create-gallery-items">
{draftMediaUrls.length > 0 && ( {draftMediaUrls.map((url, idx) => (
<div className="create-image-gallery"> <figure key={`${url}-${idx}`} className="create-gallery-item">
<div className="create-gallery-title"> <img src={url} alt={`Selected image ${idx + 1}`} />
{draftMediaUrls.length} image <button
{draftMediaUrls.length > 1 ? "s" : ""} type="button"
</div> className="create-gallery-remove"
<div className="create-gallery-items"> onClick={() => removeMediaUrlAtIndex(idx)}
{draftMediaUrls.map((url, idx) => ( aria-label="Remove image"
<figure key={`${url}-${idx}`} className="create-gallery-item"> >
<img src={url} alt={`Selected image ${idx + 1}`} /> ×
<button </button>
type="button" </figure>
className="create-gallery-remove" ))}
onClick={() => removeMediaUrlAtIndex(idx)} </div>
aria-label="Remove image" )}
>
×
</button>
</figure>
))}
</div>
</div> </div>
)} )}
<textarea <textarea