check
							parent
							
								
									a1aaf8040a
								
							
						
					
					
						commit
						03e98063c0
					
				|  | @ -1,15 +0,0 @@ | |||
| { | ||||
|   // Use IntelliSense to learn about possible attributes. | ||||
|   // Hover to view descriptions of existing attributes. | ||||
|   // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | ||||
|   "version": "0.2.0", | ||||
|   "configurations": [ | ||||
|     { | ||||
|       "type": "chrome", | ||||
|       "request": "launch", | ||||
|       "name": "Launch Chrome against localhost", | ||||
|       "url": "http://localhost:8080", | ||||
|       "webRoot": "${workspaceFolder}" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -16,4 +16,4 @@ CMD ["node_modules/.bin/next", "start"] | |||
| 
 | ||||
| 
 | ||||
| # docker build -f Dockerfile.x -t registry.vnfco.ir/netinashop/vesmeh:1.0.4.6 . | ||||
| #  docker push registry.vnfco.ir/netinashop/vesmeh:1.0.4.6 | ||||
| #  docker push registry.vnfco.ir/netinashop/vesmeh:1.0.4.6~ | ||||
|  | @ -62,7 +62,7 @@ const ProductData = ({ params, data }) => { | |||
|     <> | ||||
|       <Navbar theme={1} /> | ||||
|       <div className="py-10 "> | ||||
|         <div className="grid xs:grid-cols-1 lg:grid-cols-8  rtl gap-6 lg:px-20"> | ||||
|         <div className="grid gap-6 xs:grid-cols-1 lg:grid-cols-8 rtl lg:px-20"> | ||||
|           <div className="lg:col-span-3 "> | ||||
|             <GalleryBox file={data?.product?.files} /> | ||||
|           </div> | ||||
|  | @ -78,18 +78,18 @@ const ProductData = ({ params, data }) => { | |||
|             </div> | ||||
| 
 | ||||
|             <div className="flex my-4"> | ||||
|               <div className="bg-primary-400 rounded-full py-1 px-3 ml-2"> | ||||
|               <div className="px-3 py-1 ml-2 rounded-full bg-primary-400"> | ||||
|                 <p className="mb-0 text-sm text-white ">اصالت کالای </p> | ||||
|               </div> | ||||
| 
 | ||||
|               {data?.product?.hasDiscount && ( | ||||
|                 <div className="bg-danger-100 rounded-full py-1 px-3 ml-2"> | ||||
|                 <div className="px-3 py-1 ml-2 rounded-full bg-danger-100"> | ||||
|                   <p className="mb-0 text-sm text-white ">بمب امروز </p> | ||||
|                 </div> | ||||
|               )} | ||||
| 
 | ||||
|               {!data?.product?.warranty == "" && ( | ||||
|                 <div className="bg-secondary-500 rounded-full py-1 px-3 ml-2"> | ||||
|                 <div className="px-3 py-1 ml-2 rounded-full bg-secondary-500"> | ||||
|                   <p className="mb-0 text-sm text-white "> | ||||
|                     {product?.warranty} | ||||
|                   </p> | ||||
|  | @ -108,18 +108,18 @@ const ProductData = ({ params, data }) => { | |||
|         </div> */} | ||||
| 
 | ||||
|             <div> | ||||
|               <div className="text-right  mt-3 flex justify-between"> | ||||
|                 <h2 className="mb-0 text-gray-400  text-sm"> | ||||
|               <div className="flex justify-between mt-3 text-right"> | ||||
|                 <h2 className="mb-0 text-sm text-gray-400"> | ||||
|                   {data?.product?.summery} | ||||
|                 </h2> | ||||
|               </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <ul className="mt-3 px-3"> | ||||
|             <ul className="px-3 mt-3"> | ||||
|               {specificationsHeader.map((e, index) => ( | ||||
|                 <li className="flex my-2 " key={index}> | ||||
|                   <div className="w-[10px] h-[10px] relative rounded-full bg-primary-500 mt-1"></div> | ||||
|                   <p className="mb-0  w-full text-sm  text-gray-700 mx-2 "> | ||||
|                   <p className="w-full mx-2 mb-0 text-sm text-gray-700 "> | ||||
|                     {e} | ||||
|                   </p> | ||||
|                 </li> | ||||
|  | @ -136,7 +136,7 @@ const ProductData = ({ params, data }) => { | |||
|                   {data?.product?.files?.length > 0 ? ( | ||||
|                     <Image | ||||
|                       src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${ | ||||
|                         product.files && product.files[0].fileLocation | ||||
|                         product.files && product.files[0]?.fileLocation | ||||
|                       }`} | ||||
|                       width={350} | ||||
|                       height={350} | ||||
|  | @ -158,7 +158,7 @@ const ProductData = ({ params, data }) => { | |||
|                 </div> | ||||
|               </div> | ||||
|               <div className="text-center"> | ||||
|                 <p className="mb-0 text-sm text-gray-500 my-2"> | ||||
|                 <p className="my-2 mb-0 text-sm text-gray-500"> | ||||
|                   {data?.product?.persianName}{" "} | ||||
|                 </p> | ||||
|               </div> | ||||
|  | @ -196,7 +196,7 @@ const ProductData = ({ params, data }) => { | |||
| 
 | ||||
|               <div className="w-6/12 mx-auto h-[1px] bg-gray-200 mt-4"></div> | ||||
| 
 | ||||
|               <div className=" mt-4 flex justify-between "> | ||||
|               <div className="flex justify-between mt-4 "> | ||||
|                 {true ? ( | ||||
|                   <div className="flex justify-end"> | ||||
|                     <div className="mb-0 font-bold text-sm absolute mt-[-11px] ml-[0px] right-0 mr-[13px] text-red-600 flex rtl"> | ||||
|  | @ -222,7 +222,7 @@ const ProductData = ({ params, data }) => { | |||
|                 ) : ( | ||||
|                   <div className="flex rtl mt-[3px]"> | ||||
|                     {" "} | ||||
|                     <p className="mb-0 font-bold text-lg"> | ||||
|                     <p className="mb-0 text-lg font-bold"> | ||||
|                       <PersianNumber | ||||
|                         number={(data?.cost / 10).toLocaleString()} | ||||
|                       /> | ||||
|  | @ -237,7 +237,7 @@ const ProductData = ({ params, data }) => { | |||
| 
 | ||||
|           <div className="lg:col-span-6"> | ||||
|             <div className="xs:px-[15px] lg:px-[100px]"> | ||||
|               <div className="bg-gray-200 rounded-full xs:p-1 lg:p-3 flex w-fit sticky top-0 "> | ||||
|               <div className="sticky top-0 flex bg-gray-200 rounded-full xs:p-1 lg:p-3 w-fit "> | ||||
|                 <div | ||||
|                   className={` rounded-full xs:p-2 lg:p-3 cursor-pointer tr03 ${ | ||||
|                     productBarDetail == 0 ? "bg-primary-500 text-gray-100" : "" | ||||
|  | @ -283,7 +283,7 @@ const ProductData = ({ params, data }) => { | |||
|               </div> | ||||
| 
 | ||||
|               <div id="section0"> | ||||
|                 <h3 className=" text-sm text-gray-400 mt-7 mb-2"> | ||||
|                 <h3 className="mb-2 text-sm text-gray-400  mt-7"> | ||||
|                   مشخصات محصول | ||||
|                 </h3> | ||||
|                 <div className="min-w-[200px] mt-5 rounded-xl overflow-hidden border rtl "> | ||||
|  | @ -296,7 +296,7 @@ const ProductData = ({ params, data }) => { | |||
|                     > | ||||
|                       <p className="mb-0 text-sm text-gray-600"> | ||||
|                         {e.title}: | ||||
|                         <small className="text-sm text-gray-800 font-bold "> | ||||
|                         <small className="text-sm font-bold text-gray-800 "> | ||||
|                           {" "} | ||||
|                           {e.value}{" "} | ||||
|                         </small> | ||||
|  | @ -307,12 +307,12 @@ const ProductData = ({ params, data }) => { | |||
|               </div> | ||||
| 
 | ||||
|               <div id="section2"> | ||||
|                 <h3 className=" text-sm text-gray-400 mt-7 mb-2"> | ||||
|                 <h3 className="mb-2 text-sm text-gray-400  mt-7"> | ||||
|                   نقد و برسی{" "} | ||||
|                 </h3> | ||||
| 
 | ||||
|                 {!!data?.product.expertCheck ? ( | ||||
|                   <div className="border p-5  rounded-lg"> | ||||
|                   <div className="p-5 border rounded-lg"> | ||||
|                     <div | ||||
|                       dangerouslySetInnerHTML={{ | ||||
|                         __html: data?.product.expertCheck, | ||||
|  | @ -320,9 +320,9 @@ const ProductData = ({ params, data }) => { | |||
|                     /> | ||||
|                   </div> | ||||
|                 ) : ( | ||||
|                   <div className="border p-5  rounded-lg"> | ||||
|                   <div className="p-5 border rounded-lg"> | ||||
|                     <div className="flex justify-center py-5"> | ||||
|                       <div className="bg-white shadow   w-fit rounded-full text-sm   p-4"> | ||||
|                       <div className="p-4 text-sm bg-white rounded-full shadow w-fit"> | ||||
|                         چیزی یافت نشد | ||||
|                       </div> | ||||
|                     </div> | ||||
|  | @ -331,12 +331,12 @@ const ProductData = ({ params, data }) => { | |||
|               </div> | ||||
| 
 | ||||
|               <div id="section3"> | ||||
|                 <h3 className=" text-sm text-gray-400 mt-7 mb-2"> | ||||
|                 <h3 className="mb-2 text-sm text-gray-400  mt-7"> | ||||
|                   دیدگاه مخاطبان{" "} | ||||
|                 </h3> | ||||
|                 <div className="border p-5  rounded-lg"> | ||||
|                 <div className="p-5 border rounded-lg"> | ||||
|                   <div className="flex justify-center py-5"> | ||||
|                     <div className="bg-white shadow   w-fit rounded-full text-sm   p-4"> | ||||
|                     <div className="p-4 text-sm bg-white rounded-full shadow w-fit"> | ||||
|                       چیزی یافت نشد | ||||
|                     </div> | ||||
|                   </div> | ||||
|  | @ -344,9 +344,9 @@ const ProductData = ({ params, data }) => { | |||
|               </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <div className="xs:block lg:hidden   sticky bottom-0 "> | ||||
|             <div className="sticky bottom-0 xs:block lg:hidden "> | ||||
|               <div className="w-full bg-[white] p-2 border-t-[1px] border-gray-100 mt-[30px]"> | ||||
|                 <div className="py-4 flex ltr justify-between px-4 relative"> | ||||
|                 <div className="relative flex justify-between px-4 py-4 ltr"> | ||||
|                   {product?.hasDiscount ? ( | ||||
|                     <> | ||||
|                       <p className="mb-0 font-bold text-sm absolute ml-[33px] opacity-30 mt-[-5px] text-red-600"> | ||||
|  | @ -372,7 +372,7 @@ const ProductData = ({ params, data }) => { | |||
|                   ) : ( | ||||
|                     <div className="flex rtl mt-[3px]"> | ||||
|                       {" "} | ||||
|                       <p className="mb-0 font-bold text-lg"> | ||||
|                       <p className="mb-0 text-lg font-bold"> | ||||
|                         <PersianNumber | ||||
|                           number={(data?.product?.cost / 10).toLocaleString()} | ||||
|                         /> | ||||
|  |  | |||
|  | @ -24,15 +24,15 @@ const BlogData = ({ data }) => { | |||
|     <div> | ||||
|       <Navbar /> | ||||
| 
 | ||||
|       <div className="xs:px-3 md:px-5 md:container md:mx-auto mb-10"> | ||||
|       <div className="mb-10 xs:px-3 md:px-5 md:container md:mx-auto"> | ||||
|         <div className="grid xs:grid-cols-1 lg:grid-cols-6 gap-7 rtl"> | ||||
|           <div className="lg:col-span-4 mt-10 rtl"> | ||||
|           <div className="mt-10 lg:col-span-4 rtl"> | ||||
|             <div className="mt-10 "> | ||||
|               <Image | ||||
|                 src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/Images/Med/${data.mainImage}`} | ||||
|                 src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/Images/Med/${data?.mainImage}`} | ||||
|                 width={500} | ||||
|                 height={500} | ||||
|                 className="xs:w-full lg:w-6/12 rounded-3xl mb-3" | ||||
|                 className="mb-3 xs:w-full lg:w-6/12 rounded-3xl" | ||||
|               /> | ||||
|               <h1 className=" font-bold text-right xs:text-[20px] lg:text-[40px]"> | ||||
|                 {data.title} | ||||
|  | @ -45,7 +45,7 @@ const BlogData = ({ data }) => { | |||
|             </div> | ||||
|           </div> | ||||
| 
 | ||||
|           <div className="lg:col-span-2 mt-10 rtl "> | ||||
|           <div className="mt-10 lg:col-span-2 rtl "> | ||||
|             <SliderProductsOffer data={specialOfferData} /> | ||||
|           </div> | ||||
|         </div> | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ const CardCart = ({ data }) => { | |||
|         <div className=" h-fit"> | ||||
|           {!!data.mainImage ? ( | ||||
|             <Image | ||||
|               src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data.mainImage}`} | ||||
|               src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data?.mainImage}`} | ||||
|               width={100} | ||||
|               height={100} | ||||
|               className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover" | ||||
|  | @ -35,19 +35,19 @@ const CardCart = ({ data }) => { | |||
|           )} | ||||
|         </div> | ||||
|       </Link> | ||||
|       <div className="p-3 text-right w-full"> | ||||
|       <div className="w-full p-3 text-right"> | ||||
|         <Link href={`/products/${data.id}/${hyphenatedName}`}> | ||||
|           <p className="mb-0 xs:text-[12px] lg:text-[11px] xl:text-[15px]  max-h-[50px] tr03   "> | ||||
|             {data?.persianName} | ||||
|           </p> | ||||
|         </Link> | ||||
| 
 | ||||
|         <div className=" rounded-full flex ltr  pt-2 mt-2  w-full"> | ||||
|         <div className="flex w-full pt-2 mt-2 rounded-full  ltr"> | ||||
|           <AddToCart data={data} theme={1} /> | ||||
| 
 | ||||
|           <div className="w-full text-right rounded-full"> | ||||
|             {data?.hasDiscount ? ( | ||||
|               <div className="flex justify-end relative"> | ||||
|               <div className="relative flex justify-end"> | ||||
|                 <p className="mb-0 font-bold text-sm absolute opacity-40 mt-[-7px] ml-[20px] text-red-600"> | ||||
|                   <del> | ||||
|                     <PersianNumber | ||||
|  | @ -69,7 +69,7 @@ const CardCart = ({ data }) => { | |||
|             ) : ( | ||||
|               <div className="flex rtl mt-[3px]"> | ||||
|                 {" "} | ||||
|                 <p className="mb-0 font-bold text-lg"> | ||||
|                 <p className="mb-0 text-lg font-bold"> | ||||
|                   <PersianNumber number={(data?.cost / 10).toLocaleString()} /> | ||||
|                 </p> | ||||
|                 <small className="mr-1 mt-[6px]">تومان</small> | ||||
|  |  | |||
|  | @ -15,7 +15,7 @@ const CardCategories = ({ data }) => { | |||
|   const hyphenatedName = hyphenateString(data.persianName); | ||||
| 
 | ||||
|   return ( | ||||
|     <div className="group border border-gray-50  w-full hover:bg-white z-40 tr03"> | ||||
|     <div className="z-40 w-full border group border-gray-50 hover:bg-white tr03"> | ||||
|       <> | ||||
|         <div | ||||
|           className={` tr03 py-2  overflow-hidden xs:h-[200px] lg:h-[230px]  ${ | ||||
|  | @ -26,7 +26,7 @@ const CardCategories = ({ data }) => { | |||
|         > | ||||
|           {data.hasDiscount && ( | ||||
|             <div className="absolute m-3 "> | ||||
|               <div className="w-fit  rounded-lg bg-red-600 overflow-hidden px-1 "> | ||||
|               <div className="px-1 overflow-hidden bg-red-600 rounded-lg w-fit "> | ||||
|                 <p className="mb-0 text-[10px] text-white  pt-[3px] "> | ||||
|                   <PersianNumber | ||||
|                     number={data.discountPercent} | ||||
|  | @ -47,10 +47,10 @@ const CardCategories = ({ data }) => { | |||
|             </div> | ||||
|           )} | ||||
|           <Link href={`/products/${data.id}/${hyphenatedName}`}> | ||||
|             <div className="w-full h-fit flex justify-center  "> | ||||
|             <div className="flex justify-center w-full h-fit "> | ||||
|               {!!data.mainImage ? ( | ||||
|                 <Image | ||||
|                   src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data.mainImage}`} | ||||
|                   src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data?.mainImage}`} | ||||
|                   width={200} | ||||
|                   height={200} | ||||
|                   className="xs:!w-[110px] lg:!w-[130px] mx-auto" | ||||
|  | @ -81,7 +81,7 @@ const CardCategories = ({ data }) => { | |||
|         </div> | ||||
|       </> | ||||
| 
 | ||||
|       <div className=" rounded-full flex ltr p-3 mt-2"> | ||||
|       <div className="flex p-3 mt-2 rounded-full  ltr"> | ||||
|         <div className="flex w-full"> | ||||
|           <AddToCart data={data} theme={1} /> | ||||
|         </div> | ||||
|  | @ -109,7 +109,7 @@ const CardCategories = ({ data }) => { | |||
|           ) : ( | ||||
|             <div className="flex rtl mt-[3px]"> | ||||
|               {" "} | ||||
|               <p className="mb-0 font-bold text-lg"> | ||||
|               <p className="mb-0 text-lg font-bold"> | ||||
|                 <PersianNumber number={(data?.cost / 10).toLocaleString()} /> | ||||
|               </p> | ||||
|               <small className="mr-1 mt-[6px]">تومان</small> | ||||
|  |  | |||
|  | @ -20,7 +20,7 @@ const CardCategoriesMobile = ({ data }) => { | |||
|         <div className=" h-fit"> | ||||
|           {!!data.mainImage ? ( | ||||
|             <Image | ||||
|               src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data.mainImage}`} | ||||
|               src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data?.mainImage}`} | ||||
|               width={200} | ||||
|               height={200} | ||||
|               className="xs:!w-[110px] lg:!w-[130px] mx-auto " | ||||
|  | @ -38,7 +38,7 @@ const CardCategoriesMobile = ({ data }) => { | |||
|         </div> | ||||
|       </Link> | ||||
| 
 | ||||
|       <div className="p-3 text-right w-full"> | ||||
|       <div className="w-full p-3 text-right"> | ||||
|         {" "} | ||||
|         <Link href={`/products/${data.id}/${hyphenatedName}`}> | ||||
|           <p className="mb-0 xs:text-[12px] lg:text-[11px] xl:text-[15px]  max-h-[50px] tr03   "> | ||||
|  | @ -50,7 +50,7 @@ const CardCategoriesMobile = ({ data }) => { | |||
|             {data.stock} عدد موجود انبار | ||||
|           </p> | ||||
|         )} | ||||
|         <div className=" rounded-full flex ltr  pt-2 mt-2  w-full"> | ||||
|         <div className="flex w-full pt-2 mt-2 rounded-full  ltr"> | ||||
|           <AddToCart data={data} theme={1} />{" "} | ||||
|           <div className="w-full text-right rounded-lg"> | ||||
|             {data?.hasDiscount ? ( | ||||
|  | @ -84,7 +84,7 @@ const CardCategoriesMobile = ({ data }) => { | |||
|             ) : ( | ||||
|               <div className="flex rtl mt-[3px]"> | ||||
|                 {" "} | ||||
|                 <p className="mb-0 font-bold text-lg"> | ||||
|                 <p className="mb-0 text-lg font-bold"> | ||||
|                   <PersianNumber number={(data?.cost / 10).toLocaleString()} /> | ||||
|                 </p> | ||||
|                 <small className="mr-1 mt-[6px]">تومان</small> | ||||
|  |  | |||
|  | @ -30,7 +30,7 @@ const CardNormal = ({ data, priority }) => { | |||
|           > | ||||
|             {data.hasDiscount && ( | ||||
|               <div className="absolute m-3 "> | ||||
|                 <div className="w-fit  rounded-lg bg-red-600 overflow-hidden px-1 "> | ||||
|                 <div className="px-1 overflow-hidden bg-red-600 rounded-lg w-fit "> | ||||
|                   <p className="mb-0 text-[10px] text-white  pt-[3px] "> | ||||
|                     <PersianNumber | ||||
|                       number={data.discountPercent} | ||||
|  | @ -42,10 +42,10 @@ const CardNormal = ({ data, priority }) => { | |||
|               </div> | ||||
|             )} | ||||
| 
 | ||||
|             <div className="w-full h-fit flex justify-center  "> | ||||
|             <div className="flex justify-center w-full h-fit "> | ||||
|               {!!data.mainImage ? ( | ||||
|                 <Image | ||||
|                   src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data.mainImage}`} | ||||
|                   src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data?.mainImage}`} | ||||
|                   width={200} | ||||
|                   height={200} | ||||
|                   className="xs:!w-[110px] lg:!w-[130px] mx-auto" | ||||
|  | @ -76,12 +76,12 @@ const CardNormal = ({ data, priority }) => { | |||
|           </div> | ||||
|         </Link> | ||||
|       </> | ||||
|       <div className="bg-gray-50 rounded-lg flex ltr p-1 mt-2 border border-gray-100"> | ||||
|       <div className="flex p-1 mt-2 border border-gray-100 rounded-lg bg-gray-50 ltr"> | ||||
|         <div className="flex w-full"> | ||||
|           <AddToCart data={data} theme={1} /> | ||||
|         </div> | ||||
| 
 | ||||
|         <div className="w-full  text-right rounded-full pr-2"> | ||||
|         <div className="w-full pr-2 text-right rounded-full"> | ||||
|           {data?.hasDiscount ? ( | ||||
|             <> | ||||
|               <p className="mb-0 font-bold text-sm absolute right-3 opacity-30 mt-[-5px] text-red-600"> | ||||
|  | @ -105,7 +105,7 @@ const CardNormal = ({ data, priority }) => { | |||
|           ) : ( | ||||
|             <div className="flex rtl mt-[3px]"> | ||||
|               {" "} | ||||
|               <p className="mb-0 font-bold text-lg"> | ||||
|               <p className="mb-0 text-lg font-bold"> | ||||
|                 <PersianNumber number={(data?.cost / 10).toLocaleString()} /> | ||||
|               </p> | ||||
|               <small className="mr-1 mt-[6px]">تومان</small> | ||||
|  |  | |||
|  | @ -28,7 +28,7 @@ const CardSurprise = ({ data, priority }) => { | |||
|           > | ||||
|             {data.hasDiscount && ( | ||||
|               <div className="absolute m-3 "> | ||||
|                 <div className="w-fit  rounded-lg bg-red-600 overflow-hidden px-1 "> | ||||
|                 <div className="px-1 overflow-hidden bg-red-600 rounded-lg w-fit "> | ||||
|                   <p className="mb-0 text-[10px] text-white  pt-[3px] "> | ||||
|                     <PersianNumber | ||||
|                       number={data.discountPercent} | ||||
|  | @ -40,10 +40,10 @@ const CardSurprise = ({ data, priority }) => { | |||
|               </div> | ||||
|             )} | ||||
| 
 | ||||
|             <div className="w-full h-fit flex justify-center  "> | ||||
|             <div className="flex justify-center w-full h-fit "> | ||||
|               {!!data.mainImage ? ( | ||||
|                 <Image | ||||
|                   src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data.mainImage}`} | ||||
|                   src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data?.mainImage}`} | ||||
|                   width={100} | ||||
|                   height={100} | ||||
|                   className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover" | ||||
|  | @ -74,12 +74,12 @@ const CardSurprise = ({ data, priority }) => { | |||
|           </div> | ||||
|         </Link> | ||||
|       </> | ||||
|       <div className="bg-gray-50 rounded-lg flex ltr p-1 mt-2 border border-gray-100"> | ||||
|       <div className="flex p-1 mt-2 border border-gray-100 rounded-lg bg-gray-50 ltr"> | ||||
|         <div className="flex w-full"> | ||||
|           <AddToCart data={data} theme={1} /> | ||||
|         </div> | ||||
| 
 | ||||
|         <div className="w-full  text-right rounded-full pr-2"> | ||||
|         <div className="w-full pr-2 text-right rounded-full"> | ||||
|           {data?.hasDiscount ? ( | ||||
|             <> | ||||
|               <p className="mb-0 font-bold text-sm absolute right-3 opacity-30 mt-[-5px] text-red-600"> | ||||
|  | @ -103,7 +103,7 @@ const CardSurprise = ({ data, priority }) => { | |||
|           ) : ( | ||||
|             <div className="flex rtl mt-[3px]"> | ||||
|               {" "} | ||||
|               <p className="mb-0 font-bold text-lg"> | ||||
|               <p className="mb-0 text-lg font-bold"> | ||||
|                 <PersianNumber number={(data?.cost / 10).toLocaleString()} /> | ||||
|               </p> | ||||
|               <small className="mr-1 mt-[6px]">تومان</small> | ||||
|  |  | |||
|  | @ -62,12 +62,12 @@ const HeroSection = () => { | |||
|             <Link | ||||
|               href={slide.url} | ||||
|               key={slide.id} | ||||
|               className="w-full flex-shrink-0" | ||||
|               className="flex-shrink-0 w-full" | ||||
|             > | ||||
|               <div className="block lg:hidden xs:mx-2 lg:mx-0"> | ||||
|                 <Image | ||||
|                   src={slide.imageResponsive} | ||||
|                   alt={slide.title} | ||||
|                   src={slide?.imageResponsive} | ||||
|                   alt={slide?.title} | ||||
|                   className="!w-full xs:h-[200px]  md:h-[400px] lg:h-[400px] xl:h-[650px]  rounded-2xl lg:rounded-none object-cover" | ||||
|                   layout="responsive" | ||||
|                   width={800} | ||||
|  | @ -76,8 +76,8 @@ const HeroSection = () => { | |||
|               </div> | ||||
|               <div className="hidden lg:block"> | ||||
|                 <Image | ||||
|                   src={slide.image} | ||||
|                   alt={slide.title} | ||||
|                   src={slide?.image} | ||||
|                   alt={slide?.title} | ||||
|                   className="!w-full xs:h-[200px]  md:h-[400px] lg:h-[400px] xl:h-[650px]   rounded-2xl lg:rounded-none object-cover " | ||||
|                   layout="responsive" | ||||
|                   width={800} | ||||
|  |  | |||
|  | @ -36,7 +36,7 @@ const ResultSearchBar = ({ | |||
|             </div> | ||||
|           </div> | ||||
| 
 | ||||
|           <div className=" overflow-x-auto flex whitespace-nowrap hide-scrollBar "> | ||||
|           <div className="flex overflow-x-auto  whitespace-nowrap hide-scrollBar"> | ||||
|             <Link | ||||
|               href={`/categories/fac3ee2d-19dd-4229-a412-28a1d09cc948/شامپو-بدن`} | ||||
|             > | ||||
|  | @ -95,7 +95,7 @@ const ResultSearchBar = ({ | |||
|               </Link> | ||||
|             ))} | ||||
| 
 | ||||
|             <div className="w-10 h-1 bg-primary-200 rounded-full opacity-35 my-3"></div> | ||||
|             <div className="w-10 h-1 my-3 rounded-full bg-primary-200 opacity-35"></div> | ||||
| 
 | ||||
|             {searchResultProductData?.map((e, index) => ( | ||||
|               <Link | ||||
|  | @ -103,14 +103,14 @@ const ResultSearchBar = ({ | |||
|                 href={`/products/${e.id}/${e.persianName.split(" ").join("-")}`} | ||||
|               > | ||||
|                 <div | ||||
|                   className="flex relative   " | ||||
|                   className="relative flex " | ||||
|                   onClick={() => CTX.setCloseNavbar(false)} | ||||
|                 > | ||||
|                   <div className="h-fit relative"> | ||||
|                   <div className="relative h-fit"> | ||||
|                     <div className="w-[50px] h-[50px] rounded-2xl bg-gray-200 ml-2 mt-3 overflow-hidden relative  "> | ||||
|                       {!!e.mainImage ? ( | ||||
|                         <Image | ||||
|                           src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${e.mainImage}`} | ||||
|                           src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${e?.mainImage}`} | ||||
|                           width={200} | ||||
|                           height={200} | ||||
|                           className="xs:!w-[60px] lg:!w-[60px] mx-auto object-cover " | ||||
|  | @ -127,7 +127,7 @@ const ResultSearchBar = ({ | |||
|                       )} | ||||
|                     </div> | ||||
|                   </div> | ||||
|                   <div className="my-2 w-full relative text-right"> | ||||
|                   <div className="relative w-full my-2 text-right"> | ||||
|                     <p className="mb-0 text-sm ">{e.persianName}</p> | ||||
|                     <small className="text-[12px] text-gray-500 !text-right"> | ||||
|                       محصول{" "} | ||||
|  | @ -139,7 +139,7 @@ const ResultSearchBar = ({ | |||
|           </> | ||||
|         ) : ( | ||||
|           <div className="flex justify-center py-5"> | ||||
|             <div className="bg-white shadow  mt-5 w-fit rounded-full text-sm   p-4"> | ||||
|             <div className="p-4 mt-5 text-sm bg-white rounded-full shadow w-fit"> | ||||
|               چیزی یافت نشد | ||||
|             </div> | ||||
|           </div> | ||||
|  |  | |||
|  | @ -4666,6 +4666,30 @@ | |||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/react-spring-bottom-sheet/node_modules/react-dom": { | ||||
|       "version": "17.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", | ||||
|       "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", | ||||
|       "peer": true, | ||||
|       "dependencies": { | ||||
|         "loose-envify": "^1.1.0", | ||||
|         "object-assign": "^4.1.1", | ||||
|         "scheduler": "^0.20.2" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "react": "17.0.2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/react-spring-bottom-sheet/node_modules/scheduler": { | ||||
|       "version": "0.20.2", | ||||
|       "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", | ||||
|       "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", | ||||
|       "peer": true, | ||||
|       "dependencies": { | ||||
|         "loose-envify": "^1.1.0", | ||||
|         "object-assign": "^4.1.1" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/react-toastify": { | ||||
|       "version": "9.1.3", | ||||
|       "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-9.1.3.tgz", | ||||
|  | @ -5569,6 +5593,20 @@ | |||
|         "url": "https://github.com/sponsors/ljharb" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/typescript": { | ||||
|       "version": "5.5.4", | ||||
|       "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", | ||||
|       "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", | ||||
|       "dev": true, | ||||
|       "peer": true, | ||||
|       "bin": { | ||||
|         "tsc": "bin/tsc", | ||||
|         "tsserver": "bin/tsserver" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=14.17" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/unbox-primitive": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ const GalleryBox = ({ file }) => { | |||
|           {file?.length > 0 ? ( | ||||
|             <Image | ||||
|               src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${ | ||||
|                 file && file[0].fileLocation | ||||
|                 file && file[0]?.fileLocation | ||||
|               }`} | ||||
|               width={350} | ||||
|               height={350} | ||||
|  | @ -40,16 +40,16 @@ const GalleryBox = ({ file }) => { | |||
|         </div> | ||||
|       </div> | ||||
| 
 | ||||
|       <div className="flex  overflow-x-auto p-3 " id="swich-scrollbar"> | ||||
|       <div className="flex p-3 overflow-x-auto " id="swich-scrollbar"> | ||||
|         {file?.map((e) => ( | ||||
|           <div | ||||
|             className="rounded-3xl bg-white border shadow-sm p-3 ml-2" | ||||
|             className="p-3 ml-2 bg-white border shadow-sm rounded-3xl" | ||||
|             key={e.id} | ||||
|             onClick={() => CTX.setIsOpenLightBox(true)} | ||||
|           > | ||||
|             <div className="xs:w-[50px] lg:w-[50px]"> | ||||
|               <Image | ||||
|                 src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${e.fileLocation}`} | ||||
|                 src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${e?.fileLocation}`} | ||||
|                 alt={e.fileName} | ||||
|                 width={50} | ||||
|                 height={50} | ||||
|  |  | |||
|  | @ -71,7 +71,7 @@ const MovingLogos = () => { | |||
|         </div> | ||||
|       ))} */} | ||||
| 
 | ||||
|       <div className="xs:w-4/5 lg:w-3/5 mx-auto"> | ||||
|       <div className="mx-auto xs:w-4/5 lg:w-3/5"> | ||||
|         <div className="w-full inline-flex flex-nowrap overflow-hidden [mask-image:_linear-gradient(to_right,transparent_0,_black_100px,_black_calc(100%-100px),transparent_100%)]"> | ||||
|           <ul | ||||
|             x-ref="logos" | ||||
|  | @ -82,7 +82,7 @@ const MovingLogos = () => { | |||
|                 <Image | ||||
|                   key={e.id} | ||||
|                   id={`logo-${e.id}`} | ||||
|                   src={e.logo} | ||||
|                   src={e?.logo} | ||||
|                   alt={`Logo ${e.id}`} | ||||
|                   className="xs:w-[60px] lg:w-[100px]" | ||||
|                 /> | ||||
|  |  | |||
|  | @ -47,8 +47,8 @@ const BottomSheetSeeOrder = ({ id }) => { | |||
|       {/* {bag && bag.length > 0 && ( */} | ||||
|       <div className="h-[900px]"> | ||||
|         {bag.orderProducts?.map((e) => ( | ||||
|           <div className="text-center p-3"> | ||||
|             <p className="mb-0 text-sm  pb-3 rtl"> | ||||
|           <div className="p-3 text-center"> | ||||
|             <p className="pb-3 mb-0 text-sm rtl"> | ||||
|               <PersianNumber | ||||
|                 number={bag.orderProducts?.length} | ||||
|                 style="text-xl font-bold text-base font-bold mx-2 !text-primary-500" | ||||
|  | @ -64,7 +64,7 @@ const BottomSheetSeeOrder = ({ id }) => { | |||
|                     <div className=" h-fit"> | ||||
|                       {!!e.mainImage ? ( | ||||
|                         <Image | ||||
|                           src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${e.mainImage}`} | ||||
|                           src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${e?.mainImage}`} | ||||
|                           width={100} | ||||
|                           height={100} | ||||
|                           className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover" | ||||
|  | @ -81,16 +81,16 @@ const BottomSheetSeeOrder = ({ id }) => { | |||
|                       )} | ||||
|                     </div> | ||||
|                   </Link> | ||||
|                   <div className="p-3 text-right w-full"> | ||||
|                   <div className="w-full p-3 text-right"> | ||||
|                     <Link href={`/products/${e.id}/${e.productName}`}> | ||||
|                       <p className="mb-0 xs:text-[12px] lg:text-[11px] xl:text-[15px]  max-h-[50px] tr03   "> | ||||
|                         {e?.productName} | ||||
|                       </p> | ||||
|                     </Link> | ||||
| 
 | ||||
|                     <div className=" rounded-full flex ltr  w-full"> | ||||
|                     <div className="flex w-full rounded-full  ltr"> | ||||
|                       <div className="mt-3"> | ||||
|                         <p className="mb-0 rtl text-sm"> | ||||
|                         <p className="mb-0 text-sm rtl"> | ||||
|                           <PersianNumber | ||||
|                             number={e?.count} | ||||
|                             style={"text-sm ml-1"} | ||||
|  | @ -100,7 +100,7 @@ const BottomSheetSeeOrder = ({ id }) => { | |||
|                       </div> | ||||
|                       <div className="w-full text-right rounded-full"> | ||||
|                         {e?.hasDiscount ? ( | ||||
|                           <div className="flex justify-end relative"> | ||||
|                           <div className="relative flex justify-end"> | ||||
|                             <p className="mb-0 font-bold text-sm absolute opacity-40 mt-[-7px] ml-[20px] text-red-600"> | ||||
|                               <del> | ||||
|                                 <PersianNumber | ||||
|  | @ -126,7 +126,7 @@ const BottomSheetSeeOrder = ({ id }) => { | |||
|                         ) : ( | ||||
|                           <div className="flex rtl mt-[3px]"> | ||||
|                             {" "} | ||||
|                             <p className="mb-0 font-bold text-lg"> | ||||
|                             <p className="mb-0 text-lg font-bold"> | ||||
|                               <PersianNumber | ||||
|                                 number={(e?.productFee / 10).toLocaleString()} | ||||
|                               /> | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue