This commit is contained in:
KarimAldeen 2024-03-21 01:18:45 +03:00
parent 4b22add13e
commit 9afd1c4437
2 changed files with 85 additions and 90 deletions

View File

@ -1,45 +1,57 @@
// Function to process variable taps when success is true
export function AddNewVariation(Varibletaps: any[], data: any, AddVariation: any) {
const baseProductId = data?.id;
Varibletaps?.forEach((dataToSend: any) => {
const varible = dataToSend;
const info = varible?.info ?? [];
const convertedArray = Array.isArray(info) ?? info.reduce((acc: any, obj: any) => {
acc[obj.Description] = obj.key;
return acc;
}, {});
const jsonString = JSON.stringify(convertedArray);
const IMages = (varible?.id !== null || varible?.id !== 0) ? {
main_photo: varible?.main_photo,
images: varible?.images,
} : {
copied_assets: { main_photo: varible?.main_photo, images: varible?.images },
}
const baseProductId = data?.id;
Varibletaps?.forEach((dataToSend: any) => {
const varible = dataToSend;
const info = varible?.info ?? [];
const convertedArray = Array.isArray(info) ?? info.reduce((acc: any, obj: any) => {
acc[obj.Description] = obj.key;
return acc;
}, {});
const jsonString = JSON.stringify(convertedArray);
const Newproduct = {
name: {
en: varible?.name_en,
ar: varible?.name_ar,
de: varible?.name_de
},
description: {
en: varible?.description_en,
ar: varible?.description_ar,
de: varible?.description_de
},
// quantity: varible?.quantity,
...IMages,
info: jsonString,
price: varible?.price,
product_attributes: varible?.attribute?.map((item: any, index: any) => {
return { attribute_value_id: item?.value, attribute_id: item?.id };
}),
base_product_id: baseProductId
};
console.log(Newproduct);
AddVariation(Newproduct);
});
}
const main_photo = (typeof varible?.main_photo === 'string') ? {
copied_assets: { main_photo: varible?.main_photo },
} : {
main_photo: varible?.main_photo,
}
const images = (typeof varible?.images === 'string') ? {
copied_assets: { images: varible?.images },
} : {
images: varible?.images,
}
const Newproduct = {
name: {
en: varible?.name_en,
ar: varible?.name_ar,
de: varible?.name_de
},
description: {
en: varible?.description_en,
ar: varible?.description_ar,
de: varible?.description_de
},
// quantity: varible?.quantity,
...images,
...main_photo,
info: jsonString,
price: varible?.price,
product_attributes: varible?.attribute?.map((item: any, index: any) => {
return { attribute_value_id: item?.value, attribute_id: item?.id };
}),
base_product_id: baseProductId
};
console.log(Newproduct);
AddVariation(Newproduct);
});
}

View File

@ -61,9 +61,9 @@ const ViewProduct = () => {
mutate(newData);
}
const validationResults = isvalidation(values.variable, t);
// if (validationResults.every((result) => result)) {
// isValid();
// }
if (validationResults.every((result) => result)) {
isValid();
}
};
@ -107,13 +107,14 @@ const ViewProduct = () => {
const images_product = foundObject?.images?.map((item: any) => {
return item?.path
})
const array1 =images_product;
const array2 =varible?.images;
const array1 = images_product;
const array2 = varible?.images;
const isEqual2 = array1.length === array2.length && array1.every((value:any, index:any) => value === array2[index]);
const isEqual_images = array1.length === array2.length && array1.every((value: any, index: any) => value === array2[index]);
console.log("Arrays are equal:", isEqual2);
console.log("Arrays are equal:", isEqual_images);
const images = isEqual_images ? { } : { images: varible?.images }
const Editedproduct = {
name: {
en: varible?.name_en,
@ -125,9 +126,9 @@ const ViewProduct = () => {
ar: varible?.description_ar,
de: varible?.description_de
},
quantity: varible?.quantity,
// quantity: varible?.quantity,
main_photo: varible?.main_photo,
images: varible?.images,
...images,
info: jsonString,
price: varible?.price,
@ -136,7 +137,10 @@ const ViewProduct = () => {
// return { attribute_value_id: item?.value, attribute_id: item?.id }
// }),
}
} as any
if (foundObject) {
Object.keys(Editedproduct).forEach((propName: any) => {
if (foundObject.hasOwnProperty(propName)) {
@ -186,35 +190,7 @@ const ViewProduct = () => {
delete Editedproduct?.info;
}
// if (convertedArray && foundObject.info) {
// const editedInfoKeys = Object.keys(convertedArray);
// const foundInfoKeys = Object.keys(foundObject.info);
// console.log(editedInfoKeys, "editedInfoKeys");
// console.log(foundInfoKeys, "foundInfoKeys");
// // Check if the number of keys is the same
// if (editedInfoKeys.length === foundInfoKeys.length) {
// // Check if all keys and their corresponding values are the same
// const keysAreEqual = editedInfoKeys.every((key: any) => {
// //@ts-ignore
// console.log(convertedArray[key], "convertedArray[key] ");
// console.log(foundObject.info[key], "foundObject.info[key]");
// return convertedArray[key] === foundObject.info[key];
// });
// if (keysAreEqual) {
// // Remove the info property from Editedproduct
// //@ts-ignore
// delete Editedproduct.info;
// }
// }
// if (Object.keys(Editedproduct.info).length === 0) {
// //@ts-ignore
// delete Editedproduct.info;
// }
// }
if (Object.keys(Editedproduct).length > 0) {
//@ts-ignore
Editedproduct._method = "PUT";
@ -235,16 +211,21 @@ const ViewProduct = () => {
return acc;
}, {});
const jsonString = JSON.stringify(convertedArray);
const IMages =
(typeof varible?.main_photo === 'string' || typeof varible?.images === 'string') ?
{
copied_assets: { main_photo: varible?.main_photo, images: varible?.images }
} :
{
main_photo: varible?.main_photo,
images: varible?.images
};
const main_photo = (typeof varible?.main_photo === 'string') ? {
copied_assets: { main_photo: varible?.main_photo },
} : {
main_photo: varible?.main_photo,
}
const images = (typeof varible?.images === 'string') ? {
copied_assets: { images: varible?.images },
} : {
images: varible?.images,
}
const Newproduct = {
name: {
en: varible?.name_en,
@ -262,7 +243,9 @@ const ViewProduct = () => {
price: varible?.price,
base_product_id: id,
...IMages,
...main_photo,
...images,