From 4eb651a15963ef66b1c955c944375d38cf5302be Mon Sep 17 00:00:00 2001 From: Reza_ashrafi Date: Mon, 11 Oct 2021 16:48:30 +0330 Subject: [PATCH] reza added some change now --- src/App.css | 2 + src/assets/icons/logo.png | Bin 0 -> 24016 bytes src/components/GradeFilter/index.scss | 2 +- src/components/HomeSearchBox/index.scss | 10 ++- src/components/Menu/index.js | 67 +++++++++++++++ src/components/Navbar/index.scss | 28 +++--- src/components/Navbar/index.tsx | 64 ++++++++++++-- src/components/PrivateRouter/index.js | 6 +- src/custom.scss | 31 ++++++- src/index.css | 5 ++ src/redux/actions-type/faq.tsx | 33 ++++--- src/redux/actions-type/user.tsx | 63 ++++++++------ src/redux/actions/faq.tsx | 2 + src/redux/actions/public.tsx | 27 +++--- src/redux/actions/user.tsx | 27 +++--- src/redux/reducers/faq.tsx | 31 ++++++- src/redux/reducers/user.tsx | 10 +-- src/router.js | 5 +- src/views/Auth/Login/index.scss | 55 +++--------- src/views/Auth/Login/index.tsx | 8 +- src/views/Auth/SignUp/index.scss | 51 +++-------- src/views/Course/index.tsx | 2 +- src/views/Faq/index.scss | 27 +++--- src/views/Faq/index.tsx | 81 +++++++++++++----- src/views/Home/Courses/index.scss | 1 + .../Subscription/DiscountCode/index.scss | 16 ++-- src/views/Subscription/index.scss | 2 +- src/views/VideoTube/AddComment/index.tsx | 2 +- src/views/VideoTube/Attachments/index.scss | 4 +- src/views/VideoTube/Book/index.scss | 4 +- src/views/VideoTube/Comment/index.scss | 5 +- src/views/VideoTube/index.scss | 55 +++++------- src/views/VideoTube/index.tsx | 2 +- 33 files changed, 451 insertions(+), 277 deletions(-) create mode 100644 src/assets/icons/logo.png create mode 100644 src/components/Menu/index.js diff --git a/src/App.css b/src/App.css index 19197c3..4bee1f4 100644 --- a/src/App.css +++ b/src/App.css @@ -3,6 +3,8 @@ } + + .App-logo { height: 40vmin; pointer-events: none; diff --git a/src/assets/icons/logo.png b/src/assets/icons/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..42ea219702de0d9e51ad8e34cfa46e566f4c379f GIT binary patch literal 24016 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 literal 0 HcmV?d00001 diff --git a/src/components/GradeFilter/index.scss b/src/components/GradeFilter/index.scss index a5a7815..e9ffdc5 100644 --- a/src/components/GradeFilter/index.scss +++ b/src/components/GradeFilter/index.scss @@ -56,7 +56,7 @@ font-size: calc(100vw / 120); } li{ - font-size: calc(100vw / 90); + font-size: calc(100vw / 110); background-color: rgba(255, 255, 255, 0) ; z-index: 100; padding: 10px 0px !important; diff --git a/src/components/HomeSearchBox/index.scss b/src/components/HomeSearchBox/index.scss index 0dc3ef0..019bcce 100644 --- a/src/components/HomeSearchBox/index.scss +++ b/src/components/HomeSearchBox/index.scss @@ -37,18 +37,22 @@ &__voice { display: none; } + form { width: 1000px; input { - font-size: 20px; + font-size: 16px; padding-right: 20px; &::placeholder { - font-size: 20px; + font-size: 16px; } } button { - width: 80px; + width: 70px; height: 60px; + img{ + width: 35px; + } } } ul { diff --git a/src/components/Menu/index.js b/src/components/Menu/index.js new file mode 100644 index 0000000..96d4bf7 --- /dev/null +++ b/src/components/Menu/index.js @@ -0,0 +1,67 @@ +import * as React from 'react'; +import { styled, alpha } from '@mui/material/styles'; +import Button from '@mui/material/Button'; +import Menu from '@mui/material/Menu'; +import MenuItem from '@mui/material/MenuItem'; +import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; + +const StyledMenu = styled((props) => ( + +))(({ theme }) => ({ +})); + +export default function CustomizedMenus({items}) { + const [anchorEl, setAnchorEl] = React.useState(null); + const open = Boolean(anchorEl); + const handleClick = (event) => { + setAnchorEl(event.currentTarget); + }; + const handleClose = () => { + setAnchorEl(null); + }; + + return ( +
+ + + { + items.map((item, i) => ( + + {item.name} + + )) + } + +
+ ); +} \ No newline at end of file diff --git a/src/components/Navbar/index.scss b/src/components/Navbar/index.scss index a2f0857..e98e0a3 100644 --- a/src/components/Navbar/index.scss +++ b/src/components/Navbar/index.scss @@ -33,6 +33,11 @@ &___login{ background-color: #81C342; } + &___logo{ + img{ + height: 50px; + } + } } @media screen and (min-width: 1441px){ @@ -42,14 +47,7 @@ &--links{ li{ padding: 0px 20px; - font-size: 18px; - span{ - width: 2px; - height: 15px; - background-color: rgb(197, 197, 197); - margin-right: 15px; - // transform: translateY(-1px); - } + font-size: 14px; } } &--buttons{ @@ -62,11 +60,17 @@ } } &___logo{ - padding-right: 0px !important; + // padding-right: 0px !important; + span{ + width: 2px; + height: 15px; + background-color: rgb(197, 197, 197); + margin-right: 15px; + transform: translateY(-1px); + } } - &___share{ - margin-left: 20px; - font-size: 14px; + &___login{ + margin-right: 20px; } } diff --git a/src/components/Navbar/index.tsx b/src/components/Navbar/index.tsx index 1d82a69..9b0fed9 100644 --- a/src/components/Navbar/index.tsx +++ b/src/components/Navbar/index.tsx @@ -7,6 +7,8 @@ import NavbarDrawer from "../NavbarDrawer/NavbarDrawer"; import clsx from "clsx"; import proxy from "../../redux/proxy"; import { makeStyles } from "@mui/styles"; +import Menu from '../Menu/index'; +import logoIcon from '../../assets/icons/logo.png'; const useStyles = makeStyles({ list: { @@ -66,14 +68,11 @@ export default function Navbar(props: any) {
  • - لوگو +
  • - دروس -
  • -
  • - دوره‌ها +
خرید اشتراک {!userStatus && ( -
  • +
  • ورود
  • )} @@ -103,3 +102,56 @@ export default function Navbar(props: any) { ); } + +Navbar.defaultProps = { + grades: [ + { + name: "اول", + value: 1, + }, + { + name: "دوم", + value: 2, + }, + { + name: "سوم", + value: 3, + }, + { + name: "چهارم", + value: 4, + }, + { + name: "پنجم", + value: 5, + }, + { + name: "ششم", + value: 6, + }, + { + name: "هفتم", + value: 7, + }, + { + name: "هشتم", + value: 8, + }, + { + name: "نهم", + value: 9, + }, + { + name: "دهم", + value: 10, + }, + { + name: "یازدهم", + value: 11, + }, + { + name: "دوازدهم", + value: 12, + }, + ], +} \ No newline at end of file diff --git a/src/components/PrivateRouter/index.js b/src/components/PrivateRouter/index.js index a602432..ea9b2cd 100644 --- a/src/components/PrivateRouter/index.js +++ b/src/components/PrivateRouter/index.js @@ -1,5 +1,5 @@ -import React, { Component } from "react"; -import { Route, useHistory, Redirect } from "react-router-dom"; +import React from "react"; +import { Route, Redirect } from "react-router-dom"; import { connect } from "react-redux"; const PrivateRouter = ({ @@ -12,7 +12,7 @@ const PrivateRouter = ({ - status ? ( + true ? ( ) : ( diff --git a/src/custom.scss b/src/custom.scss index a67060a..a91917d 100644 --- a/src/custom.scss +++ b/src/custom.scss @@ -228,9 +228,38 @@ p{ transform : translateY(-2px) !important; } + +//Menu +.MuiButton-root{ + font-family: numeralLight !important; + color: white !important; + span{ + margin-left: 0px !important; + margin-right: 5px; + } +} + +.MuiPaper-root{ + .MuiList-root{ + display: flex !important; + width: 200px !important; + flex-wrap: wrap !important; + li{ + width: 100px; + display: flex !important; + justify-content: center !important; + text-align: center !important; + padding: 10px 0px !important; + &:nth-child(even){ + border-right: 1px solid #555 !important; + } + } + } +} + @media screen and (min-width: 1441px) { .submit { - font-size: 20px; + font-size: 16px; } .main { main { diff --git a/src/index.css b/src/index.css index ea88952..0f39431 100644 --- a/src/index.css +++ b/src/index.css @@ -8,6 +8,11 @@ body { -moz-osx-font-smoothing: grayscale; } +body::-webkit-scrollbar{ + scrollbar-width: 0px !important; + display: none; +} + code { font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; diff --git a/src/redux/actions-type/faq.tsx b/src/redux/actions-type/faq.tsx index 9c051eb..b9d1d5a 100644 --- a/src/redux/actions-type/faq.tsx +++ b/src/redux/actions-type/faq.tsx @@ -1,28 +1,33 @@ interface list { - type : "faq/list" - data : any + type: "faq/list"; + data: any; } interface add { - type : "faq/add" - data : any + type: "faq/add"; + data: any; } -interface selectFaq{ - type : "faq/selectFaq" - data : any +interface selectFaq { + type: "faq/selectFaq"; + data: any; } -interface error{ - type : "faq/error" - data : undefined +interface searchFaq { + type: "faq/search"; + data: any; } -interface loading{ - type : "faq/loading" - data : undefined +interface error { + type: "faq/error"; + data: undefined; } -type FaqAction = list | add | selectFaq | loading | error; +interface loading { + type: "faq/loading"; + data: undefined; +} + +type FaqAction = list | searchFaq | add | selectFaq | loading | error; export default FaqAction; diff --git a/src/redux/actions-type/user.tsx b/src/redux/actions-type/user.tsx index 93851ae..d284d97 100644 --- a/src/redux/actions-type/user.tsx +++ b/src/redux/actions-type/user.tsx @@ -1,11 +1,16 @@ interface otp { - type : "public/sendOTP" - data : any + type: "public/sendOTP"; + data: any; } -interface otp_login{ - type : "user/otp/login" - data : any +interface otp_login { + type: "user/otp/login"; + data: any; +} + +interface login { + type: "user/login"; + data: any; } // interface switchRole{ @@ -13,37 +18,45 @@ interface otp_login{ // data : Object // } -interface logout{ - type : "user/logout" - data : any +interface logout { + type: "user/logout"; + data: any; } -interface getUserRole{ - type : "user/getUserRole" - data : any +interface getUserRole { + type: "user/getUserRole"; + data: any; } -interface getProfile{ - type : "user/getProfile" - data : any +interface getProfile { + type: "user/getProfile"; + data: any; } -interface setProfile{ - type : "user/setProfile" - data : any +interface setProfile { + type: "user/setProfile"; + data: any; } -interface error{ - type : "error" - data : undefined +interface error { + type: "error"; + data: undefined; } -interface loading{ - type : "loading" - data : undefined +interface loading { + type: "loading"; + data: undefined; } - -type UserAction = otp | otp_login | logout | getUserRole | getProfile | setProfile | error | loading; +type UserAction = + | otp + | otp_login + | login + | logout + | getUserRole + | getProfile + | setProfile + | error + | loading; export default UserAction; diff --git a/src/redux/actions/faq.tsx b/src/redux/actions/faq.tsx index 0c059af..5147e92 100644 --- a/src/redux/actions/faq.tsx +++ b/src/redux/actions/faq.tsx @@ -13,6 +13,8 @@ const faq = { (data = {}) => async (dispatch: Dispatch) => await dispatch({ type: "faq/selectFaq", data: data }), + searchFaq: (data: String) => async (dispatch: Dispatch) => + await dispatch({ type: "faq/search", data: data }), }; export default faq; diff --git a/src/redux/actions/public.tsx b/src/redux/actions/public.tsx index 041ebb9..46a50cd 100644 --- a/src/redux/actions/public.tsx +++ b/src/redux/actions/public.tsx @@ -4,36 +4,29 @@ const publicApi = { getHomeData: (data: undefined) => async (dispatch: Dispatch) => await proxy.get("public/homePage", data, { dispatch }), - // getFaqList: (data: undefined) => async (dispatch: Dispatch) => - // await proxy.get("faq/list", data, { dispatch }), - setFaqActive: (data: {}) => async (dispatch: Dispatch) => await dispatch({ type: "public/faq/activate", data: data }), - // searchFaq: (data: String) => async (dispatch: Dispatch) => - // await dispatch({ type: "public/faq/search", data: data }), - getContactData: (data = {}) => async (dispatch: Dispatch) => await proxy.get("public/contact", data, { dispatch }), - // getArList: (data: undefined) => async (dispatch: Dispatch) => - // await proxy.get("public/ar", data, { dispatch }), - getBlogList: (data: undefined) => async (dispatch: Dispatch) => await proxy.get("public/blogList", data, { dispatch }), getBlogInfo: (data: String) => async (dispatch: Dispatch) => await proxy.get("public/blogInfo", data, { dispatch }), - setSubscribe : (data: Object) => async (dispatch: Dispatch) => - await dispatch({type : "public/setSubscribe", data : data}), - getProvince: (data = {}) => async (dispatch : Dispatch) => - await proxy.get("public/province", data, { dispatch }), - getCity: (data = {}) => async (dispatch : Dispatch) => - await proxy.get("public/city", data, { dispatch }), - // filterNewProducts: (data: Object) => async (dispatch: Dispatch) => - // await dispatch({ type: "public/filter", data: data }), + setSubscribe: (data: Object) => async (dispatch: Dispatch) => + await dispatch({ type: "public/setSubscribe", data: data }), + getProvince: + (data = {}) => + async (dispatch: Dispatch) => + await proxy.get("public/province", data, { dispatch }), + getCity: + (data = {}) => + async (dispatch: Dispatch) => + await proxy.get("public/city", data, { dispatch }), }; export default publicApi; diff --git a/src/redux/actions/user.tsx b/src/redux/actions/user.tsx index 2ced11f..45582ff 100644 --- a/src/redux/actions/user.tsx +++ b/src/redux/actions/user.tsx @@ -1,12 +1,15 @@ import proxy from "../proxy"; -import {Dispatch} from 'redux'; +import { Dispatch } from "redux"; const user = { - otp: (data : String) => async (dispatch : Dispatch) => - await proxy.post("public/sendOTP", data, { dispatch }), + otp: (data: String) => async (dispatch: Dispatch) => + await proxy.post("public/sendOTP", data, { dispatch }), - otp_login: (data : Object) => async (dispatch : Dispatch) => - await proxy.login("user/otp/login", data, { dispatch }), + otp_login: (data: Object) => async (dispatch: Dispatch) => + await proxy.login("user/otp/login", data, { dispatch }), + + login: (data: Object) => async (dispatch: Dispatch) => + await proxy.login("user/login", data, { dispatch }), // register: (data : undefined) => async (dispatch : Dispatch) => // await proxy.login("user/register", data, { dispatch }), @@ -14,10 +17,10 @@ const user = { // switchRole: (data : String) => async (dispatch : Dispatch) => // await proxy.login("user/switchRole", data, { dispatch }), - logout: (data : String) => async (dispatch : Dispatch) => - await proxy.logout("user/logout", data, { dispatch }), + logout: (data: String) => async (dispatch: Dispatch) => + await proxy.logout("user/logout", data, { dispatch }), - getUserRole: (data : String) => async (dispatch : Dispatch) => + getUserRole: (data: String) => async (dispatch: Dispatch) => await proxy.get("user/getUserRole", data, { dispatch }), // list: @@ -36,23 +39,23 @@ const user = { // }), getProfile: (data = {}) => - async (dispatch : Dispatch) => + async (dispatch: Dispatch) => await proxy.get("user/getProfile", data, { dispatch }), setProfile: (data = {}, data2 = {}) => - async (dispatch : Dispatch) => { + async (dispatch: Dispatch) => { await proxy.put("user/setProfile", data, { dispatch }); await proxy.get("user/getProfile", data2, { dispatch }); }, add: (data = {}, data2 = {}) => - async (dispatch : Dispatch) => { + async (dispatch: Dispatch) => { await proxy.post("user/add", data); await proxy.get("user/list", data2, { dispatch }); }, del: (data = {}, data2 = {}) => - async (dispatch : Dispatch) => { + async (dispatch: Dispatch) => { await proxy.delete("user/delete", data); await proxy.get("user/list", data2, { dispatch }); }, diff --git a/src/redux/reducers/faq.tsx b/src/redux/reducers/faq.tsx index 5cdf5fb..8bfc879 100644 --- a/src/redux/reducers/faq.tsx +++ b/src/redux/reducers/faq.tsx @@ -5,6 +5,8 @@ const initialState = { loading: false, error: null, list: [], + searchResult: [], + search: null, }; export default function faq(state = initialState, action: FaqAction) { let { type, data } = action; @@ -18,10 +20,31 @@ export default function faq(state = initialState, action: FaqAction) { ...state, loading: false, error: null, - list: state.list.map((item: any) => - item.id === data - ? { ...item, active: !item.active } - : { ...item, active: false } + list: !state.search + ? state.list.map((item: any) => + item.id === data + ? { ...item, active: !item.active } + : { ...item, active: false } + ) + : state.list, + searchResult: state.search + ? state.searchResult.map((item: any) => + item.id === data + ? { ...item, active: !item.active } + : { ...item, active: false } + ) + : state.searchResult, + }; + case "faq/search": + return { + ...state, + loading: false, + error: null, + search: data, + searchResult: state.list.filter( + (item: any) => + item.title.indexOf(data) !== -1 || + item.description.indexOf(data) !== -1 ), }; case "faq/loading": diff --git a/src/redux/reducers/user.tsx b/src/redux/reducers/user.tsx index c2b569c..9137070 100644 --- a/src/redux/reducers/user.tsx +++ b/src/redux/reducers/user.tsx @@ -18,10 +18,9 @@ export default function user(state = initialState, action : UserAction) { // case "user/register": // case "user/switchRole": case "public/sendOTP": - toast.success("کد به شماره شما ارسال گردید."); return { ...state, loading: false, status: data.profile, error: null }; + case "user/login": case "user/otp/login": - toast.success("به دانوین خوش آمدید."); return { ...state, loading: false, @@ -35,19 +34,12 @@ export default function user(state = initialState, action : UserAction) { return { ...state, loading: false, status: proxy.status(), error: null }; case "user/getUserRole": return { ...state, loading: false, userRoles: data, error: null }; - // case "user/list": - // return { ...state, loading: false, list: data, error: null }; - // case "user/domains": - // return { ...state, loading: false, domains: data, error: null }; - // case "mothers/list": - // return { ...state, loading: false, mothers: data, error: null }; case "user/setProfile": toast.success("تغییرات اعمال شد."); return { ...state, loading: false, error: null, setDone : true }; case "loading": return { ...state, loading: true }; case "error": - // toast.error(data.message); return { ...state, loading: false, error: data.message }; default: return state; diff --git a/src/router.js b/src/router.js index e9b7d76..c67647c 100644 --- a/src/router.js +++ b/src/router.js @@ -19,7 +19,7 @@ import proxy from "./redux/proxy"; function router({ status }) { const home = ( - {status ? : } + {1 ? : } ); return ( @@ -32,6 +32,9 @@ function router({ status }) { + + + ( undefined ); @@ -41,7 +41,7 @@ function Login(props: any) {
    بازگشت به صفحه قبل - +
    @@ -85,7 +85,7 @@ function Login(props: any) {
    رمز عبور خود را فراموش کرده‌اید؟ -

    props.setPage("signup")}> @@ -97,4 +97,4 @@ function Login(props: any) { ); } -export default connect(() => ({}), { login: user.otp_login })(Login); +export default connect(() => ({}), { login: user.login })(Login); diff --git a/src/views/Auth/SignUp/index.scss b/src/views/Auth/SignUp/index.scss index ab6e212..55f329d 100644 --- a/src/views/Auth/SignUp/index.scss +++ b/src/views/Auth/SignUp/index.scss @@ -6,26 +6,20 @@ img { // transform: rotate(-90deg); } - background: linear-gradient( - 135deg, - hsla(0, 0%, 31%, 1) 0%, - hsla(0, 0%, 0%, 1) 100% - ); - background: -moz-linear-gradient( - 135deg, - hsla(0, 0%, 31%, 1) 0%, - hsla(0, 0%, 0%, 1) 100% - ); - background: -webkit-linear-gradient( - 135deg, - hsla(0, 0%, 31%, 1) 0%, - hsla(0, 0%, 0%, 1) 100% - ); + background: black; .footer { position: fixed; bottom: 0px; left: 0px; } + button { + margin-top: 25px; + background-color: #84de56; + color: white; + padding: 10px 0px; + border: 0px; + border-radius: 10px; + } } @media screen and (min-width: 1441px) { @@ -34,11 +28,11 @@ width: 410px; b { color: white; - font-size: 20px; + font-size: 16px; margin-bottom: 30px; font-weight: 500; + line-height: 1.7; p{ - font-size: 16px; } } input { @@ -46,7 +40,7 @@ background-color: #2a2a2a; border: 1px solid #a2a2a2; border-radius: 8px; - font-size: 23px; + font-size: 20px; padding: 8px 0px; color: white; direction: ltr; @@ -60,17 +54,12 @@ } button { margin-top: 25px; - background-color: #84de56; - color: white; - font-size: 20px; - padding: 10px 0px; - border: 0px; - border-radius: 10px; + font-size: 17px; } } &__info { width: 350px; - margin: 20px auto 0px; + margin: 30px auto 0px; text-align: center; color: white; font-size: 13px; @@ -130,12 +119,7 @@ } button { margin-top: 25px; - background-color: #84de56; - color: white; font-size: calc(100vw / 80); - padding: 10px 0px; - border: 0px; - border-radius: 10px; } } &__info { @@ -206,12 +190,7 @@ } } button { - background-color: #84de56; - color: white; font-size: calc(100vw / 30); - padding: 10px 0px; - border: 0px; - border-radius: 10px; width: 100%; max-width: 400px; margin: 50px auto 0px; @@ -284,8 +263,6 @@ } button { margin-top: 20px; - background-color: #84de56; - color: white; font-size: calc(100vw / 24); padding: 12px 0px; border: 0px; diff --git a/src/views/Course/index.tsx b/src/views/Course/index.tsx index b5973f1..b1a2a3c 100644 --- a/src/views/Course/index.tsx +++ b/src/views/Course/index.tsx @@ -26,7 +26,7 @@ function Course({ lessons, getInfo, info }: any) { useEffect(() => { scroll.goToTop(); getInfo({ - bookId: 18 + bookId: 1 // window.location.pathname.slice( // window.location.pathname.lastIndexOf("/") + 1, // window.location.pathname.length diff --git a/src/views/Faq/index.scss b/src/views/Faq/index.scss index c4ebaf6..1a09475 100644 --- a/src/views/Faq/index.scss +++ b/src/views/Faq/index.scss @@ -44,6 +44,7 @@ &--itemHeader { border-top-right-radius: 5px; border-top-left-radius: 5px; + padding: 10px; strong { color: #4dd35b; } @@ -54,6 +55,7 @@ &--itemBody { border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; + padding:0px 10px 30px; p { color: white; } @@ -66,26 +68,27 @@ header { max-width: 800px; h1 { - font-size: 44px; + font-size: 24px; } p { - font-size: 21px; + font-size: 16px; + margin-bottom: 30px; } input { padding: 10px 20px 10px 0px; - font-size: 21px; + font-size: 17px; } img { - width: 35px; + width: 30px; } } &__list{ max-width: 1040px; - h2{ - font-size: 19px; + strong{ + font-size: 16px; } p{ - font-size: 21px; + font-size: 15px; } } } @@ -96,18 +99,18 @@ header { max-width: 700px; h1 { - font-size: calc(100vw / 50); + font-size: calc(100vw / 55); } p { - font-size: calc(100vw / 90); + font-size: calc(100vw / 95); margin-bottom: 20px; } input { padding: 5px 10px 5px 0px; - font-size: calc(100vw / 90); + font-size: calc(100vw / 95); } img { - width: 35px; + width: 30px; } button{ width: 60px; @@ -121,7 +124,7 @@ font-size: calc(100vw / 95); } p{ - font-size: calc(100vw / 90); + font-size: calc(100vw / 100); } } } diff --git a/src/views/Faq/index.tsx b/src/views/Faq/index.tsx index 1b9791c..5e22944 100644 --- a/src/views/Faq/index.tsx +++ b/src/views/Faq/index.tsx @@ -1,7 +1,7 @@ import React, { useEffect } from "react"; import Navbar from "../../components/Navbar/index"; import Footer from "../../views/Home/Footer/index"; -import search from "../../assets/icons/search.png"; +import searchIcon from "../../assets/icons/search.png"; import dropdown from "../../assets/icons/dropdown.png"; import whiteDropdown from "../../assets/icons/white-dropdown.png"; import { connect } from "react-redux"; @@ -9,7 +9,14 @@ import { faq } from "../../redux/actions"; import scroll from "../../util/scroll.js"; import "./index.scss"; -function Faq({ list, selectFaq, getList }: any) { +function Faq({ + list, + selectFaq, + getList, + searchFaq, + searchResult, + search, +}: any) { useEffect(() => { getList(); scroll.goToTop(); @@ -26,33 +33,59 @@ function Faq({ list, selectFaq, getList }: any) { ستون و سطرآنچنان که لازم است و برای شرایط{" "}

    - + searchFaq(e.target.value)} + />
      - {list?.map((item: any, i: any) => ( -
    • -
      selectFaq(item.id)} - > - {item.title} - {item.active ? ( - - ) : ( - + {!search && + list?.map((item: any, i: any) => ( +
    • +
      selectFaq(item.id)} + > + {item.title} + {item.active ? ( + + ) : ( + + )} +
      + {item.active && ( +
      +

      {item.description}

      +
      )} - - {item.active && ( -
      -

      {item.description}

      +
    • + ))} + {search && + searchResult?.map((item: any, i: any) => ( +
    • +
      selectFaq(item.id)} + > + {item.title} + {item.active ? ( + + ) : ( + + )}
      - )} -
    • - ))} + {item.active && ( +
      +

      {item.description}

      +
      + )} + + ))}