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 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~ | ||||||
|  | @ -61,8 +61,8 @@ const ProductData = ({ params, data }) => { | ||||||
|   return ( |   return ( | ||||||
|     <> |     <> | ||||||
|       <Navbar theme={1} /> |       <Navbar theme={1} /> | ||||||
|       <div className=" py-10"> |       <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 "> |           <div className="lg:col-span-3 "> | ||||||
|             <GalleryBox file={data?.product?.files} /> |             <GalleryBox file={data?.product?.files} /> | ||||||
|           </div> |           </div> | ||||||
|  | @ -78,18 +78,18 @@ const ProductData = ({ params, data }) => { | ||||||
|             </div> |             </div> | ||||||
| 
 | 
 | ||||||
|             <div className="flex my-4"> |             <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> |                 <p className="mb-0 text-sm text-white ">اصالت کالای </p> | ||||||
|               </div> |               </div> | ||||||
| 
 | 
 | ||||||
|               {data?.product?.hasDiscount && ( |               {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> |                   <p className="mb-0 text-sm text-white ">بمب امروز </p> | ||||||
|                 </div> |                 </div> | ||||||
|               )} |               )} | ||||||
| 
 | 
 | ||||||
|               {!data?.product?.warranty == "" && ( |               {!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 "> |                   <p className="mb-0 text-sm text-white "> | ||||||
|                     {product?.warranty} |                     {product?.warranty} | ||||||
|                   </p> |                   </p> | ||||||
|  | @ -108,18 +108,18 @@ const ProductData = ({ params, data }) => { | ||||||
|         </div> */} |         </div> */} | ||||||
| 
 | 
 | ||||||
|             <div> |             <div> | ||||||
|               <div className="text-right  mt-3 flex justify-between"> |               <div className="flex justify-between mt-3 text-right"> | ||||||
|                 <h2 className="mb-0 text-gray-400  text-sm"> |                 <h2 className="mb-0 text-sm text-gray-400"> | ||||||
|                   {data?.product?.summery} |                   {data?.product?.summery} | ||||||
|                 </h2> |                 </h2> | ||||||
|               </div> |               </div> | ||||||
|             </div> |             </div> | ||||||
| 
 | 
 | ||||||
|             <ul className="mt-3 px-3"> |             <ul className="px-3 mt-3"> | ||||||
|               {specificationsHeader.map((e, index) => ( |               {specificationsHeader.map((e, index) => ( | ||||||
|                 <li className=" flex my-2" key={index}> |                 <li className="flex my-2 " key={index}> | ||||||
|                   <div className="w-[10px] h-[10px] relative rounded-full bg-primary-500 mt-1"></div> |                   <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} |                     {e} | ||||||
|                   </p> |                   </p> | ||||||
|                 </li> |                 </li> | ||||||
|  | @ -136,7 +136,7 @@ const ProductData = ({ params, data }) => { | ||||||
|                   {data?.product?.files?.length > 0 ? ( |                   {data?.product?.files?.length > 0 ? ( | ||||||
|                     <Image |                     <Image | ||||||
|                       src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${ |                       src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${ | ||||||
|                         product.files && product.files[0].fileLocation |                         product.files && product.files[0]?.fileLocation | ||||||
|                       }`} |                       }`} | ||||||
|                       width={350} |                       width={350} | ||||||
|                       height={350} |                       height={350} | ||||||
|  | @ -158,7 +158,7 @@ const ProductData = ({ params, data }) => { | ||||||
|                 </div> |                 </div> | ||||||
|               </div> |               </div> | ||||||
|               <div className="text-center"> |               <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}{" "} |                   {data?.product?.persianName}{" "} | ||||||
|                 </p> |                 </p> | ||||||
|               </div> |               </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="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 ? ( |                 {true ? ( | ||||||
|                   <div className="flex justify-end"> |                   <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"> |                     <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]"> |                   <div className="flex rtl mt-[3px]"> | ||||||
|                     {" "} |                     {" "} | ||||||
|                     <p className="mb-0 font-bold text-lg"> |                     <p className="mb-0 text-lg font-bold"> | ||||||
|                       <PersianNumber |                       <PersianNumber | ||||||
|                         number={(data?.cost / 10).toLocaleString()} |                         number={(data?.cost / 10).toLocaleString()} | ||||||
|                       /> |                       /> | ||||||
|  | @ -237,7 +237,7 @@ const ProductData = ({ params, data }) => { | ||||||
| 
 | 
 | ||||||
|           <div className="lg:col-span-6"> |           <div className="lg:col-span-6"> | ||||||
|             <div className="xs:px-[15px] lg:px-[100px]"> |             <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 |                 <div | ||||||
|                   className={` rounded-full xs:p-2 lg:p-3 cursor-pointer tr03 ${ |                   className={` rounded-full xs:p-2 lg:p-3 cursor-pointer tr03 ${ | ||||||
|                     productBarDetail == 0 ? "bg-primary-500 text-gray-100" : "" |                     productBarDetail == 0 ? "bg-primary-500 text-gray-100" : "" | ||||||
|  | @ -283,7 +283,7 @@ const ProductData = ({ params, data }) => { | ||||||
|               </div> |               </div> | ||||||
| 
 | 
 | ||||||
|               <div id="section0"> |               <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> |                 </h3> | ||||||
|                 <div className="min-w-[200px] mt-5 rounded-xl overflow-hidden border rtl "> |                 <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"> |                       <p className="mb-0 text-sm text-gray-600"> | ||||||
|                         {e.title}: |                         {e.title}: | ||||||
|                         <small className="text-sm text-gray-800 font-bold "> |                         <small className="text-sm font-bold text-gray-800 "> | ||||||
|                           {" "} |                           {" "} | ||||||
|                           {e.value}{" "} |                           {e.value}{" "} | ||||||
|                         </small> |                         </small> | ||||||
|  | @ -307,12 +307,12 @@ const ProductData = ({ params, data }) => { | ||||||
|               </div> |               </div> | ||||||
| 
 | 
 | ||||||
|               <div id="section2"> |               <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> |                 </h3> | ||||||
| 
 | 
 | ||||||
|                 {!!data?.product.expertCheck ? ( |                 {!!data?.product.expertCheck ? ( | ||||||
|                   <div className="border p-5  rounded-lg"> |                   <div className="p-5 border rounded-lg"> | ||||||
|                     <div |                     <div | ||||||
|                       dangerouslySetInnerHTML={{ |                       dangerouslySetInnerHTML={{ | ||||||
|                         __html: data?.product.expertCheck, |                         __html: data?.product.expertCheck, | ||||||
|  | @ -320,9 +320,9 @@ const ProductData = ({ params, data }) => { | ||||||
|                     /> |                     /> | ||||||
|                   </div> |                   </div> | ||||||
|                 ) : ( |                 ) : ( | ||||||
|                   <div className="border p-5  rounded-lg"> |                   <div className="p-5 border rounded-lg"> | ||||||
|                     <div className="flex justify-center py-5"> |                     <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> | ||||||
|                     </div> |                     </div> | ||||||
|  | @ -331,12 +331,12 @@ const ProductData = ({ params, data }) => { | ||||||
|               </div> |               </div> | ||||||
| 
 | 
 | ||||||
|               <div id="section3"> |               <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> |                 </h3> | ||||||
|                 <div className="border p-5  rounded-lg"> |                 <div className="p-5 border rounded-lg"> | ||||||
|                   <div className="flex justify-center py-5"> |                   <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> | ||||||
|                   </div> |                   </div> | ||||||
|  | @ -344,9 +344,9 @@ const ProductData = ({ params, data }) => { | ||||||
|               </div> |               </div> | ||||||
|             </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="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 ? ( |                   {product?.hasDiscount ? ( | ||||||
|                     <> |                     <> | ||||||
|                       <p className="mb-0 font-bold text-sm absolute ml-[33px] opacity-30 mt-[-5px] text-red-600"> |                       <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]"> |                     <div className="flex rtl mt-[3px]"> | ||||||
|                       {" "} |                       {" "} | ||||||
|                       <p className="mb-0 font-bold text-lg"> |                       <p className="mb-0 text-lg font-bold"> | ||||||
|                         <PersianNumber |                         <PersianNumber | ||||||
|                           number={(data?.product?.cost / 10).toLocaleString()} |                           number={(data?.product?.cost / 10).toLocaleString()} | ||||||
|                         /> |                         /> | ||||||
|  |  | ||||||
|  | @ -24,15 +24,15 @@ const BlogData = ({ data }) => { | ||||||
|     <div> |     <div> | ||||||
|       <Navbar /> |       <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="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 "> |             <div className="mt-10 "> | ||||||
|               <Image |               <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} |                 width={500} | ||||||
|                 height={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]"> |               <h1 className=" font-bold text-right xs:text-[20px] lg:text-[40px]"> | ||||||
|                 {data.title} |                 {data.title} | ||||||
|  | @ -45,7 +45,7 @@ const BlogData = ({ data }) => { | ||||||
|             </div> |             </div> | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div className="lg:col-span-2 mt-10 rtl "> |           <div className="mt-10 lg:col-span-2 rtl "> | ||||||
|             <SliderProductsOffer data={specialOfferData} /> |             <SliderProductsOffer data={specialOfferData} /> | ||||||
|           </div> |           </div> | ||||||
|         </div> |         </div> | ||||||
|  |  | ||||||
|  | @ -15,10 +15,10 @@ const CardCart = ({ data }) => { | ||||||
|   return ( |   return ( | ||||||
|     <div className="group border-t-[1px] border-gray-100  w-full hover:bg-white z-40 tr03 flex rtl pt-2"> |     <div className="group border-t-[1px] border-gray-100  w-full hover:bg-white z-40 tr03 flex rtl pt-2"> | ||||||
|       <Link href={`/products/${data.id}/${hyphenatedName}`}> |       <Link href={`/products/${data.id}/${hyphenatedName}`}> | ||||||
|         <div className=" h-fit  "> |         <div className=" h-fit"> | ||||||
|           {!!data.mainImage ? ( |           {!!data.mainImage ? ( | ||||||
|             <Image |             <Image | ||||||
|               src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data.mainImage}`} |               src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data?.mainImage}`} | ||||||
|               width={100} |               width={100} | ||||||
|               height={100} |               height={100} | ||||||
|               className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover" |               className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover" | ||||||
|  | @ -35,19 +35,19 @@ const CardCart = ({ data }) => { | ||||||
|           )} |           )} | ||||||
|         </div> |         </div> | ||||||
|       </Link> |       </Link> | ||||||
|       <div className="p-3 text-right w-full"> |       <div className="w-full p-3 text-right"> | ||||||
|         <Link href={`/products/${data.id}/${hyphenatedName}`}> |         <Link href={`/products/${data.id}/${hyphenatedName}`}> | ||||||
|           <p className="mb-0 xs:text-[12px] lg:text-[11px] xl:text-[15px]  max-h-[50px] tr03   "> |           <p className="mb-0 xs:text-[12px] lg:text-[11px] xl:text-[15px]  max-h-[50px] tr03   "> | ||||||
|             {data?.persianName} |             {data?.persianName} | ||||||
|           </p> |           </p> | ||||||
|         </Link> |         </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} /> |           <AddToCart data={data} theme={1} /> | ||||||
| 
 | 
 | ||||||
|           <div className="w-full  text-right rounded-full"> |           <div className="w-full text-right rounded-full"> | ||||||
|             {data?.hasDiscount ? ( |             {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"> |                 <p className="mb-0 font-bold text-sm absolute opacity-40 mt-[-7px] ml-[20px] text-red-600"> | ||||||
|                   <del> |                   <del> | ||||||
|                     <PersianNumber |                     <PersianNumber | ||||||
|  | @ -69,7 +69,7 @@ const CardCart = ({ data }) => { | ||||||
|             ) : ( |             ) : ( | ||||||
|               <div className="flex rtl mt-[3px]"> |               <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()} /> |                   <PersianNumber number={(data?.cost / 10).toLocaleString()} /> | ||||||
|                 </p> |                 </p> | ||||||
|                 <small className="mr-1 mt-[6px]">تومان</small> |                 <small className="mr-1 mt-[6px]">تومان</small> | ||||||
|  |  | ||||||
|  | @ -15,7 +15,7 @@ const CardCategories = ({ data }) => { | ||||||
|   const hyphenatedName = hyphenateString(data.persianName); |   const hyphenatedName = hyphenateString(data.persianName); | ||||||
| 
 | 
 | ||||||
|   return ( |   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 |         <div | ||||||
|           className={` tr03 py-2  overflow-hidden xs:h-[200px] lg:h-[230px]  ${ |           className={` tr03 py-2  overflow-hidden xs:h-[200px] lg:h-[230px]  ${ | ||||||
|  | @ -26,7 +26,7 @@ const CardCategories = ({ data }) => { | ||||||
|         > |         > | ||||||
|           {data.hasDiscount && ( |           {data.hasDiscount && ( | ||||||
|             <div className="absolute m-3 "> |             <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] "> |                 <p className="mb-0 text-[10px] text-white  pt-[3px] "> | ||||||
|                   <PersianNumber |                   <PersianNumber | ||||||
|                     number={data.discountPercent} |                     number={data.discountPercent} | ||||||
|  | @ -38,7 +38,7 @@ const CardCategories = ({ data }) => { | ||||||
|             </div> |             </div> | ||||||
|           )} |           )} | ||||||
|           {data.hasDiscount && ( |           {data.hasDiscount && ( | ||||||
|             <div className=" m-3 "> |             <div className="m-3 "> | ||||||
|               <div className="absolute  mt-[30px] "> |               <div className="absolute  mt-[30px] "> | ||||||
|                 <div className="w-fit  rounded-lg bg-secondary-600 overflow-hidden px-2 !py-0 h-fit "> |                 <div className="w-fit  rounded-lg bg-secondary-600 overflow-hidden px-2 !py-0 h-fit "> | ||||||
|                   <p className="mb-0  text-white text-[10px]  ">اصالت کالا</p> |                   <p className="mb-0  text-white text-[10px]  ">اصالت کالا</p> | ||||||
|  | @ -47,10 +47,10 @@ const CardCategories = ({ data }) => { | ||||||
|             </div> |             </div> | ||||||
|           )} |           )} | ||||||
|           <Link href={`/products/${data.id}/${hyphenatedName}`}> |           <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 ? ( |               {!!data.mainImage ? ( | ||||||
|                 <Image |                 <Image | ||||||
|                   src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data.mainImage}`} |                   src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data?.mainImage}`} | ||||||
|                   width={200} |                   width={200} | ||||||
|                   height={200} |                   height={200} | ||||||
|                   className="xs:!w-[110px] lg:!w-[130px] mx-auto" |                   className="xs:!w-[110px] lg:!w-[130px] mx-auto" | ||||||
|  | @ -81,11 +81,11 @@ const CardCategories = ({ data }) => { | ||||||
|         </div> |         </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"> |         <div className="flex w-full"> | ||||||
|           <AddToCart data={data} theme={1} /> |           <AddToCart data={data} theme={1} /> | ||||||
|         </div> |         </div> | ||||||
|         <div className="w-full  text-right rounded-full"> |         <div className="w-full text-right rounded-full"> | ||||||
|           {data?.hasDiscount ? ( |           {data?.hasDiscount ? ( | ||||||
|             <div className="flex justify-end"> |             <div className="flex justify-end"> | ||||||
|               <p className="mb-0 font-bold text-sm absolute opacity-40 mt-[-7px] ml-[20px] text-red-600"> |               <p className="mb-0 font-bold text-sm absolute opacity-40 mt-[-7px] ml-[20px] text-red-600"> | ||||||
|  | @ -109,7 +109,7 @@ const CardCategories = ({ data }) => { | ||||||
|           ) : ( |           ) : ( | ||||||
|             <div className="flex rtl mt-[3px]"> |             <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()} /> |                 <PersianNumber number={(data?.cost / 10).toLocaleString()} /> | ||||||
|               </p> |               </p> | ||||||
|               <small className="mr-1 mt-[6px]">تومان</small> |               <small className="mr-1 mt-[6px]">تومان</small> | ||||||
|  |  | ||||||
|  | @ -17,10 +17,10 @@ const CardCategoriesMobile = ({ data }) => { | ||||||
|   return ( |   return ( | ||||||
|     <div className="group border-t-[1px] border-gray-200  w-full hover:bg-white z-40 tr03 flex rtl pt-2 px-3"> |     <div className="group border-t-[1px] border-gray-200  w-full hover:bg-white z-40 tr03 flex rtl pt-2 px-3"> | ||||||
|       <Link href={`/products/${data.id}/${hyphenatedName}`}> |       <Link href={`/products/${data.id}/${hyphenatedName}`}> | ||||||
|         <div className=" h-fit  "> |         <div className=" h-fit"> | ||||||
|           {!!data.mainImage ? ( |           {!!data.mainImage ? ( | ||||||
|             <Image |             <Image | ||||||
|               src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data.mainImage}`} |               src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data?.mainImage}`} | ||||||
|               width={200} |               width={200} | ||||||
|               height={200} |               height={200} | ||||||
|               className="xs:!w-[110px] lg:!w-[130px] mx-auto " |               className="xs:!w-[110px] lg:!w-[130px] mx-auto " | ||||||
|  | @ -38,7 +38,7 @@ const CardCategoriesMobile = ({ data }) => { | ||||||
|         </div> |         </div> | ||||||
|       </Link> |       </Link> | ||||||
| 
 | 
 | ||||||
|       <div className="p-3 text-right w-full"> |       <div className="w-full p-3 text-right"> | ||||||
|         {" "} |         {" "} | ||||||
|         <Link href={`/products/${data.id}/${hyphenatedName}`}> |         <Link href={`/products/${data.id}/${hyphenatedName}`}> | ||||||
|           <p className="mb-0 xs:text-[12px] lg:text-[11px] xl:text-[15px]  max-h-[50px] tr03   "> |           <p className="mb-0 xs:text-[12px] lg:text-[11px] xl:text-[15px]  max-h-[50px] tr03   "> | ||||||
|  | @ -50,9 +50,9 @@ const CardCategoriesMobile = ({ data }) => { | ||||||
|             {data.stock} عدد موجود انبار |             {data.stock} عدد موجود انبار | ||||||
|           </p> |           </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} />{" "} |           <AddToCart data={data} theme={1} />{" "} | ||||||
|           <div className="w-full  text-right rounded-lg"> |           <div className="w-full text-right rounded-lg"> | ||||||
|             {data?.hasDiscount ? ( |             {data?.hasDiscount ? ( | ||||||
|               <div className="flex justify-end"> |               <div className="flex justify-end"> | ||||||
|                 <div className="mb-0 font-bold text-sm absolute mt-[-7px] ml-[20px] text-red-600 flex rtl"> |                 <div className="mb-0 font-bold text-sm absolute mt-[-7px] ml-[20px] text-red-600 flex rtl"> | ||||||
|  | @ -84,7 +84,7 @@ const CardCategoriesMobile = ({ data }) => { | ||||||
|             ) : ( |             ) : ( | ||||||
|               <div className="flex rtl mt-[3px]"> |               <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()} /> |                   <PersianNumber number={(data?.cost / 10).toLocaleString()} /> | ||||||
|                 </p> |                 </p> | ||||||
|                 <small className="mr-1 mt-[6px]">تومان</small> |                 <small className="mr-1 mt-[6px]">تومان</small> | ||||||
|  |  | ||||||
|  | @ -30,7 +30,7 @@ const CardNormal = ({ data, priority }) => { | ||||||
|           > |           > | ||||||
|             {data.hasDiscount && ( |             {data.hasDiscount && ( | ||||||
|               <div className="absolute m-3 "> |               <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] "> |                   <p className="mb-0 text-[10px] text-white  pt-[3px] "> | ||||||
|                     <PersianNumber |                     <PersianNumber | ||||||
|                       number={data.discountPercent} |                       number={data.discountPercent} | ||||||
|  | @ -42,10 +42,10 @@ const CardNormal = ({ data, priority }) => { | ||||||
|               </div> |               </div> | ||||||
|             )} |             )} | ||||||
| 
 | 
 | ||||||
|             <div className="w-full h-fit flex justify-center  "> |             <div className="flex justify-center w-full h-fit "> | ||||||
|               {!!data.mainImage ? ( |               {!!data.mainImage ? ( | ||||||
|                 <Image |                 <Image | ||||||
|                   src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data.mainImage}`} |                   src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data?.mainImage}`} | ||||||
|                   width={200} |                   width={200} | ||||||
|                   height={200} |                   height={200} | ||||||
|                   className="xs:!w-[110px] lg:!w-[130px] mx-auto" |                   className="xs:!w-[110px] lg:!w-[130px] mx-auto" | ||||||
|  | @ -76,12 +76,12 @@ const CardNormal = ({ data, priority }) => { | ||||||
|           </div> |           </div> | ||||||
|         </Link> |         </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"> |         <div className="flex w-full"> | ||||||
|           <AddToCart data={data} theme={1} /> |           <AddToCart data={data} theme={1} /> | ||||||
|         </div> |         </div> | ||||||
| 
 | 
 | ||||||
|         <div className="w-full  text-right rounded-full pr-2"> |         <div className="w-full pr-2 text-right rounded-full"> | ||||||
|           {data?.hasDiscount ? ( |           {data?.hasDiscount ? ( | ||||||
|             <> |             <> | ||||||
|               <p className="mb-0 font-bold text-sm absolute right-3 opacity-30 mt-[-5px] text-red-600"> |               <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]"> |             <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()} /> |                 <PersianNumber number={(data?.cost / 10).toLocaleString()} /> | ||||||
|               </p> |               </p> | ||||||
|               <small className="mr-1 mt-[6px]">تومان</small> |               <small className="mr-1 mt-[6px]">تومان</small> | ||||||
|  |  | ||||||
|  | @ -28,7 +28,7 @@ const CardSurprise = ({ data, priority }) => { | ||||||
|           > |           > | ||||||
|             {data.hasDiscount && ( |             {data.hasDiscount && ( | ||||||
|               <div className="absolute m-3 "> |               <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] "> |                   <p className="mb-0 text-[10px] text-white  pt-[3px] "> | ||||||
|                     <PersianNumber |                     <PersianNumber | ||||||
|                       number={data.discountPercent} |                       number={data.discountPercent} | ||||||
|  | @ -40,10 +40,10 @@ const CardSurprise = ({ data, priority }) => { | ||||||
|               </div> |               </div> | ||||||
|             )} |             )} | ||||||
| 
 | 
 | ||||||
|             <div className="w-full h-fit flex justify-center  "> |             <div className="flex justify-center w-full h-fit "> | ||||||
|               {!!data.mainImage ? ( |               {!!data.mainImage ? ( | ||||||
|                 <Image |                 <Image | ||||||
|                   src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data.mainImage}`} |                   src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${data?.mainImage}`} | ||||||
|                   width={100} |                   width={100} | ||||||
|                   height={100} |                   height={100} | ||||||
|                   className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover" |                   className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover" | ||||||
|  | @ -74,12 +74,12 @@ const CardSurprise = ({ data, priority }) => { | ||||||
|           </div> |           </div> | ||||||
|         </Link> |         </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"> |         <div className="flex w-full"> | ||||||
|           <AddToCart data={data} theme={1} /> |           <AddToCart data={data} theme={1} /> | ||||||
|         </div> |         </div> | ||||||
| 
 | 
 | ||||||
|         <div className="w-full  text-right rounded-full pr-2"> |         <div className="w-full pr-2 text-right rounded-full"> | ||||||
|           {data?.hasDiscount ? ( |           {data?.hasDiscount ? ( | ||||||
|             <> |             <> | ||||||
|               <p className="mb-0 font-bold text-sm absolute right-3 opacity-30 mt-[-5px] text-red-600"> |               <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]"> |             <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()} /> |                 <PersianNumber number={(data?.cost / 10).toLocaleString()} /> | ||||||
|               </p> |               </p> | ||||||
|               <small className="mr-1 mt-[6px]">تومان</small> |               <small className="mr-1 mt-[6px]">تومان</small> | ||||||
|  |  | ||||||
|  | @ -62,12 +62,12 @@ const HeroSection = () => { | ||||||
|             <Link |             <Link | ||||||
|               href={slide.url} |               href={slide.url} | ||||||
|               key={slide.id} |               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"> |               <div className="block lg:hidden xs:mx-2 lg:mx-0"> | ||||||
|                 <Image |                 <Image | ||||||
|                   src={slide.imageResponsive} |                   src={slide?.imageResponsive} | ||||||
|                   alt={slide.title} |                   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" |                   className="!w-full xs:h-[200px]  md:h-[400px] lg:h-[400px] xl:h-[650px]  rounded-2xl lg:rounded-none object-cover" | ||||||
|                   layout="responsive" |                   layout="responsive" | ||||||
|                   width={800} |                   width={800} | ||||||
|  | @ -76,8 +76,8 @@ const HeroSection = () => { | ||||||
|               </div> |               </div> | ||||||
|               <div className="hidden lg:block"> |               <div className="hidden lg:block"> | ||||||
|                 <Image |                 <Image | ||||||
|                   src={slide.image} |                   src={slide?.image} | ||||||
|                   alt={slide.title} |                   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 " |                   className="!w-full xs:h-[200px]  md:h-[400px] lg:h-[400px] xl:h-[650px]   rounded-2xl lg:rounded-none object-cover " | ||||||
|                   layout="responsive" |                   layout="responsive" | ||||||
|                   width={800} |                   width={800} | ||||||
|  |  | ||||||
|  | @ -36,7 +36,7 @@ const ResultSearchBar = ({ | ||||||
|             </div> |             </div> | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|           <div className=" overflow-x-auto flex whitespace-nowrap hide-scrollBar "> |           <div className="flex overflow-x-auto  whitespace-nowrap hide-scrollBar"> | ||||||
|             <Link |             <Link | ||||||
|               href={`/categories/fac3ee2d-19dd-4229-a412-28a1d09cc948/شامپو-بدن`} |               href={`/categories/fac3ee2d-19dd-4229-a412-28a1d09cc948/شامپو-بدن`} | ||||||
|             > |             > | ||||||
|  | @ -79,7 +79,7 @@ const ResultSearchBar = ({ | ||||||
|                 href={`/categories/${e.id}/${e.name.split(" ").join("-")}`} |                 href={`/categories/${e.id}/${e.name.split(" ").join("-")}`} | ||||||
|               > |               > | ||||||
|                 <div |                 <div | ||||||
|                   className="flex  " |                   className="flex " | ||||||
|                   onClick={() => CTX.setCloseNavbar(false)} |                   onClick={() => CTX.setCloseNavbar(false)} | ||||||
|                 > |                 > | ||||||
|                   <div className="w-[20px] h-[40px] rounded-2xl bg-gray-200 ml-2 mt-3"> |                   <div className="w-[20px] h-[40px] rounded-2xl bg-gray-200 ml-2 mt-3"> | ||||||
|  | @ -95,7 +95,7 @@ const ResultSearchBar = ({ | ||||||
|               </Link> |               </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) => ( |             {searchResultProductData?.map((e, index) => ( | ||||||
|               <Link |               <Link | ||||||
|  | @ -103,14 +103,14 @@ const ResultSearchBar = ({ | ||||||
|                 href={`/products/${e.id}/${e.persianName.split(" ").join("-")}`} |                 href={`/products/${e.id}/${e.persianName.split(" ").join("-")}`} | ||||||
|               > |               > | ||||||
|                 <div |                 <div | ||||||
|                   className="flex relative   " |                   className="relative flex " | ||||||
|                   onClick={() => CTX.setCloseNavbar(false)} |                   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  "> |                     <div className="w-[50px] h-[50px] rounded-2xl bg-gray-200 ml-2 mt-3 overflow-hidden relative  "> | ||||||
|                       {!!e.mainImage ? ( |                       {!!e.mainImage ? ( | ||||||
|                         <Image |                         <Image | ||||||
|                           src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${e.mainImage}`} |                           src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${e?.mainImage}`} | ||||||
|                           width={200} |                           width={200} | ||||||
|                           height={200} |                           height={200} | ||||||
|                           className="xs:!w-[60px] lg:!w-[60px] mx-auto object-cover " |                           className="xs:!w-[60px] lg:!w-[60px] mx-auto object-cover " | ||||||
|  | @ -127,8 +127,8 @@ const ResultSearchBar = ({ | ||||||
|                       )} |                       )} | ||||||
|                     </div> |                     </div> | ||||||
|                   </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> |                     <p className="mb-0 text-sm ">{e.persianName}</p> | ||||||
|                     <small className="text-[12px] text-gray-500 !text-right"> |                     <small className="text-[12px] text-gray-500 !text-right"> | ||||||
|                       محصول{" "} |                       محصول{" "} | ||||||
|                     </small> |                     </small> | ||||||
|  | @ -139,7 +139,7 @@ const ResultSearchBar = ({ | ||||||
|           </> |           </> | ||||||
|         ) : ( |         ) : ( | ||||||
|           <div className="flex justify-center py-5"> |           <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> | ||||||
|           </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": { |     "node_modules/react-toastify": { | ||||||
|       "version": "9.1.3", |       "version": "9.1.3", | ||||||
|       "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-9.1.3.tgz", |       "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-9.1.3.tgz", | ||||||
|  | @ -5569,6 +5593,20 @@ | ||||||
|         "url": "https://github.com/sponsors/ljharb" |         "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": { |     "node_modules/unbox-primitive": { | ||||||
|       "version": "1.0.2", |       "version": "1.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", |       "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", | ||||||
|  |  | ||||||
|  | @ -12,13 +12,13 @@ const GalleryBox = ({ file }) => { | ||||||
|   const isOpenLightBox = CTX.state.isOpenLightBox; |   const isOpenLightBox = CTX.state.isOpenLightBox; | ||||||
| 
 | 
 | ||||||
|   return ( |   return ( | ||||||
|     <div className=" w-full rounded-3xl"> |     <div className="w-full rounded-3xl"> | ||||||
|       <div className="flex justify-center xs:pb-[10px]  "> |       <div className="flex justify-center xs:pb-[10px]  "> | ||||||
|         <div className=""> |         <div className=""> | ||||||
|           {file?.length > 0 ? ( |           {file?.length > 0 ? ( | ||||||
|             <Image |             <Image | ||||||
|               src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${ |               src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${ | ||||||
|                 file && file[0].fileLocation |                 file && file[0]?.fileLocation | ||||||
|               }`} |               }`} | ||||||
|               width={350} |               width={350} | ||||||
|               height={350} |               height={350} | ||||||
|  | @ -40,16 +40,16 @@ const GalleryBox = ({ file }) => { | ||||||
|         </div> |         </div> | ||||||
|       </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) => ( |         {file?.map((e) => ( | ||||||
|           <div |           <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} |             key={e.id} | ||||||
|             onClick={() => CTX.setIsOpenLightBox(true)} |             onClick={() => CTX.setIsOpenLightBox(true)} | ||||||
|           > |           > | ||||||
|             <div className="xs:w-[50px] lg:w-[50px]"> |             <div className="xs:w-[50px] lg:w-[50px]"> | ||||||
|               <Image |               <Image | ||||||
|                 src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${e.fileLocation}`} |                 src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${e?.fileLocation}`} | ||||||
|                 alt={e.fileName} |                 alt={e.fileName} | ||||||
|                 width={50} |                 width={50} | ||||||
|                 height={50} |                 height={50} | ||||||
|  |  | ||||||
|  | @ -71,7 +71,7 @@ const MovingLogos = () => { | ||||||
|         </div> |         </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%)]"> |         <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 |           <ul | ||||||
|             x-ref="logos" |             x-ref="logos" | ||||||
|  | @ -82,7 +82,7 @@ const MovingLogos = () => { | ||||||
|                 <Image |                 <Image | ||||||
|                   key={e.id} |                   key={e.id} | ||||||
|                   id={`logo-${e.id}`} |                   id={`logo-${e.id}`} | ||||||
|                   src={e.logo} |                   src={e?.logo} | ||||||
|                   alt={`Logo ${e.id}`} |                   alt={`Logo ${e.id}`} | ||||||
|                   className="xs:w-[60px] lg:w-[100px]" |                   className="xs:w-[60px] lg:w-[100px]" | ||||||
|                 /> |                 /> | ||||||
|  |  | ||||||
|  | @ -47,8 +47,8 @@ const BottomSheetSeeOrder = ({ id }) => { | ||||||
|       {/* {bag && bag.length > 0 && ( */} |       {/* {bag && bag.length > 0 && ( */} | ||||||
|       <div className="h-[900px]"> |       <div className="h-[900px]"> | ||||||
|         {bag.orderProducts?.map((e) => ( |         {bag.orderProducts?.map((e) => ( | ||||||
|           <div className="text-center p-3"> |           <div className="p-3 text-center"> | ||||||
|             <p className="mb-0 text-sm  pb-3 rtl"> |             <p className="pb-3 mb-0 text-sm rtl"> | ||||||
|               <PersianNumber |               <PersianNumber | ||||||
|                 number={bag.orderProducts?.length} |                 number={bag.orderProducts?.length} | ||||||
|                 style="text-xl font-bold text-base font-bold mx-2 !text-primary-500" |                 style="text-xl font-bold text-base font-bold mx-2 !text-primary-500" | ||||||
|  | @ -61,10 +61,10 @@ const BottomSheetSeeOrder = ({ id }) => { | ||||||
|               {bag.orderProducts.map((e, index) => ( |               {bag.orderProducts.map((e, index) => ( | ||||||
|                 <div className="group border-t-[1px] border-gray-100  w-full hover:bg-white z-40 tr03 flex rtl pt-2"> |                 <div className="group border-t-[1px] border-gray-100  w-full hover:bg-white z-40 tr03 flex rtl pt-2"> | ||||||
|                   <Link href={`/products/${e.id}/${e.persianName}`}> |                   <Link href={`/products/${e.id}/${e.persianName}`}> | ||||||
|                     <div className=" h-fit  "> |                     <div className=" h-fit"> | ||||||
|                       {!!e.mainImage ? ( |                       {!!e.mainImage ? ( | ||||||
|                         <Image |                         <Image | ||||||
|                           src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${e.mainImage}`} |                           src={`${process.env.NEXT_PUBLIC_STORAGE_URL}/${e?.mainImage}`} | ||||||
|                           width={100} |                           width={100} | ||||||
|                           height={100} |                           height={100} | ||||||
|                           className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover" |                           className="xs:!w-[110px] lg:!w-[130px] mx-auto !object-cover" | ||||||
|  | @ -81,16 +81,16 @@ const BottomSheetSeeOrder = ({ id }) => { | ||||||
|                       )} |                       )} | ||||||
|                     </div> |                     </div> | ||||||
|                   </Link> |                   </Link> | ||||||
|                   <div className="p-3 text-right w-full"> |                   <div className="w-full p-3 text-right"> | ||||||
|                     <Link href={`/products/${e.id}/${e.productName}`}> |                     <Link href={`/products/${e.id}/${e.productName}`}> | ||||||
|                       <p className="mb-0 xs:text-[12px] lg:text-[11px] xl:text-[15px]  max-h-[50px] tr03   "> |                       <p className="mb-0 xs:text-[12px] lg:text-[11px] xl:text-[15px]  max-h-[50px] tr03   "> | ||||||
|                         {e?.productName} |                         {e?.productName} | ||||||
|                       </p> |                       </p> | ||||||
|                     </Link> |                     </Link> | ||||||
| 
 | 
 | ||||||
|                     <div className=" rounded-full flex ltr  w-full"> |                     <div className="flex w-full rounded-full  ltr"> | ||||||
|                       <div className="mt-3"> |                       <div className="mt-3"> | ||||||
|                         <p className="mb-0 rtl text-sm"> |                         <p className="mb-0 text-sm rtl"> | ||||||
|                           <PersianNumber |                           <PersianNumber | ||||||
|                             number={e?.count} |                             number={e?.count} | ||||||
|                             style={"text-sm ml-1"} |                             style={"text-sm ml-1"} | ||||||
|  | @ -98,9 +98,9 @@ const BottomSheetSeeOrder = ({ id }) => { | ||||||
|                           عدد |                           عدد | ||||||
|                         </p> |                         </p> | ||||||
|                       </div> |                       </div> | ||||||
|                       <div className="w-full  text-right rounded-full"> |                       <div className="w-full text-right rounded-full"> | ||||||
|                         {e?.hasDiscount ? ( |                         {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"> |                             <p className="mb-0 font-bold text-sm absolute opacity-40 mt-[-7px] ml-[20px] text-red-600"> | ||||||
|                               <del> |                               <del> | ||||||
|                                 <PersianNumber |                                 <PersianNumber | ||||||
|  | @ -126,7 +126,7 @@ const BottomSheetSeeOrder = ({ id }) => { | ||||||
|                         ) : ( |                         ) : ( | ||||||
|                           <div className="flex rtl mt-[3px]"> |                           <div className="flex rtl mt-[3px]"> | ||||||
|                             {" "} |                             {" "} | ||||||
|                             <p className="mb-0 font-bold text-lg"> |                             <p className="mb-0 text-lg font-bold"> | ||||||
|                               <PersianNumber |                               <PersianNumber | ||||||
|                                 number={(e?.productFee / 10).toLocaleString()} |                                 number={(e?.productFee / 10).toLocaleString()} | ||||||
|                               /> |                               /> | ||||||
|  |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue