master
Amir Hossein Khademi 2024-08-23 12:46:00 +03:30
parent a1aaf8040a
commit 03e98063c0
16 changed files with 4026 additions and 114 deletions

15
.vscode/launch.json vendored
View File

@ -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}"
}
]
}

View File

@ -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~

View File

@ -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()}
/>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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}

View File

@ -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>

38
package-lock.json generated
View File

@ -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",

View File

@ -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}

View File

@ -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]"
/>

View File

@ -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()}
/>

3889
pnpm-lock.yaml 100644

File diff suppressed because it is too large Load Diff