update 10 files

temp
mahdi 2 years ago
parent ccc4bb4495
commit 0490a59e63
  1. 8
      src/views/Dashboard/layouts/Main/Addresses/index.js
  2. 24
      src/views/ShoppingCart/index.js
  3. 32
      src/views/Video/components/Desktop/Table.js
  4. 19
      src/views/Video/components/Season.js
  5. 50
      src/views/Video/index.js
  6. 4
      src/views/VideoDisplay/components/Season.js
  7. 14
      src/views/VideoDisplay/index.js
  8. 8
      src/views/Videos/components/MostViewedVideo.js
  9. 6
      src/views/Videos/components/NewestVideo.js
  10. 2
      src/views/Videos/components/VerticalGradeFilter.js

@ -166,20 +166,20 @@ const Location = ({
<div className={`flex w-full ${active ? "" : "flex-row"}`}>
<div className="flex flex-col flex-1 mb-4">
<span className="mb-2 leading-6">
{`{window.t("آدرس")}` + " " + address.address}
{window.t("آدرس") + " " + address.address}
</span>
<span className="mb-2 leading-6">
{`{window.t("نام:")}` +
{window.t("نام") +
" " +
address.firstName +
" " +
address.lastName}
</span>
<span className="mb-2 leading-6">
{`{window.t("کد پستی:")}` + " " + address.postalCode}
{window.t("کد پستی:") + " " + address.postalCode}
</span>
<span className="mb-2 leading-6">
{`{window.t("شماره تماس:")}` + " " + address.cellphone}
{window.t("شماره تماس:") + " " + address.cellphone}
</span>
</div>
</div>

@ -41,7 +41,7 @@ function ShoppingCart({
const [phase, setPhase] = useState("products");
const navigation = useNavigate();
useEffect(() => {
console.log("gl1")
console.log("gl1");
if (isLogin) getList();
getFactorInfo({ userId: user?.id });
setHeaderOptions(headerOptions);
@ -311,12 +311,12 @@ function ShoppingCart({
</div>
<div className="flex flex-row justify-between items-center w-full py-4 border-t border-b border-grayDB border-solid">
<strong className="font-semibold text-tiny text-blue5F dark:text-white">
جمع کل سبد خرید
{window.t("جمع کل سبد خرید")}
</strong>
<p className="font-medium text-greenBA text-lg dark:text-white">
{separate(productsLength ? factorInfo?.payPrice : "")}
<span className="font-medium text-greenBA text-sm mr-2">
تومان
{window.t("تومان")}
</span>
</p>
</div>
@ -325,19 +325,21 @@ function ShoppingCart({
className="w-full rounded-md flex flex-row justify-center items-center py-2.5 px-3 mt-5 mb-4"
style={{ backgroundColor: "#DEFFF188" }}
>
<img src={alertIcon} className="w-5 ml-2" />
<img src={alertIcon} className="w-5 ml-2" alt="" />
<p className="text-xs text-green71 dark:text-white text-justify font-medium">
هزینه ارسال کالا پس از تعیین محل آدرس مشخص میشود
{window.t(
"هزینه ارسال کالا پس از تعیین محل آدرس مشخص میشود"
)}
</p>
</div>
)}
{null && phase === "deliveryForm" && (
<div className="flex flex-col mt-10">
<strong className="text-tiny text-blue52 mb-5 font-medium">
انتخاب شیوه پرداخت
{window.t("انتخاب شیوه پرداخت")}
</strong>
<Button
title="از طریق درگاه پرداخت"
title={window.t("از طریق درگاه پرداخت")}
backgroundColor="bg-transparent"
border={{ color: "#77777755", width: "1px" }}
width="100%"
@ -346,7 +348,7 @@ function ShoppingCart({
/>
<br />
<Button
title="پرداخت در محل"
title={window.t("پرداخت در محل")}
backgroundColor="bg-transparent"
border={{ color: "#77777755", width: "1px" }}
width="100%"
@ -362,11 +364,11 @@ function ShoppingCart({
<Button
title={
phase === "deliveryForm"
? "پرداخت"
? window.t("پرداخت")
: userProducts.filter((object) => object.productType === 2)
.length > 0
? "ادامه فرایند خرید"
: "پرداخت"
? window.t("ادامه فرایند خرید")
: window.t("پرداخت")
}
backgroundColor="bg-blueC0"
border={{ color: "#196EC055", width: "0px" }}

@ -1,14 +1,14 @@
import React from "react";
const persian = {
weight: "وزن",
pageNumber: "تعداد صفحات",
pageType: "نوع کاغذ",
bookNumber: "شماره شابک",
publisher: "انتشارات",
author: "نویسنده",
bookType: "قطع",
publishedYear: "سال انتشار",
weight: window.t("وزن"),
pageNumber: window.t("تعداد صفحات"),
pageType: window.t("نوع کاغذ"),
bookNumber: window.t("شماره شابک"),
publisher: window.t("انتشارات"),
author: window.t("نویسنده"),
bookType: window.t("قطع"),
publishedYear: window.t("سال انتشار"),
};
const Table = ({ specifications }) => {
@ -38,13 +38,13 @@ export default Table;
Table.defaultProps = {
specifications: {
weight: "1 کیلوگرم",
pageNumber: "400 صفحه",
pageType: "گلاسه",
bookNumber: "124900985340561870112312499",
publisher: "رزمندگان",
author: "یک نویسنده گمنام",
bookType: "خشتی",
publishedYear: "1399",
weight: window.t("1 کیلوگرم"),
pageNumber: window.t("400 صفحه"),
pageType: window.t("گلاسه"),
bookNumber: window.t("124900985340561870112312499"),
publisher: window.t("رزمندگان"),
author: window.t("یک نویسنده گمنام"),
bookType: window.t("خشتی"),
publishedYear: window.t("1399"),
},
};

@ -22,7 +22,6 @@ const Season = ({
"season",
location.getId() + "," + seasonId + "," + videoId
);
};
const duration = (value) => {
@ -47,7 +46,9 @@ const Season = ({
}}
>
<div className="flex items-center justify-between w-full">
<h5 className="text-tiny font-bold text-green7B dark:text-white">{unit.name}</h5>
<h5 className="text-tiny font-bold text-green7B dark:text-white">
{unit.name}
</h5>
<div className="flex items-center gap-4">
<Link
to={
@ -62,7 +63,9 @@ const Season = ({
} py-2 w-20 text-center text-tiny rounded-sm shadow-md`}
onClick={() => setCategory(season[0].categoryId, unit.name)}
>
{Number(index) === 0 ? "تماشا" : "قفل"}
{Number(index) === 0
? `${window.t("تماشا")}`
: `${window.t("قفل")}`}
</Link>
</div>
</div>
@ -95,7 +98,9 @@ const Season = ({
} py-2.5 w-24 text-center text-tiny rounded-sm shadow-md`}
onClick={() => setCategory(season[0].categoryId, unit.name)}
>
{Number(index) === 0 ? "تماشا" : "قفل"}
{Number(index) === 0
? `${window.t("تماشا")}`
: `${window.t("قفل")}`}
</Link>
</div>
</div>
@ -127,14 +132,12 @@ const Season = ({
className={`w-4 transform transition-all ${
season[0].categoryId === activeSeason ? "rotate-180" : ""
}`}
/>
/>
</button>
<ul
className={`w-full flex flex-col px-2 ${
season[0].categoryId === activeSeason
? ""
: ""
season[0].categoryId === activeSeason ? "" : ""
} transform origin-bottom duration-1000 transition-all overflow-hidden`}
style={{
maxHeight: season[0].categoryId === activeSeason ? 1000 : 0,

@ -66,21 +66,23 @@ function Video({
/>
<div className="flex flex-col py-1 pr-3">
<strong className="text-blue5F leading-7 text-lg dark:text-white font-black">
{"دوره ویدئویی" + " " + book?.product[2]?.name}
{window.t("دوره ویدئویی") + " " + book?.product[2]?.name}
</strong>
<span className="text-blueC0 text-base dark:text-greenBA font-semibold mt-3 mb-5">
{"پایه" + " " + (grades[book?.gradeId] || "پایه دوازدهم")}
{window.t("پایه") +
" " +
(grades[book?.gradeId] || window.t("پایه دوازدهم"))}
</span>
</div>
</div>
<div className="flex flex-col flex-1 justify-between my-5">
<Button
title={
"خرید با قیمت" +
window.t("خرید با قیمت") +
" " +
separate(book?.product[2]?.price) +
" " +
"تومان"
window.t("تومان")
}
backgroundColor={isDark ? "bg-blueC0" : "bg-blueC0"}
border={{
@ -97,7 +99,7 @@ function Video({
userId: userId,
count: 1,
})
: toast.info("ابتدا وارد حساب کاربری خود شوید.")
: toast.info(window.t("ابتدا وارد حساب کاربری خود شوید."))
}
/>
</div>
@ -119,7 +121,7 @@ function Video({
<ProductTab
tabs={[
{
title: "سر فصل ها",
title: window.t("سر فصل ها"),
shown: true,
components: (
<div className="flex flex-col w-full mt-5 gap-5">
@ -132,7 +134,7 @@ function Video({
),
},
{
title: "مشخصات",
title: window.t("مشخصات"),
shown: book?.product.filter(
(product) => product?.productType === 4
)?.properties?.length,
@ -147,20 +149,20 @@ function Video({
),
},
{
title: "نقد و بررسی",
title: window.t("نقد و بررسی"),
shown: true,
components: (
<div className="bg-gray-100 rounded-md mt-4 w-full flex justify-center items-center h-40 text-green4F text-tiny">
این بخش فعلا قابل دسترسی نیست.
{window.t("این بخش فعلا قابل دسترسی نیست.")}
</div>
),
},
{
title: "پرسش و پاسخ",
title: window.t("پرسش و پاسخ"),
shown: true,
components: (
<div className="bg-gray-100 rounded-md mt-4 w-full flex justify-center items-center h-40 text-green4F text-tiny">
این بخش فعلا قابل دسترسی نیست.
{window.t("این بخش فعلا قابل دسترسی نیست.")}
</div>
),
},
@ -171,24 +173,28 @@ function Video({
<div className="w-3/12 flex flex-col" style={{ minWidth: 350 }}>
<div className="w-full flex flex-col pr-2 py-2 border-0">
<h1 className="text-blue5F leading-7 mb-3 font-semibold text-xl dark:text-white">
{"دوره ویدئویی" + " " + book?.product[2]?.name}
{window.t("دوره ویدئویی") + " " + book?.product[2]?.name}
</h1>
<div className="text-blueC0 text-tiny dark:text-greenBA font-bold">
{"پایه" + " " + grades[book?.gradeId]}
{window.t("پایه") + " " + grades[book?.gradeId]}
</div>
<div className="flex justify-end">
<div className="p-2">
<StarRating value={book?.product[2]?.rate || 4} />
</div>
<div className="p-2 border-0 border-solid border-r border-gray-100 text-sm text-gray-400">
بیش از {book?.product[2]?.suggestedCounter} نفر امتیاز داده اند
{window.t("بیش از")}
{book?.product[2]?.suggestedCounter}
{window.t("نفر امتیاز داده اند")}
</div>
</div>
</div>
<div className="bg-grayF9 w-full flex flex-col rounded-md divide-y divide-solid divide-gray-200 mb-4 px-4">
<div className="flex flex-row items-center w-full gap-5 my-5">
<img src={tickIcon} alt="" className="w-9" />
<p className="text-blue52 text-sm font-light">{`توصیه خرید توسط ${book?.product[2]?.suggestedCounter} نفر`}</p>
<p className="text-blue52 text-sm font-light">{`${window.t(
"توصیه خرید توسط"
)} ${book?.product[2]?.suggestedCounter} ${window.t("نفر")}`}</p>
</div>
<div className="flex flex-row items-center py-3">
<img
@ -200,7 +206,7 @@ function Video({
onClick={() => addToFavorite({ [bookmark]: location.getId() })}
/>
<span className="mr-3 text-sm">
اضافه کردن به لیست علاقه مندی ها
{window.t("اضافه کردن به لیست علاقه مندی ها")}
</span>
</div>
<div className="flex flex-col w-full py-4 px-4">
@ -208,17 +214,19 @@ function Video({
<strong className="text-blueC0 text-5xl">
{separate(book?.product[2]?.price)}
</strong>
<span className="text-sm text-gray-500">تومان</span>
<span className="text-sm text-gray-500">
{window.t("تومان")}
</span>
</div>
{book?.product[2]?.fakePrice ? (
<p className="text-gray-500 text-xs text-center mt-2 mb-4">
با خرید این کالا 540.000 صرفه جویی کنید
{window.t("با خرید این کالا 540.000 صرفه جویی کنید")}
</p>
) : (
<div className="mb-4"></div>
)}
<Button
title="اضافه کردن به سبد خرید"
title={window.t("اضافه کردن به سبد خرید")}
backgroundColor={isDark ? "bg-blueC0" : "bg-blueC0"}
border={{
color: isDark ? "#ffffff55" : "#196EC055",
@ -234,7 +242,7 @@ function Video({
userId: userId,
count: 1,
})
: toast.info("ابتدا وارد حساب کاربری خود شوید.")
: toast.info(window.t("ابتدا وارد حساب کاربری خود شوید."))
}
/>
</div>
@ -243,7 +251,7 @@ function Video({
to={"/products/" + location.getId()}
className="bg-blueC0 text-green7B bg-opacity-5 font-semibold text-tiny rounded-md border border-solid border-blueC0 w-full py-4 text-center flex flex-row items-center justify-center"
>
مشاهده کتاب این محصول
{window.t("مشاهده کتاب این محصول")}
<img src={arrow} alt="" className="mr-2 transform rotate-90 w-5" />
</Link>
</div>

@ -19,7 +19,7 @@ const Season = ({ season }) => {
to={"/videos/0/display"}
className="flex flex-1 flex-row items-center py-2.5 px-2 border-l border-solid border-blueFE dark:border-opacity-60 justify-center text-sm text-blueC0 dark:text-white"
>
نمایش
{window.t("نمایش")}
</Link>
)}
{unit.download && (
@ -27,7 +27,7 @@ const Season = ({ season }) => {
to="/videos/0/download"
className="flex flex-1 flex-row items-center py-2.5 px-2 justify-center text-sm text-blueC0 dark:text-white"
>
دانلود
{window.t("دانلود")}
</Link>
)}
</div>

@ -49,17 +49,9 @@ function VideoDisplay({
{selectedVideo?.name}
</h1>
<p className="m-4 text-gray70 leading-7 font-normal text-tiny">
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با
استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در
ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز،
و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای
زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و
متخصصان را می طلبد، تا با نرم افزارها شناخت بیشتری را برای طراحان
رایانه ای علی الخصوص طراحان خلاقی، و فرهنگ پیشرو در زبان فارسی ایجاد
کرد، در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه
راهکارها، و شرایط سخت تایپ به پایان رسد و زمان مورد نیاز شامل
حروفچینی دستاوردهای اصلی، و جوابگوی سوالات پیوسته اهل دنیای موجود
طراحی اساسا مورد استفاده قرار گیرد.
{window.t(
"استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله درلورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با"
)}
</p>
</div>
<PlayList playList={book?.vods} />

@ -7,7 +7,7 @@ import posterImage from "../../../assets/images/poster.svg";
function MostViewedVideo({ videos, grades }) {
return (
<div className="w-full flex flex-col">
<Header title="پربازدیدترین" link="/videos/video" />
<Header title={window.t("پربازدیدترین")} link="/videos/video" />
<div className="w-full flex flex-row overflow-x-scroll pb-4 no-scrollbar">
{videos.map((video, index) => (
<Video key={index} video={video} grades={grades} />
@ -42,14 +42,14 @@ const Video = ({ video, grades }) => {
/>
</div>
<strong className="text-base mt-0 text-blue5F dark:text-white font-bold">
{"دوره ویدئویی" + " " + video.name}
{window.t("دوره ویدئویی") + " " + video.name}
</strong>
<div className="w-full flex flex-row justify-between items-center mt-3">
<span className="text-green7B text-sm dark:text-white">
{"پایه" + " " + grades[video.gradeId]}
{window.t("پایه") + " " + grades[video.gradeId]}
</span>
<strong className="text-black text-tiny dark:text-greenBA">
{separate(video?.product[2]?.price) + " " + "تومان"}
{separate(video?.product[2]?.price) + " " + window.t("تومان")}
</strong>
</div>
</Link>

@ -8,7 +8,7 @@ import Header from "../../../components/Header";
const NewestVideo = ({ videos, grades }) => {
return (
<div className="w-full flex flex-col">
<Header title="جدیدترین دورهها" link="/videos/video" />
<Header title={window.t("جدیدترین دورهها")} link="/videos/video" />
<div className="w-full flex flex-row flex-wrap justify-between overflow-x-scroll mt-3">
{videos.slice(0, 4).map((video, index) => (
<Video key={index} video={video} grades={grades} />
@ -40,10 +40,10 @@ const Video = ({ video, grades }) => {
</strong>
<div className="flex items-center justify-between w-full mt-2">
<span className="text-green7B text-sm dark:text-greenBA">
{"پایه" + " " + grades[video.gradeId]}
{window.t("پایه") + " " + grades[video.gradeId]}
</span>
<strong className="text-black text-tiny dark:text-greenBA">
{separate(video?.product[2]?.price) + " " + "تومان"}
{separate(video?.product[2]?.price) + " " + window.t("تومان")}
</strong>
</div>
</Link>

@ -14,7 +14,7 @@ const VerticalGradeFilter = ({ grades }) => {
};
return (
<div className="w-full flex flex-col mt-3">
<Header title={"پایه تحصیلی"} link="videos/video" />
<Header title={window.t("پایه تحصیلی")} link="videos/video" />
<div className="flex flex-row w-full overflow-x-scroll pb-3">
{Object.keys(grades).map((grade, index) => (
<Grade grade={grade} key={index} />

Loading…
Cancel
Save