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