bug fix
This commit is contained in:
@@ -335,9 +335,9 @@ const StepOne = ({
|
|||||||
value.amenities?.forEach((e, i) => {
|
value.amenities?.forEach((e, i) => {
|
||||||
formData.append(`ticket_amenities[${i}]`, String(e));
|
formData.append(`ticket_amenities[${i}]`, String(e));
|
||||||
});
|
});
|
||||||
value.images.forEach((e) => {
|
value.images.forEach((e, i) => {
|
||||||
if (e instanceof File) {
|
if (e instanceof File) {
|
||||||
formData.append("ticket_images", e);
|
formData.append(`ticket_images[${i}]`, e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
value.amenities?.forEach((e, i) => {
|
value.amenities?.forEach((e, i) => {
|
||||||
@@ -354,13 +354,17 @@ const StepOne = ({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
value.ticket_itinerary?.forEach((itinerary, i) => {
|
value.ticket_itinerary?.forEach((itinerary, i) => {
|
||||||
// Har bir itinerary uchun asosiy maydonlar
|
itinerary.ticket_itinerary_image.forEach((img) => {
|
||||||
|
if (img.image instanceof File) {
|
||||||
formData.append(`ticket_itinerary[${i}]title`, itinerary.title);
|
formData.append(`ticket_itinerary[${i}]title`, itinerary.title);
|
||||||
formData.append(`ticket_itinerary[${i}]title_ru`, itinerary.title_ru);
|
formData.append(`ticket_itinerary[${i}]title_ru`, itinerary.title_ru);
|
||||||
formData.append(
|
formData.append(
|
||||||
`ticket_itinerary[${i}]duration`,
|
`ticket_itinerary[${i}]duration`,
|
||||||
String(itinerary.duration),
|
String(itinerary.duration),
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Har bir itinerary uchun asosiy maydonlar
|
||||||
|
|
||||||
// 🖼 Rasmlar (faqat yangi yuklangan File-larni yuborish)
|
// 🖼 Rasmlar (faqat yangi yuklangan File-larni yuborish)
|
||||||
if (Array.isArray(itinerary.ticket_itinerary_image)) {
|
if (Array.isArray(itinerary.ticket_itinerary_image)) {
|
||||||
@@ -381,9 +385,10 @@ const StepOne = ({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
itinerary.ticket_itinerary_image.forEach((img) => {
|
||||||
// 📍 Destinations (yo‘nalishlar)
|
|
||||||
if (Array.isArray(itinerary.ticket_itinerary_destinations)) {
|
if (Array.isArray(itinerary.ticket_itinerary_destinations)) {
|
||||||
|
if (img.image instanceof File) {
|
||||||
|
// 📍 Destinations (yo‘nalishlar)
|
||||||
itinerary.ticket_itinerary_destinations.forEach((dest, k) => {
|
itinerary.ticket_itinerary_destinations.forEach((dest, k) => {
|
||||||
formData.append(
|
formData.append(
|
||||||
`ticket_itinerary[${i}]ticket_itinerary_destinations[${k}]name`,
|
`ticket_itinerary[${i}]ticket_itinerary_destinations[${k}]name`,
|
||||||
@@ -395,6 +400,8 @@ const StepOne = ({
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
value.hotel_meals.forEach((e, i) => {
|
value.hotel_meals.forEach((e, i) => {
|
||||||
|
|||||||
@@ -33,13 +33,13 @@ export default function TicketsImagesModel({
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (imageUrl) {
|
if (imageUrl) {
|
||||||
if (Array.isArray(imageUrl)) {
|
const urls = Array.isArray(imageUrl) ? imageUrl : [imageUrl];
|
||||||
setPreviews(imageUrl);
|
setPreviews(urls);
|
||||||
} else {
|
|
||||||
setPreviews([imageUrl]);
|
// 🔥 form bilan sinxronlash
|
||||||
|
form.setValue(name, urls);
|
||||||
}
|
}
|
||||||
}
|
}, [imageUrl, form, name]);
|
||||||
}, [imageUrl]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<FormField
|
<FormField
|
||||||
@@ -62,20 +62,23 @@ export default function TicketsImagesModel({
|
|||||||
const newFiles = e.target.files
|
const newFiles = e.target.files
|
||||||
? Array.from(e.target.files)
|
? Array.from(e.target.files)
|
||||||
: [];
|
: [];
|
||||||
|
const currentValue = form.getValues(name) || [];
|
||||||
|
const currentUrls = previews || [];
|
||||||
|
|
||||||
if (multiple) {
|
if (multiple) {
|
||||||
// ✅ Bir nechta rasm
|
// ✅ eski URL’larni va yangi fayllarni birlashtirish
|
||||||
const allFiles = [
|
const combined = [...currentValue, ...newFiles];
|
||||||
...(form.getValues(name) || []),
|
form.setValue(name, combined);
|
||||||
...newFiles,
|
|
||||||
];
|
const newPreviews = [
|
||||||
form.setValue(name, allFiles);
|
...currentUrls,
|
||||||
const urls = allFiles.map((file: File) =>
|
...newFiles.map((file: File) =>
|
||||||
URL.createObjectURL(file),
|
URL.createObjectURL(file),
|
||||||
);
|
),
|
||||||
setPreviews(urls);
|
];
|
||||||
|
setPreviews(newPreviews);
|
||||||
} else {
|
} else {
|
||||||
// ✅ Faqat bitta rasm (banner)
|
// ✅ bitta rasm holati
|
||||||
const singleFile = newFiles[0] || null;
|
const singleFile = newFiles[0] || null;
|
||||||
form.setValue(name, singleFile);
|
form.setValue(name, singleFile);
|
||||||
setPreviews(
|
setPreviews(
|
||||||
|
|||||||
Reference in New Issue
Block a user