diff --git a/src/Pages/Products/View/Addfn/AddNewVariation.ts b/src/Pages/Products/View/Addfn/AddNewVariation.ts index 28b1bc1..9ef3938 100644 --- a/src/Pages/Products/View/Addfn/AddNewVariation.ts +++ b/src/Pages/Products/View/Addfn/AddNewVariation.ts @@ -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); - }); - } - \ No newline at end of file + + 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); + }); +} diff --git a/src/Pages/Products/View/EditPage.tsx b/src/Pages/Products/View/EditPage.tsx index 208d4ce..2616057 100644 --- a/src/Pages/Products/View/EditPage.tsx +++ b/src/Pages/Products/View/EditPage.tsx @@ -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,18 +126,21 @@ 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, - + // product_attributes: varible?.attribute?.map((item: any, index: any) => { // 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, +