diff --git a/package.json b/package.json index 7b1098c..20eb59a 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "@emotion/react": "^11.4.1", "@mui/icons-material": "^5.0.0", "@mui/material": "^5.0.0", + "@mui/styles": "^5.0.1", "@pmmmwh/react-refresh-webpack-plugin": "0.4.3", "@svgr/webpack": "5.5.0", "@testing-library/jest-dom": "^5.11.4", diff --git a/src/App.css b/src/App.css index 59057dd..19197c3 100644 --- a/src/App.css +++ b/src/App.css @@ -34,6 +34,7 @@ color: white; } + .App-link { color: #61dafb; } diff --git a/src/assets/icons/list.png b/src/assets/icons/list.png new file mode 100644 index 0000000..cb95ce1 Binary files /dev/null and b/src/assets/icons/list.png differ diff --git a/src/assets/images/user1.png b/src/assets/images/user1.png new file mode 100644 index 0000000..ca073f0 Binary files /dev/null and b/src/assets/images/user1.png differ diff --git a/src/assets/images/user2.png b/src/assets/images/user2.png new file mode 100644 index 0000000..7db78e9 Binary files /dev/null and b/src/assets/images/user2.png differ diff --git a/src/assets/images/user3.png b/src/assets/images/user3.png new file mode 100644 index 0000000..269b43e Binary files /dev/null and b/src/assets/images/user3.png differ diff --git a/src/assets/videos/sea.mp4 b/src/assets/videos/sea.mp4 new file mode 100644 index 0000000..1485507 Binary files /dev/null and b/src/assets/videos/sea.mp4 differ diff --git a/src/components/CustomCheckbox/index.tsx b/src/components/CustomCheckbox/index.tsx new file mode 100644 index 0000000..553b401 --- /dev/null +++ b/src/components/CustomCheckbox/index.tsx @@ -0,0 +1,11 @@ +import React from "react"; +import Checkbox from "@mui/material/Checkbox"; + +export default function CustomCheckbox({ icon, checkedIcon }: any) { + return ( + <> + + + + ); +} diff --git a/src/components/Input/index.js b/src/components/Input/index.js index 3bd279d..3c732f8 100644 --- a/src/components/Input/index.js +++ b/src/components/Input/index.js @@ -1,6 +1,6 @@ import React from "react"; import TextField from "@mui/material/TextField"; -import { makeStyles } from "@mui/material/styles"; +import { makeStyles } from "@mui/styles"; export default function FormPropsTextFields(props) { const useStyles = makeStyles((theme) => ({ diff --git a/src/custom.scss b/src/custom.scss index a28bd14..c085c94 100644 --- a/src/custom.scss +++ b/src/custom.scss @@ -60,4 +60,38 @@ .rec-slider-container { border-radius: 10px; +} + +.main{ + background: linear-gradient( + 90deg, + hsla(0, 0%, 31%, 1) 0%, + hsla(0, 0%, 0%, 1) 100% + ); + background: -moz-linear-gradient( + 90deg, + hsla(0, 0%, 31%, 1) 0%, + hsla(0, 0%, 0%, 1) 100% + ); + background: -webkit-linear-gradient( + 90deg, + hsla(0, 0%, 31%, 1) 0%, + hsla(0, 0%, 0%, 1) 100% + ); + width: 100%; + overflow-x: hidden; + padding-top: 60px; + min-height: 100vh; + position: relative; + padding-bottom: 100px; + font-family: numeralLight; + .footer { + position: absolute; + bottom: 0px; + left: 0px; + } + main { + width: 100%; + margin: 0px auto; + } } \ No newline at end of file diff --git a/src/redux/reducers/book.tsx b/src/redux/reducers/book.tsx index 153ee3c..03fa243 100644 --- a/src/redux/reducers/book.tsx +++ b/src/redux/reducers/book.tsx @@ -1,5 +1,8 @@ import { toast } from "react-toastify"; import { BookAction } from "../actions-type"; +import sea from "../../assets/videos/sea.mp4"; +import user1 from "../../assets/images/user1.png"; +import user2 from "../../assets/images/user2.png"; const initialState = { loading: false, @@ -189,6 +192,106 @@ const initialState = { ], }, ], + mockVideoList: { + id: 0, + name: "لیست بخش درس علوم زیستی در دریا", + lessons: [ + { + id: 0, + name: "درس اول", + files: [ + { + id : 0, + name: "ماهی های پرورشی و فواید آن", + src: sea, + text: "لورم اپیوسرم یک متن آزمایشی است که برای", + }, + { + id : 1, + name: "ماهی های پرورشی و فواید آن", + src: sea, + text: "لورم اپیوسرم یک متن آزمایشی است که برای", + }, + { + id : 2, + name: "ماهی های پرورشی و فواید آن", + src: sea, + text: "لورم اپیوسرم یک متن آزمایشی است که برای", + }, + ], + }, + { + id: 1, + name: "درس دوم", + files: [ + { + name: "ماهی های پرورشی و فواید آن", + src: sea, + text: "لورم اپیوسرم یک متن آزمایشی است که برای", + }, + { + name: "ماهی های پرورشی و فواید آن", + src: sea, + text: "لورم اپیوسرم یک متن آزمایشی است که برای", + }, + { + name: "ماهی های پرورشی و فواید آن", + src: sea, + text: "لورم اپیوسرم یک متن آزمایشی است که برای", + }, + ], + }, + ], + attachments : [ + { + name : "تمرین بخش اول از درس دوم", + file : '' + }, + { + name : "تمرین بخش اول از درس دوم", + file : '' + }, + { + name : "تمرین بخش اول از درس دوم", + file : '' + }, + { + name : "تمرین بخش اول از درس دوم", + file : '' + }, + { + name : "تمرین بخش اول از درس دوم", + file : '' + }, + { + name : "تمرین بخش اول از درس دوم", + file : '' + }, + ] + }, + selectedVideo : { + name: "ماهی های پرورشی و فواید آن", + src: sea, + text: "لورم اپیوسرم یک متن آزمایشی است که برای", + }, + comments : [ + { + id : 0, + imageUrl : user1, + name : 'حمد عظیمی', + text : 'متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد', + repliedTo : null, + date : '1400/07/29', + }, + { + id : 1, + imageUrl : user2, + name : 'حمد عظیمی', + text : 'متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد', + repliedTo : null, + date : '1400/07/29', + }, + ] }; const grades = [ diff --git a/src/redux/reducers/public.tsx b/src/redux/reducers/public.tsx index b5ec61e..c2eedb7 100644 --- a/src/redux/reducers/public.tsx +++ b/src/redux/reducers/public.tsx @@ -11,6 +11,43 @@ const initialState = { arList: [], blogList: [], blog: null, + mockSubscribes : [ + { + id : 0, + name : 'اشتراک 3 ماهه', + finalPrice : '19.000', + offPercent : 0, + off : 0, + }, + { + id : 1, + name : 'اشتراک 3 ماهه', + finalPrice : '19.000', + offPercent : 0, + off : 0, + }, + { + id : 2, + name : 'اشتراک 6 ماهه', + finalPrice : '30.000', + offPercent : 30, + off : '10.000', + }, + { + id : 3, + name : 'اشتراک 6 ماهه', + finalPrice : '40.000', + offPercent : 0, + off : 0, + } + ], + selectedSubscripe: { + id : 0, + name : 'اشتراک 3 ماهه', + finalPrice : '19.000', + offPercent : 0, + off : 0, + }, }; const grades = [ diff --git a/src/router.tsx b/src/router.tsx index 4b7d5b9..9e7ba76 100644 --- a/src/router.tsx +++ b/src/router.tsx @@ -9,6 +9,9 @@ import { import Auth from './views/Auth/index'; import Home from "./views/Home/index"; import Course from "./views/Course/index"; +import VideoTube from "./views/VideoTube/index"; +import Subscription from "./views/Subscription/index"; +import Contact from "./views/Contact/index"; function router(){ return ( @@ -29,6 +32,15 @@ function router(){ + + + + + + + + + ); diff --git a/src/types/images.d.ts b/src/types/images.d.ts index a189d4d..2d09f6f 100644 --- a/src/types/images.d.ts +++ b/src/types/images.d.ts @@ -1,4 +1,5 @@ declare module '*.jpg'; declare module '*.jpeg'; declare module '*.png'; -declare module '*.svg'; \ No newline at end of file +declare module '*.svg'; +declare module '*.mp4'; \ No newline at end of file diff --git a/src/views/Auth/Login/index.tsx b/src/views/Auth/Login/index.tsx index fe8a339..41b1dd2 100644 --- a/src/views/Auth/Login/index.tsx +++ b/src/views/Auth/Login/index.tsx @@ -2,7 +2,7 @@ import React, { useState } from "react"; import Navbar from "../../../components/Navbar/index"; import Footer from "../../../views/Home/Footer/index"; import Input from "../../../components/Input/index"; -import Checkbox from "@mui/material/Checkbox"; +import CustomCheckbox from '../../../components/CustomCheckbox/index'; import CheckBoxOutlineBlankTwoToneIcon from "@mui/icons-material/CheckBoxOutlineBlankTwoTone"; import CheckBoxRoundedIcon from "@mui/icons-material/CheckBoxRounded"; @@ -57,7 +57,7 @@ function Login(props: any) { />
- (undefined); + + const onChange = (e: any) => { + setFormData({ ...formData, [e.target.name]: e.target.value }); + }; + + return ( +
+ +
+
+

تماس با ما

+
+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+
+ ); +} diff --git a/src/views/Course/index.scss b/src/views/Course/index.scss index e495c4a..11b5c3b 100644 --- a/src/views/Course/index.scss +++ b/src/views/Course/index.scss @@ -1,286 +1,263 @@ .course{ - background: hsla(0, 0%, 31%, 1); - background: linear-gradient( - 90deg, - hsla(0, 0%, 31%, 1) 0%, - hsla(0, 0%, 0%, 1) 100% - ); - background: -moz-linear-gradient( - 90deg, - hsla(0, 0%, 31%, 1) 0%, - hsla(0, 0%, 0%, 1) 100% - ); - background: -webkit-linear-gradient( - 90deg, - hsla(0, 0%, 31%, 1) 0%, - hsla(0, 0%, 0%, 1) 100% - ); - width: 100%; - overflow-x: hidden; - padding-top: 60px; - min-height: 100vh; - font-family: numeralLight; - &-container{ - margin: 0px auto; - width: 100%; + main{ header{ padding: 70px 0px 45px; border-bottom:3px solid #4a4a4a; } + } + &__info{ + &--image{ + margin-left: 20px; + img{ + border-top-left-radius: 9px; + border-top-right-radius: 9px; + border-bottom-right-radius: 9px; + border-bottom-left-radius: 24px; + } + } + &--description{ + padding-top: 5px; + a{ + color: #424242; + } + li{ + color: #424242; + } + h1{ + color: white; + margin-top: 12px; + } + p{ + color: #D3D3D3; + margin-top: 25px; + } + .course-info-items{ + padding: 10px; + background-color: #08793d23; + border-radius: 10px; + i{ + color: #4DD35B; + } + } + } + } + &__options{ + &--rate{ + border: 2px solid #707070; + box-shadow: 0px 0px 39px #f7ff01b3; + border-radius: 15px; + padding-top: 20px; + color: white; + } + &--button{ + background-color: #313131; + border: 1px solid #707070; + color: white; + padding: 8px; + text-align: center; + margin-top: 15px; + &:hover{ + color: white; + } + } + } + &__list{ + margin-bottom: 30px; + border-radius: 10px; + + header{ + padding: 40px 0px 20px; + border: 0px; + h2{ + color: #4DD35B; + } + p{ + color: #707070; + } + } + } +} + + +@media screen and (min-width: 1441px) { + .course{ + main { + max-width: 1350px; + } &__info{ + flex: 4; &--image{ - margin-left: 20px; img{ - border-top-left-radius: 9px; - border-top-right-radius: 9px; - border-bottom-right-radius: 9px; - border-bottom-left-radius: 24px; + width: 320px; + height: 420px; } } &--description{ - padding-top: 5px; a{ - color: #424242; + font-size: 17px; } li{ - color: #424242; + font-size: 17px; } h1{ - color: white; - margin-top: 12px; + font-size: 50px; } p{ - color: #D3D3D3; - margin-top: 25px; + font-size: 16px; } .course-info-items{ - padding: 10px; - background-color: #08793d23; - border-radius: 10px; + width: 220px; + margin-top: 20px; + & img{ + margin-left: 5px; + width : 50px; + } i{ - color: #4DD35B; + font-size: 18px; + font-family: numeralLight; + } + p{ + font-size: 14px; + margin: 0px; } } } } &__options{ + flex: 2; &--rate{ - border: 2px solid #707070; - box-shadow: 0px 0px 39px #f7ff01b3; - border-radius: 15px; - padding-top: 20px; - color: white; - } - &--button{ - background-color: #313131; - border: 1px solid #707070; - color: white; - padding: 8px; - text-align: center; - margin-top: 15px; - &:hover{ - color: white; + width: 315px; + height: 200px; + margin-bottom: 30px; + &__number{ + div{ + font-size: 20px; + } + i{ + font-size: 15px; + } + b{ + font-size: 50px; + } + span{ + font-size: 18px; + transform: translateY(4px); + margin-right: 10px; + } + } + h2{ + margin-top: 15px; + font-size: 20px; } + } + &--button{ + width: 315px; + height: 66px; + padding: 0px 30px; + font-size: 18px; + border-radius: 40px; + } } &__list{ - margin-bottom: 30px; - border-radius: 10px; - header{ - padding: 40px 0px 20px; - border: 0px; h2{ - color: #4DD35B; + font-size: 25px; } p{ - color: #707070; + font-size: 13px; } } } } } - -@media screen and (min-width: 1441px) { +@media screen and (min-width: 1008px) and (max-width: 1440px) { .course{ - &-container { - max-width: 1350px; - &__info{ - flex: 4; - &--image{ - img{ - width: 320px; - height: 420px; - } - } - &--description{ - a{ - font-size: 17px; - } - li{ - font-size: 17px; - } - h1{ - font-size: 50px; - } - p{ - font-size: 16px; - } - .course-info-items{ - width: 220px; - margin-top: 20px; - & img{ - margin-left: 5px; - width : 50px; - } - i{ - font-size: 18px; - font-family: numeralLight; - } - p{ - font-size: 14px; - margin: 0px; - } - } + main { + max-width: 1250px; + padding: 0px 10px; + } + &__info{ + flex: 3; + &--image{ + img{ + width: 250px; + height: 380px; } } - &__options{ - flex: 2; - &--rate{ - width: 315px; - height: 200px; - margin-bottom: 30px; - &__number{ - div{ - font-size: 20px; - } - i{ - font-size: 15px; - } - b{ - font-size: 50px; - } - span{ - font-size: 18px; - transform: translateY(4px); - margin-right: 10px; - } - } - h2{ - margin-top: 15px; - font-size: 20px; - } - + &--description{ + a{ + font-size: calc(100vw / 90); } - &--button{ - width: 315px; - height: 66px; - padding: 0px 30px; - font-size: 18px; - border-radius: 40px; - } - } - &__list{ - header{ - h2{ - font-size: 25px; - } - p{ - font-size: 13px; - } + li{ + font-size: calc(100vw / 90); } - } - } - } -} - -@media screen and (min-width: 1008px) and (max-width: 1440px) { - .course{ - &-container { - max-width: 1250px; - padding: 0px 10px; - &__info{ - flex: 3; - &--image{ - img{ - width: 250px; - height: 380px; - } + h1{ + font-size: calc(100vw / 40); } - &--description{ - a{ - font-size: calc(100vw / 90); - } - li{ - font-size: calc(100vw / 90); + p{ + font-size: calc(100vw / 80);; + } + .course-info-items{ + width: 45%; + margin-top: 20px; + & img{ + margin-left: 10px; + width : 45px; } - h1{ - font-size: calc(100vw / 40); + i{ + font-size: calc(100vw / 95); + font-family: numeralLight; } p{ - font-size: calc(100vw / 80);; - } - .course-info-items{ - width: 45%; - margin-top: 20px; - & img{ - margin-left: 10px; - width : 45px; - } - i{ - font-size: calc(100vw / 95); - font-family: numeralLight; - } - p{ - font-size: calc(100vw / 100); - margin: 0px; - } + font-size: calc(100vw / 100); + margin: 0px; } } } - &__options{ - flex: 2; - &--rate{ - width: 70%; - height: 160px; - margin-bottom: 30px; - &__number{ - i{ - font-size: calc(100vw / 100); - } - b{ - font-size: calc(100vw / 50); - } - span{ - font-size: 18px; - transform: translateY(4px); - margin-right: 10px; - } + } + &__options{ + flex: 2; + &--rate{ + width: 70%; + height: 160px; + margin-bottom: 30px; + &__number{ + i{ + font-size: calc(100vw / 100); } - h2{ - margin-top: 5px; - font-size: calc(100vw / 80); + b{ + font-size: calc(100vw / 50); } - + span{ + font-size: 18px; + transform: translateY(4px); + margin-right: 10px; + } + } + h2{ + margin-top: 5px; + font-size: calc(100vw / 80); } - &--button{ - width: 70%; - height: 59px; - padding: 0px 30px; - font-size: calc(100vw / 75); - border-radius: 40px; - } + } - &__list{ - header{ - h2{ - font-size: calc(100vw / 65); - } - p{ - font-size: calc(100vw / 100); - } + &--button{ + width: 70%; + height: 59px; + padding: 0px 30px; + font-size: calc(100vw / 75); + border-radius: 40px; + } + } + &__list{ + header{ + h2{ + font-size: calc(100vw / 65); + } + p{ + font-size: calc(100vw / 100); } } } diff --git a/src/views/Course/index.tsx b/src/views/Course/index.tsx index 547a2c3..1444017 100644 --- a/src/views/Course/index.tsx +++ b/src/views/Course/index.tsx @@ -44,15 +44,15 @@ function Course({ lessons }: any) { ); }; return ( -
+
-
+
-
-
+
+
-
+

{course?.title?.slice(0, 25)}

@@ -84,9 +84,9 @@ function Course({ lessons }: any) {
-
-
-
+
+
+
10 /2 @@ -96,20 +96,20 @@ function Course({ lessons }: any) {

میانگین رای کاربران

- مشاهده پیشنمایش دوره
-
+

سر فصل دوره

در این قسمت شاید یک متن جهت زیباسازی قرار بگیرد

@@ -118,7 +118,7 @@ function Course({ lessons }: any) { ))}
-
+
); diff --git a/src/views/Home/index.scss b/src/views/Home/index.scss index e0cf3ea..f8b4fb8 100644 --- a/src/views/Home/index.scss +++ b/src/views/Home/index.scss @@ -1,23 +1,5 @@ .home { - background: hsla(0, 0%, 31%, 1); - background: linear-gradient( - 90deg, - hsla(0, 0%, 31%, 1) 0%, - hsla(0, 0%, 0%, 1) 100% - ); - background: -moz-linear-gradient( - 90deg, - hsla(0, 0%, 31%, 1) 0%, - hsla(0, 0%, 0%, 1) 100% - ); - background: -webkit-linear-gradient( - 90deg, - hsla(0, 0%, 31%, 1) 0%, - hsla(0, 0%, 0%, 1) 100% - ); - width: 100%; - overflow-x: hidden; - padding-top: 60px; + } @media screen and (min-width: 641px) and (max-width: 1007px){ diff --git a/src/views/Home/index.tsx b/src/views/Home/index.tsx index cbbeac9..0a561be 100644 --- a/src/views/Home/index.tsx +++ b/src/views/Home/index.tsx @@ -33,7 +33,7 @@ export default function Home(props: any) { return ( <>
diff --git a/src/views/Subscription/DiscountCode/index.scss b/src/views/Subscription/DiscountCode/index.scss new file mode 100644 index 0000000..60e6b6d --- /dev/null +++ b/src/views/Subscription/DiscountCode/index.scss @@ -0,0 +1,66 @@ +.discount-code{ + width: 100%; + border: 1px solid #707070; + border-radius: 10px; + padding: 20px 30px; + h3{ + color: white; + margin: 0px; + } + input{ + background-color : rgba(255, 255, 255, 0.06); + border-top-right-radius: 10px; + border-bottom-right-radius: 10px; + border: 0px; + color: white; + &::placeholder{ + color: white; + } + } + button{ + background-color : #9CDF52; + border-top-left-radius: 10px; + color: white; + border-bottom-left-radius: 10px; + } +} + +@media screen and (min-width : 1441px) { + .discount-code{ + h3{ + font-size: 20px; + } + input{ + padding: 20px 10px 20px 0px; + width: 200px; + font-size: 14px; + &::placeholder{ + font-size: 10px; + } + } + button{ + padding: 0px 20px; + font-size: 14px; + } + } +} + +@media screen and (min-width: 1008px) and (max-width: 1440px) { + .discount-code{ + h3{ + font-size: calc(100vw / 72); + } + input{ + padding: 20px 10px 20px 0px; + width: 200px; + font-size: calc(100vw / 90); + &::placeholder{ + font-size: calc(100vw / 110); + } + } + button{ + padding: 0px 20px; + font-size: calc(100vw / 90); + } + } +} \ No newline at end of file diff --git a/src/views/Subscription/DiscountCode/index.tsx b/src/views/Subscription/DiscountCode/index.tsx new file mode 100644 index 0000000..d231c67 --- /dev/null +++ b/src/views/Subscription/DiscountCode/index.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import './index.scss'; + +export default function DiscountCode() { + return ( +
+

کارت هدیه یا کد تخفیف دارید؟

+
+
+ + +
+
+
+ ) +} diff --git a/src/views/Subscription/SubscribeRadio/index.scss b/src/views/Subscription/SubscribeRadio/index.scss new file mode 100644 index 0000000..b73faad --- /dev/null +++ b/src/views/Subscription/SubscribeRadio/index.scss @@ -0,0 +1,133 @@ +.subscribe-radio{ + width: 100%; + border : 1px solid #DFDFDF; + margin-bottom: 15px; + border-radius: 10px; + &__name{ + padding: 12px; + border-top-right-radius: 10px; + border-bottom-right-radius: 10px; + } + &__factor{ + border-top-left-radius: 10px; + border-bottom-left-radius: 10px; + background-color: rgba(255, 255, 255, 0.18); + padding : 10px 20px 10px 0px; + + strong, b{ + color: white; + } + &--tag{ + background-color: yellow; + padding: 4px 20px; + border-radius: 30px; + width: fit-content; + } + &--finalPrice{ + i{ + color: white; + margin-right: 10px; + } + } + &--off{ + color: #707070; + b{ + color: #707070; + position: relative; + span{ + position: absolute; + width: 100%; + height: 2px; + top: 50%; + left: 0px; + transform: translateY(-50%) rotate(-15deg); + background-color: rgb(211, 211, 211); + opacity: 0.5; + } + } + i{ + margin-right: 10px; + } + } + } + &-active{ + box-shadow: 0px 0px 6px #4DD35B; + background-color: #4DD35B; + border: none; + .subscribe-radio__name{ + } + .subscribe-radio__factor{ + background-color: rgba(255, 255, 255, 0.18); + } + } +} + +@media screen and (min-width: 1441px) { + .subscribe-radio{ + height: 120px; + &__name{ + flex: 7; + h2{ + font-size: 20px; + margin-right: 40px; + } + } + &__factor{ + flex: 3; + &--tag{ + font-size: 14px; + } + &--off{ + b{ + font-size: 20px; + } + i{ + font-size: 12px; + } + } + &--finalPrice{ + i{ + font-size: 12px; + } + strong{ + font-size: 26px; + } + } + } + } +} + +@media screen and (min-width: 1008px) and (max-width: 1440px) { + .subscribe-radio{ + min-height: 100px; + &__name{ + flex: 7; + h2{ + font-size: calc(100vw / 70); + margin-right: 40px; + } + } + &__factor{ + flex: 3; + &--tag{ + font-size: calc(100vw / 110); + } + &--off{ + b{ + font-size: calc(100vw / 80); + } + i{ + font-size: calc(100vw / 115); + } + } + &--finalPrice{ + i{ + font-size: calc(100vw / 115); + } + strong{ + font-size: calc(100vw / 64); + } + } + } + } +} \ No newline at end of file diff --git a/src/views/Subscription/SubscribeRadio/index.tsx b/src/views/Subscription/SubscribeRadio/index.tsx new file mode 100644 index 0000000..c05aa92 --- /dev/null +++ b/src/views/Subscription/SubscribeRadio/index.tsx @@ -0,0 +1,56 @@ +import React from "react"; +import "./index.scss"; +import CustomCheckbox from "../../../components/CustomCheckbox"; +import CircleRoundedIcon from "@mui/icons-material/CircleRounded"; +import RadioButtonUncheckedRoundedIcon from "@mui/icons-material/RadioButtonUncheckedRounded"; +import { connect } from "react-redux"; + +function SubscribeRadio({ data, selectedSubscripe }: any) { + return ( +
+
+ + } + checkedIcon={ + + } + /> +

{data.name}

+
+
+ {data.offPercent !== 0 && ( +
+ {data.off} + تومان +
+ )} +
+ {data.finalPrice} + تومان +
+ {data.offPercent !== 0 && ( + {`${data.offPercent}% تخفیف ویژه`} + )} +
+
+ ); +} + +export default connect( + (state: any) => ({ + selectedSubscripe: state.publicApi.selectedSubscripe, + }), + {} +)(SubscribeRadio); diff --git a/src/views/Subscription/index.scss b/src/views/Subscription/index.scss new file mode 100644 index 0000000..780444b --- /dev/null +++ b/src/views/Subscription/index.scss @@ -0,0 +1,41 @@ +.subscription { + main { + h1,h2{ + color: white; + } + p{ + color : #969696; + margin : 5px 0px 35px; + } + } +} + +@media screen and (min-width : 1441px) { + .subscription{ + main{ + margin-top: 50px; + max-width: 700px; + h1{ + font-size: 44px; + } + p{ + font-size: 21px; + } + } + } +} + +@media screen and (min-width : 1008px) and (max-width : 1440px) { + .subscription{ + main{ + margin-top: 50px; + max-width: 700px; + h1{ + font-size: calc(100vw / 30); + } + p{ + font-size: calc(100vw / 70); + } + } + } +} \ No newline at end of file diff --git a/src/views/Subscription/index.tsx b/src/views/Subscription/index.tsx new file mode 100644 index 0000000..e10cc80 --- /dev/null +++ b/src/views/Subscription/index.tsx @@ -0,0 +1,34 @@ +import React from "react"; +import Navbar from "../../components/Navbar/index"; +import Footer from "../../views/Home/Footer/index"; +import SubscribeRadio from "./SubscribeRadio/index"; +import DiscountCode from "./DiscountCode/index"; +import {connect} from 'react-redux'; +import "./index.scss"; + +function Subscription({subscribes} : any) { + return ( +
+ +
+

خرید اشتراک دانوین

+

+ لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده + از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و + سطرآنچنان که لازم است و برای شرایط{" "} +

+ { + subscribes?.map((subscribe : any , i : any) => ( + + )) + } + +
+
+
+ ); +} + +export default connect((state : any) => ({ + subscribes : state.publicApi.mockSubscribes, +}), {})(Subscription); diff --git a/src/views/VideoTube/AddComment/index.tsx b/src/views/VideoTube/AddComment/index.tsx new file mode 100644 index 0000000..bc7fc72 --- /dev/null +++ b/src/views/VideoTube/AddComment/index.tsx @@ -0,0 +1,17 @@ +import React from "react"; +import Avatar from "@mui/material/Avatar"; +import user3 from "../../../assets/images/user3.png"; + +export default function AddComment() { + return ( + <> + +
+