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

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

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

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

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

@ -19,7 +19,7 @@ const Season = ({ season }) => {
to={"/videos/0/display"} 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" 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> </Link>
)} )}
{unit.download && ( {unit.download && (
@ -27,7 +27,7 @@ const Season = ({ season }) => {
to="/videos/0/download" 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" 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> </Link>
)} )}
</div> </div>

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

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

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

@ -14,7 +14,7 @@ const VerticalGradeFilter = ({ grades }) => {
}; };
return ( return (
<div className="w-full flex flex-col mt-3"> <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"> <div className="flex flex-row w-full overflow-x-scroll pb-3">
{Object.keys(grades).map((grade, index) => ( {Object.keys(grades).map((grade, index) => (
<Grade grade={grade} key={index} /> <Grade grade={grade} key={index} />

Loading…
Cancel
Save