update 16 files

master
amir hosein gorji 3 years ago
parent 13e4e7144e
commit 7b52626919
  1. 2
      src/components/HomeSearchBox/index.tsx
  2. 39
      src/components/JolPlayer/index.js
  3. 2
      src/redux/reducers/book.tsx
  4. 12
      src/views/Course/Lesson/index.tsx
  5. 16
      src/views/Course/index.tsx
  6. 6
      src/views/Faq/index.tsx
  7. 3
      src/views/Home/AppDownload/index.tsx
  8. 2
      src/views/Home/Blogs/index.tsx
  9. 11
      src/views/Home/Books/Book/index.tsx
  10. 12
      src/views/Home/Courses/index.tsx
  11. 6
      src/views/Home/Footer/index.tsx
  12. 6
      src/views/Subscription/index.tsx
  13. 13
      src/views/VideoTube/Book/index.tsx
  14. 16
      src/views/VideoTube/index.tsx

@ -52,7 +52,7 @@ function HomeSearchBox({
</button> </button>
</form> </form>
<footer className="desktop"> <footer className="desktop">
<strong>جدیدترینها</strong> {/* <strong>جدیدترینها</strong> */}
<ul className="d-flex"> <ul className="d-flex">
{lastItems.map((item: any, i: any) => ( {lastItems.map((item: any, i: any) => (
<li <li

@ -1,28 +1,31 @@
import JoLPlayer from 'jol-player'; import JoLPlayer from "jol-player";
const Video = ({fileIds, posterId}) => { const Video = ({ fileIds, posterId }) => {
return ( return (
<div style={{direction: 'ltr', textAlign: 'left', marginBottom: 10,}}> <div style={{ direction: "ltr", textAlign: "left", marginBottom: 10 }}>
<JoLPlayer <JoLPlayer
option={{ option={{
videoSrc: `https://dnvn.ir/api/v1/file/${fileIds}`, videoSrc: `https://dnvn.ir/api/v1/file/${fileIds}`,
width: '100%', width: "100%",
height: window.innerWidth > 1000 ? 450 : 250, height: window.innerWidth > 1000 ? 450 : 250,
theme : '#4dd35b', theme: "#4dd35b",
language : 'en', language: "en",
isShowMultiple: window.innerWidth > 700, isShowMultiple: window.innerWidth > 700,
hideMouseTime : 10000, hideMouseTime: 10000,
isShowPicture : true, isShowPicture: true,
isShowFullScreen : false, isShowFullScreen: false,
isShowSet : false, isShowSet: false,
isShowScreenshot : window.innerWidth > 700, isShowScreenshot: window.innerWidth > 700,
isShowSet : false, // isShowSet : false,
isShowPauseButton : false, isShowPauseButton: false,
poster:`https://dnvn.ir/api/v1/file/${posterId}`, poster: `https://dnvn.ir/api/v1/file/${posterId}`,
quality: [{ quality: [
name: "SD", url : `https://dnvn.ir/api/v1/file/${fileIds}`, {
}], name: "SD",
isShowWebFullScreen : false, url: `https://dnvn.ir/api/v1/file/${fileIds}`,
},
],
isShowWebFullScreen: false,
}} }}
/> />
</div> </div>

@ -17,7 +17,7 @@ const initialState = {
gradeFilterBooks: null, gradeFilterBooks: null,
sortFilterCourse: null, sortFilterCourse: null,
selectedGrade: null, selectedGrade: null,
selectedSort: "تمامی دورهها", selectedSort: "پربازدید ترین ها",
}; };
const grades = [ const grades = [

@ -21,9 +21,9 @@ function Lesson({
const hour = Math.round(value / 60); const hour = Math.round(value / 60);
return (hour > 0 ? hour + " " + "ساعت" : "") + " " + minute + " " + "دقیقه"; return (hour > 0 ? hour + " " + "ساعت" : "") + " " + minute + " " + "دقیقه";
}; };
const setCategory = (catId : any, videoId: any) => { const setCategory = (catId: any, videoId: any) => {
localStorage.removeItem("bookId"); localStorage.removeItem("bookId");
localStorage.setItem("category", location.getId() + "," + catId + "," + videoId ); localStorage.setItem("category", location.getId() + "," + catId + "," + videoId);
}; };
return ( return (
<div className="lesson d-flex flex-column"> <div className="lesson d-flex flex-column">
@ -77,9 +77,9 @@ function Lesson({
height: height:
lesson[0].categoryId === activeCategory lesson[0].categoryId === activeCategory
? lesson.length * ? lesson.length *
(window.innerWidth > 1007 (window.innerWidth > 1007
? window.innerWidth / 33 + 20 ? window.innerWidth / 33 + 20
: window.innerWidth / 33 + 45) : window.innerWidth / 33 + 45)
: "0px", : "0px",
}} }}
> >
@ -117,7 +117,7 @@ function Lesson({
{/* <li>{data.download ? "دانلود" : <img src={lock} alt="" />}</li> */} {/* <li>{data.download ? "دانلود" : <img src={lock} alt="" />}</li> */}
</ul> </ul>
</li> </li>
{selectedLesson === data.id && <p>سلام</p>} {selectedLesson === data.id && <p style={{ fontSize: 11, padding: "10px 60px 10px 20px" }}>توضیحات مرتبط با این درس</p>}
</div> </div>
))} ))}
</ul> </ul>

@ -59,21 +59,21 @@ function Course({ getInfo, info, categories, loading }: any) {
<p>{info?.text}</p> <p>{info?.text}</p>
<i>{info?.vodTeacher}</i> <i>{info?.vodTeacher}</i>
</div> </div>
<div className="d-flex justify-content-between"> <div className="d-flex " style={{ minWidth: 150 }}>
<div className="course-info-items d-flex align-items-center justify-content-around"> <div className="course-info-items d-flex align-items-center justify-content-around" style={{ minWidth: 150 }}>
<img src={slide} alt="" /> <img src={slide} alt="" />
<div className="d-flex flex-column"> <div className="d-flex flex-column" style={{ minWidth: 100 }}>
<i>{info?.vodDuration} ساعت درس </i> <i>{info?.vodDuration} ساعت درس </i>
<p>در این قسمت توضیحی</p> {/* <p>در این قسمت توضیحی</p> */}
</div> </div>
</div> </div>
<div className="course-info-items d-flex align-items-center justify-content-around"> {/* <div className="course-info-items d-flex align-items-center justify-content-around">
<img src={chat} alt="" /> <img src={chat} alt="" />
<div className="d-flex flex-column"> <div className="d-flex flex-column">
<i>ارتباط با استاد</i> <i>ارتباط با استاد</i>
<p>در این قسمت توضیحی</p> <p>در این قسمت توضیحی</p>
</div> </div>
</div> </div> */}
</div> </div>
</div> </div>
</div> </div>
@ -153,8 +153,8 @@ function Course({ getInfo, info, categories, loading }: any) {
<section className="course__list d-flex flex-column"> <section className="course__list d-flex flex-column">
<header className="course__list--header"> <header className="course__list--header">
<h2>سر فصل دوره</h2> {/* <h2>سر فصل دوره</h2> */}
<p>در این قسمت شاید یک متن جهت زیباسازی قرار بگیرد </p> {/* <p>در این قسمت شاید یک متن جهت زیباسازی قرار بگیرد </p> */}
</header> </header>
{categories?.map((lesson: any, i: any) => ( {categories?.map((lesson: any, i: any) => (
<Lesson key={i} lesson={lesson} /> <Lesson key={i} lesson={lesson} />

@ -27,15 +27,15 @@ function Faq({
<main className="d-flex flex-column"> <main className="d-flex flex-column">
<header className="d-flex flex-column"> <header className="d-flex flex-column">
<h1>پرسش های متداول</h1> <h1>پرسش های متداول</h1>
<p> {/* <p>
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با
استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در
ستون و سطرآنچنان که لازم است و برای شرایط{" "} ستون و سطرآنچنان که لازم است و برای شرایط{" "}
</p> </p> */}
<div className="d-flex"> <div className="d-flex">
<input <input
type="search" type="search"
placeholder="سوال خود را جستجو کنید" placeholder="پرسش خود را جستجو کنید"
onChange={(e) => searchFaq(e.target.value)} onChange={(e) => searchFaq(e.target.value)}
/> />
<button> <button>

@ -7,8 +7,7 @@ export default function AppDownload() {
return ( return (
<section className="app-download desktop justify-content-between align-items-center"> <section className="app-download desktop justify-content-between align-items-center">
<h1> <h1>
اینجا جایگاه یک <br /> متن ویژه است که باید در این <br /> قسمت قرار دریافت اپلیکیشن دانوین
بگیرد.
</h1> </h1>
<figure className="app-download__figure d-flex flex-column align-items-center"> <figure className="app-download__figure d-flex flex-column align-items-center">
<div className="app-download__figure--screen"></div> <div className="app-download__figure--screen"></div>

@ -26,7 +26,7 @@ function Blogs(props: any) {
return ( return (
<section className="home-blogs d-flex flex-column"> <section className="home-blogs d-flex flex-column">
<header className="d-flex flex-column"> <header className="d-flex flex-column">
<h1>پیشنهادی برای شما</h1> <h1>پیشنهادهای داغ برای شما</h1>
</header> </header>
{window.innerWidth > 1007 ? ( {window.innerWidth > 1007 ? (
<Carousell <Carousell

@ -1,16 +1,23 @@
import React from "react"; import React from "react";
import {Link} from 'react-router-dom'; import { Link } from 'react-router-dom';
import "./index.scss"; import "./index.scss";
export default function Book(props: any) { export default function Book(props: any) {
const { data } = props; const { data } = props;
const desc: any = {
"ریاضی": 'ریاضی از ریاضت میاد ولی دانوین آسون و لذت بخشش کرده',
'علوم تجربی': "علوم تجربی تو دانوین واقعا تجربی و محسوس میشه",
'زیست': "زیست را در دانوین باید زیست",
'شیمی': 'شیمی اینجا می فهمه کیمیا یعنی چی',
'فیزیک': "با دانوین فیزیکو با یه لنز جدید ببنید"
}
return ( return (
<Link to={`/courses/${data.id}`} className="home-books-book d-flex flex-column" draggable={'false'}> <Link to={`/courses/${data.id}`} className="home-books-book d-flex flex-column" draggable={'false'}>
<img src={`https://dnvn.ir/api/v1/file/${data.fileIds}`} alt={data.name} draggable={'false'} /> <img src={`https://dnvn.ir/api/v1/file/${data.fileIds}`} alt={data.name} draggable={'false'} />
<footer className="d-flex"> <footer className="d-flex">
<div className="home-books-book__info d-flex flex-column"> <div className="home-books-book__info d-flex flex-column">
<h2>{data.name}</h2> <h2>{data.name}</h2>
<p>{'لورم ایپسوم و اینجور چیزا'}</p> <p>{desc[data.name] || ""}</p>
</div> </div>
</footer> </footer>
</Link> </Link>

@ -1,12 +1,12 @@
import React, {useEffect} from "react"; import React, { useEffect } from "react";
import Carousel from "react-elastic-carousel"; import Carousel from "react-elastic-carousel";
import Course from "./Course/index"; import Course from "./Course/index";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import ExpandMoreRoundedIcon from "@mui/icons-material/ExpandMoreRounded"; import ExpandMoreRoundedIcon from "@mui/icons-material/ExpandMoreRounded";
import {connect} from 'react-redux'; import { connect } from 'react-redux';
import "./index.scss"; import "./index.scss";
function Courses({number, courses, selectedSort} : any) { function Courses({ number, courses, selectedSort }: any) {
const slideNumberHandler = () => { const slideNumberHandler = () => {
if (window.innerWidth >= 1440) { if (window.innerWidth >= 1440) {
return 5; return 5;
@ -23,7 +23,7 @@ function Courses({number, courses, selectedSort} : any) {
<header className="d-flex justify-content-between"> <header className="d-flex justify-content-between">
<div className="d-flex flex-column"> <div className="d-flex flex-column">
<h1>{selectedSort}</h1> <h1>{selectedSort}</h1>
<span>در این قسمت شاید یک متن جهت زیباسازی قرار بگیرد.</span> {/* <span>در این قسمت شاید یک متن جهت زیباسازی قرار بگیرد.</span> */}
</div> </div>
<Link to="/"> <Link to="/">
بیشتر بیشتر
@ -60,6 +60,6 @@ function Courses({number, courses, selectedSort} : any) {
); );
} }
export default connect((state : any) => ({ export default connect((state: any) => ({
selectedSort : state.book.selectedSort, selectedSort: state.book.selectedSort,
}))(Courses) }))(Courses)

@ -1,4 +1,4 @@
import React, {useEffect} from "react"; import React, { useEffect } from "react";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import "./index.scss"; import "./index.scss";
import scroll from "../../../util/scroll"; import scroll from "../../../util/scroll";
@ -8,7 +8,7 @@ export default function Footer(props: any) {
const { links } = props; const { links } = props;
useEffect(() => { useEffect(() => {
scroll.goToTop() scroll.goToTop()
},[]); }, []);
return ( return (
<footer className="footer desktop"> <footer className="footer desktop">
<div className="footer__container d-flex justify-content-between align-items-center"> <div className="footer__container d-flex justify-content-between align-items-center">
@ -25,7 +25,7 @@ export default function Footer(props: any) {
) )
)} )}
</ul> </ul>
<p>تمامی حقوق این سایت متلعق به دانوین میباشد 1400</p> <p>تمامی حقوق این سایت متعلق به دانوین میباشد 1400</p>
</div> </div>
</footer> </footer>
); );

@ -20,16 +20,14 @@ function Subscription({ listVOD, getList, loading, selectedVOD, payment, verify
<main className={"d-flex flex-column" + " " + (loading && "blur")}> <main className={"d-flex flex-column" + " " + (loading && "blur")}>
<h1>خرید اشتراک دانوین</h1> <h1>خرید اشتراک دانوین</h1>
<p> <p>
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده اینجا هم برای هر کتاب امکان خرید اشتراک جداگانه هست و هم اشتراک های مدت دار. با خرید اشتراک های مدت دار دانوین می تونید در هزینه هاتون صرفه جویی کنید.
از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و
سطرآنچنان که لازم است و برای شرایط{" "}
</p> </p>
{listVOD?.map((subscribe: any, i: any) => ( {listVOD?.map((subscribe: any, i: any) => (
<SubscribeRadio data={subscribe} key={i} /> <SubscribeRadio data={subscribe} key={i} />
))} ))}
<DiscountCode /> <DiscountCode />
<div className="d-flex justify-content-end py-4"> <div className="d-flex justify-content-end py-4">
<button className="submit submit-large" onClick={() => payment({productId : selectedVOD.id }) }>تایید و پرداخت</button> <button className="submit submit-large" onClick={() => payment({ productId: selectedVOD.id })}>تایید و پرداخت</button>
</div> </div>
</main> </main>
<Footer /> <Footer />

@ -1,13 +1,20 @@
import React from 'react'; import React from 'react';
import {Link} from 'react-router-dom'; import { Link } from 'react-router-dom';
import './index.scss'; import './index.scss';
export default function Book({data} : any) { export default function Book({ data }: any) {
const desc: any = {
"ریاضی": 'ریاضی از ریاضت میاد ولی دانوین آسون و لذت بخشش کرده',
'علوم': "علوم تجربی تو دانوین واقعا تجربی و محسوس میشه",
'زیست شناسی': "زیست را در دانوین باید زیست",
'شیمی': 'شیمی اینجا می فهمه کیمیا یعنی چی',
'فیزیک': "با دانوین فیزیکو با یه لنز جدید ببنید"
}
return ( return (
<Link to={'/courses/' + data.id} className="video-tube-suggest d-flex flex-column"> <Link to={'/courses/' + data.id} className="video-tube-suggest d-flex flex-column">
<img src={`https://dnvn.ir/api/v1/file/${data.fileIds}`} alt="" /> <img src={`https://dnvn.ir/api/v1/file/${data.fileIds}`} alt="" />
<h4>{data.name}</h4> <h4>{data.name}</h4>
<p>{'لورم ایپسوم و اینجور چیزا'}</p> <p>{desc[data.name] || ""}</p>
</Link> </Link>
) )
} }

@ -60,7 +60,7 @@ function VodTube({
fileIds={selectedVideo?.fileIds} fileIds={selectedVideo?.fileIds}
posterId={selectedVideo?.posterId} posterId={selectedVideo?.posterId}
/> />
<span className="desktop">درس دوم / بیست و یکم</span> {/* <span className="desktop">درس دوم / بیست و یکم</span> */}
<h1 className="desktop">{selectedVideo?.name}</h1> <h1 className="desktop">{selectedVideo?.name}</h1>
{/* <p className="desktop">{selectedVideo.text}</p> */} {/* <p className="desktop">{selectedVideo.text}</p> */}
</section> </section>
@ -87,7 +87,7 @@ function VodTube({
{localStorage.getItem("category")?.split(",")[1] || {localStorage.getItem("category")?.split(",")[1] ||
"لیست فیلمها"} "لیست فیلمها"}
</h2> </h2>
<p>در این قسمت توضیحی کوتاه قرار می گیرد</p> {/* <p>در این قسمت توضیحی کوتاه قرار می گیرد</p> */}
</div> </div>
<img src={listIcon} alt="" /> <img src={listIcon} alt="" />
</header> </header>
@ -98,11 +98,11 @@ function VodTube({
> >
{localStorage.getItem("bookId") {localStorage.getItem("bookId")
? categories?.map((video: any, i: any) => ( ? categories?.map((video: any, i: any) => (
<LessonPlayList category={video} key={i} /> <LessonPlayList category={video} key={i} />
)) ))
: info?.vods.map((video: any, i: any) => ( : info?.vods.map((video: any, i: any) => (
<LessonPlayList category={video} key={i} /> <LessonPlayList category={video} key={i} />
))} ))}
</div> </div>
</section> </section>
{info?.attachments.length > 0 && ( {info?.attachments.length > 0 && (
@ -110,7 +110,7 @@ function VodTube({
<header className="d-flex align-items-center"> <header className="d-flex align-items-center">
<div className="d-flex flex-column"> <div className="d-flex flex-column">
<h2>فایل پیوست تمارین این فصل</h2> <h2>فایل پیوست تمارین این فصل</h2>
<p>در این قسمت توضیحی کوتاه قرار می گیرد</p> {/* <p>در این قسمت توضیحی کوتاه قرار می گیرد</p> */}
</div> </div>
</header> </header>
<div className="video-tube__sidebar--attachments___list d-flex flex-column"> <div className="video-tube__sidebar--attachments___list d-flex flex-column">
@ -126,7 +126,7 @@ function VodTube({
<span>تا 50% تخفیف </span> <span>تا 50% تخفیف </span>
</header> </header>
<div className="video-tube__sidebar--suggests___list d-flex justify-content-between align-items-center"> <div className="video-tube__sidebar--suggests___list d-flex justify-content-between align-items-center">
{info?.related.slice(0,3).map((item: any, i: any) => ( {info?.related.slice(0, 3).map((item: any, i: any) => (
<Book data={item} key={i} /> <Book data={item} key={i} />
))} ))}
</div> </div>

Loading…
Cancel
Save