show gallery preview while uploading

This commit is contained in:
Your Name 2026-01-02 01:28:43 -05:00
parent 3c88d107bf
commit c37d90500a
1 changed files with 43 additions and 6 deletions

View File

@ -1113,6 +1113,34 @@ export default function MapView({
}); });
}; };
const replaceMediaUrl = (from, to) => {
if (!from || !to || from === to) return;
setDraftMediaUrls((prev) => {
let replaced = false;
const next = prev.map((value) => {
if (value === from) {
replaced = true;
return to;
}
return value;
});
if (!replaced) next.push(to);
updateImageVariantsFromGallery(next);
return next;
});
};
const readFileAsDataURL = (file) => {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onloadend = () => {
resolve(reader.result || "");
};
reader.onerror = reject;
reader.readAsDataURL(file);
});
};
const handleAddCustomImageUrl = () => { const handleAddCustomImageUrl = () => {
const raw = (draftImage || "").trim(); const raw = (draftImage || "").trim();
if (!raw) { if (!raw) {
@ -1148,11 +1176,18 @@ export default function MapView({
} }
setDraftImageFile(file); setDraftImageFile(file);
const reader = new FileReader(); let placeholder = "";
reader.onloadend = () => { try {
setDraftImagePreview(reader.result); const dataUrl = await readFileAsDataURL(file);
}; if (typeof dataUrl === "string" && dataUrl) {
reader.readAsDataURL(file); placeholder = dataUrl;
setDraftImagePreview(dataUrl);
addMediaUrlToGallery(dataUrl);
}
} catch (err) {
console.error("File read error:", err);
setSaveError("Failed to read image");
}
try { try {
const formData = new FormData(); const formData = new FormData();
@ -1189,7 +1224,8 @@ 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) {
addMediaUrlToGallery(selected); replaceMediaUrl(placeholder, selected);
setDraftImagePreview(selected);
} }
} catch (err) { } catch (err) {
console.error("Image upload error:", err); console.error("Image upload error:", err);
@ -1390,6 +1426,7 @@ export default function MapView({
const galleryPreviewImage = const galleryPreviewImage =
draftMediaUrls[0] || draftMediaUrls[0] ||
draftImagePreview ||
draftImageLarge || draftImageLarge ||
draftImageMedium || draftImageMedium ||
draftImageSmall || draftImageSmall ||