fix(property): load signed urls for image gallery and strip query params on save
deploy-chabokan / deploy (push) Canceled after 0s

This commit is contained in:
2026-08-19 06:30:07 +03:30
parent b6fde3e541
commit e2aa60c54c
+36 -8
View File
@@ -322,11 +322,26 @@ const groupedFeatures = computed(() => {
const fillImagesArray = (urlsArray) => { const fillImagesArray = (urlsArray) => {
if (!Array.isArray(urlsArray)) return []; if (!Array.isArray(urlsArray)) return [];
return urlsArray.map((url) => ({ return urlsArray.map((item) => {
name: url.split('/').pop() || 'file', if (typeof item === 'object' && item !== null) {
url: url, const rawUrl = item.url || item.source || '';
const rawName = item.fileName || item.name || (rawUrl ? rawUrl.split('?')[0].split('/').pop() : 'file');
return {
name: rawName,
url: rawUrl,
source: item.fileName || rawUrl.split('?')[0].split('/').pop() || '',
progress: 100 progress: 100
})); };
}
const urlStr = String(item || '');
const cleanUrl = urlStr.split('?')[0];
return {
name: cleanUrl.split('/').pop() || 'file',
url: urlStr,
source: cleanUrl.split('/').pop() || '',
progress: 100
};
});
}; };
const handleSelectCategory = (catId) => { const handleSelectCategory = (catId) => {
@@ -384,8 +399,15 @@ onBeforeMount(async () => {
property.value = { ...property.value, ...data }; property.value = { ...property.value, ...data };
featuresValues.value = extractFeaturesValues(data.features); featuresValues.value = extractFeaturesValues(data.features);
mainImageUrlsWithData.value = fillImagesArray(data.mainImageUrls || []); const mainImages = (data.signedMainImageUrls && data.signedMainImageUrls.length > 0)
documentUrlsWithData.value = fillImagesArray(data.documentUrls || []); ? data.signedMainImageUrls
: (data.mainImageUrls || []);
const docs = (data.signedDocumentUrls && data.signedDocumentUrls.length > 0)
? data.signedDocumentUrls
: (data.documentUrls || []);
mainImageUrlsWithData.value = fillImagesArray(mainImages);
documentUrlsWithData.value = fillImagesArray(docs);
if (data.category) { if (data.category) {
const catId = typeof data.category === 'object' ? data.category._id : data.category; const catId = typeof data.category === 'object' ? data.category._id : data.category;
@@ -419,10 +441,16 @@ const saveProperty = async () => {
isSaving.value = true; isSaving.value = true;
try { try {
property.value.mainImageUrls = (mainImageUrlsWithData.value || []) property.value.mainImageUrls = (mainImageUrlsWithData.value || [])
.map((x) => (typeof x === 'string' ? x : x.url || x.source || '')) .map((x) => {
const raw = typeof x === 'string' ? x : (x.url || x.source || '');
return raw.split('?')[0];
})
.filter(Boolean); .filter(Boolean);
property.value.documentUrls = (documentUrlsWithData.value || []) property.value.documentUrls = (documentUrlsWithData.value || [])
.map((x) => (typeof x === 'string' ? x : x.url || x.source || '')) .map((x) => {
const raw = typeof x === 'string' ? x : (x.url || x.source || '');
return raw.split('?')[0];
})
.filter(Boolean); .filter(Boolean);
property.value.features = serializeFeaturesPayload(featuresValues.value); property.value.features = serializeFeaturesPayload(featuresValues.value);