reza fixed some bug

temp
Reza_ashrafi 3 years ago
parent 544ba37bb1
commit 736dbb5223
  1. 2
      src/components/Audio/index.js
  2. 3
      src/components/BottomNavigation/index.js
  3. 2
      src/components/Comments/index.js
  4. 2
      src/components/CourseChapter/index.js
  5. 2
      src/components/Dots/index.js
  6. 1
      src/components/Drawer/index.js
  7. 8
      src/components/Footer/index.js
  8. 3
      src/components/Footer/light-blue-line.svg
  9. BIN
      src/components/Input/danger.png
  10. 3
      src/components/Input/index.js
  11. BIN
      src/components/Input/tick.png
  12. 4
      src/components/JolPlayer/index.js
  13. 4
      src/components/Map/index.js
  14. 10
      src/components/Navbar/dark-crimson-hamburger-menu.svg
  15. 12
      src/components/Navbar/index.js
  16. 2
      src/components/OR/index.js
  17. 19
      src/components/Product/index.js
  18. 3
      src/components/Product/lightBlueDotIcon.svg
  19. 3
      src/components/Product/purpleDotIcon.svg
  20. 3
      src/components/Product/redDotIcon.svg
  21. BIN
      src/components/Product/watermelon.png
  22. 3
      src/components/Product/yellowDotIcon.svg
  23. 2
      src/components/ProductImage/index.js
  24. 8
      src/components/ProductImage/product-chair.svg
  25. 6
      src/components/ProductStatusCard/icon1.svg
  26. 6
      src/components/ProductStatusCard/index.js
  27. 2
      src/components/ProductSuggestion/index.js
  28. 1
      src/components/QandA/index.js
  29. 2
      src/components/Search/index.js
  30. 3
      src/components/Textarea/index.js
  31. 11
      src/components/Timer/index.js
  32. 10
      src/components/VerticalExpandableProductFilter/index.js
  33. BIN
      src/components/VodProduct/discount.png
  34. 19
      src/components/VodProduct/index.js
  35. 8
      src/components/VodProduct/videoImages/image-1.svg
  36. 8
      src/components/VodProduct/videoImages/image-2.svg
  37. 8
      src/components/VodProduct/videoImages/image-3.svg
  38. 8
      src/components/VodProduct/videoImages/image-4.svg
  39. 8
      src/components/VodProduct/videoImages/image-5.svg
  40. 8
      src/components/VodProduct/videoImages/image-6.svg
  41. 2
      src/components/Wave/index.js
  42. 12
      src/components/index.js
  43. 21
      src/redux/actions/book.js
  44. 2
      src/redux/reducers/book.js
  45. 7
      src/redux/reducers/public.js
  46. 3
      src/router.js
  47. 2
      src/views/404/index.js
  48. 2
      src/views/AR/index.js
  49. 1
      src/views/Activation/index.js
  50. 8
      src/views/Auth/Desktop/back.svg
  51. 33
      src/views/Auth/Login/index.js
  52. 262
      src/views/Auth/Login/index.scss
  53. 2
      src/views/Auth/SignUp/index.js
  54. 8
      src/views/Auth/index.js
  55. 124
      src/views/BugsAndProblems/data.js
  56. 67
      src/views/BugsAndProblems/index.js
  57. 3
      src/views/Dashboard/layouts/SidebarMenu/Vector.svg
  58. 4
      src/views/Dashboard/layouts/SidebarMenu/arrow-down.svg
  59. 7
      src/views/Dashboard/layouts/SidebarMenu/element-4.svg
  60. 6
      src/views/Dashboard/layouts/SidebarMenu/folder-open.svg
  61. 1
      src/views/Dashboard/layouts/SidebarMenu/index.js
  62. 8
      src/views/Dashboard/layouts/SidebarMenu/message-text.svg
  63. 8
      src/views/Dashboard/layouts/SidebarMenu/profile-pic.svg
  64. 8
      src/views/Dashboard/layouts/SidebarMenu/wallet-money.svg
  65. 3
      src/views/DeliveryForm/Address/index.js
  66. 2
      src/views/DeliveryForm/PaymentMethod/index.js
  67. 4
      src/views/DeliveryForm/TransportDate/index.js
  68. 4
      src/views/DeliveryForm/TransportMethod/index.js
  69. 12
      src/views/Faq/components/Question.js
  70. 11
      src/views/Home/Desktop/Part2/index.js
  71. 53
      src/views/Home/Desktop/Part4/index.js
  72. 14
      src/views/Home/Desktop/SalesContainer/index.js
  73. 10
      src/views/Home/Desktop/index.js
  74. 2
      src/views/Home/Portrait/Private/Blogs/index.js
  75. 2
      src/views/Home/Portrait/Private/Shop/index.js
  76. 2
      src/views/Home/Portrait/Private/Videos/index.js
  77. 2
      src/views/Home/Portrait/index.js
  78. 2
      src/views/Home/index.js
  79. 5
      src/views/Orders/index.js
  80. 3
      src/views/Product/Desktop/ProductOverAll/index.js
  81. 1
      src/views/Product/Desktop/index.js
  82. 50
      src/views/Products/index.js
  83. 6
      src/views/Products/layouts/Desktop/Main.js
  84. 25
      src/views/Products/layouts/Desktop/Sidebar.js
  85. 3
      src/views/QR/Scan/index.js
  86. 2
      src/views/ShoppingCart/Code/index.js
  87. 4
      src/views/ShoppingCart/index.js
  88. 1
      src/views/Video/components/Season.js
  89. 6
      src/views/Video/index.js
  90. 3
      src/views/VideoDisplay/components/Season.js
  91. 7
      src/views/VideoDisplay/index.js
  92. 3
      src/views/Videos/index.js

@ -1,5 +1,3 @@
import { file } from "../../redux/actions";
export default function MaterialAudioPlayer({ fileIds }) {
return (
<audio controls className="w-full h-10 mt-4">

@ -12,8 +12,7 @@ import activeHomeIcon from "./bottom-home-active.svg";
import activeTestIcon from "./bottom-test-active.svg";
import activeProfileIcon from "./bottom-profile-active.svg";
import activeProductsIcon from "./bottom-products-active.svg";
import activeVideoIcon from "./bottom-video-active.svg"
import activeVideoIcon from "./bottom-video-active.svg";
export const BottomNavigation = ({ pages, isDark }) => {
const [activeLink, setActiveLink] = useState("/");

@ -1,12 +1,10 @@
import React from "react";
import { connect } from "react-redux";
// import { connectToParent } from "../../utils/comments";
import userImage from "./user.svg";
import positiveIcon from "./positive.svg";
import negativeIcon from "./negative.svg";
import Avatar from "../Avatar"
import moment from "jalali-moment";
import Button from '../Button';
import StarRating from "../StarRating";
export const Comments = ({ comments }) => {

@ -1,4 +1,4 @@
import React, { useState } from "react";
import React from "react";
import { connect } from "react-redux";
import { publicApi } from "../../redux/actions";
import { toast } from "react-toastify";

@ -1,7 +1,7 @@
import React, { useState, useEffect } from "react";
import _ from "lodash";
export default function Dots({ count = 7, setPage }) {
export default function Dots() {
const [scroll, setScroll] = useState(null);
const [active, setActive] = useState(null);
const height = window.innerHeight;

@ -7,7 +7,6 @@ import Drawer from "react-modern-drawer";
import homeIcon from "./mobile-home.svg";
import logoutIcon from "./mobile-logout.svg";
import blogIcon from "./mobile-blog.svg";
import productsIcon from "./mobile-blog.svg";
import dangerIcon from "./mobile-danger.svg";
import cartIcon from "./mobile-basket.svg";
import profileIcon from "./mobile-profile.svg";

@ -1,4 +1,4 @@
import React, { useEffect } from "react";
import React from "react";
import { Link } from "react-router-dom";
import _ from "lodash";
@ -8,8 +8,6 @@ import samandehi from "./samandehi-pic.svg";
import iosIcon from "./IOS.svg";
import bazarIcon from "./Bazar.svg";
import lightBlueLine from "./light-blue-line.svg";
const FooterDesign1 = ({ color, bg, items, hasHeader }) => {
const enamad =
'<a referrerpolicy="origin" target="_blank" href="https://trustseal.enamad.ir/?id=224965&amp;Code=x8oNSO7tTnqAniyPpPyN"><img referrerpolicy="origin" src="https://Trustseal.eNamad.ir/logo.aspx?id=224965&amp;Code=x8oNSO7tTnqAniyPpPyN" alt="" style="cursor:pointer" id="x8oNSO7tTnqAniyPpPyN"></a>';
@ -38,9 +36,9 @@ const FooterDesign1 = ({ color, bg, items, hasHeader }) => {
</div>
</div>
<div className="flex items-center">
<img src={iosIcon} alt="" className="cursor-pointer" />
{/* <img src={iosIcon} alt="" className="cursor-pointer" /> */}
<a href="http://danovin.ir/app.apk" download>
<img src={bazarIcon} alt="" className="mr-6" />
<img src={bazarIcon} alt="" className="w-52 mr-6" />
</a>
</div>
</div>

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="38.827" height="36.827" viewBox="0 0 38.827 36.827">
<line id="Line_336" data-name="Line 336" x1="36" y2="34" transform="translate(1.414 1.414)" fill="none" stroke="#196ec0" stroke-linecap="round" stroke-width="2" opacity="0.36"/>
</svg>

Before

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 860 B

@ -2,9 +2,6 @@ import React, { useState } from "react";
import _ from "lodash";
import "./index.scss";
import tick from "./tick.png";
import danger from "./danger.png";
const langDetector = (lang, option1, option2) => {
return lang === "fa" ? option1 : option2;
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 411 B

@ -1,7 +1,7 @@
import React, { useEffect, useRef, useState } from "react";
import React, { useRef } from "react";
import JoLPlayer from "jol-player";
function Video({ fileIds, posterId, autoPlay }) {
function Video({ fileIds, posterId }) {
const videoRef = useRef(null);
return (

@ -1,9 +1,5 @@
import Mapir from "mapir-react-component";
// import blueMark from '../../../assets/icons/marker-blue.png';
// import './index.scss';
const Map = Mapir.setToken({
transformRequest: (url) => {
return {

@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="42.098" height="52.867" viewBox="0 0 42.098 52.867">
<g id="vuesax_linear_textalign-justifycenter" data-name="vuesax/linear/textalign-justifycenter" transform="translate(-364 -188)">
<g id="textalign-justifycenter" transform="translate(364 188)">
<path id="Vector" d="M0,0H28.881" transform="translate(6.608 9.913)" fill="none" stroke="#132f52" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/>
<path id="Vector-2" data-name="Vector" d="M0,0H28.881" transform="translate(6.608 20.926)" fill="none" stroke="#132f52" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/>
<path id="Vector-3" data-name="Vector" d="M0,0H28.881" transform="translate(6.608 31.94)" fill="none" stroke="#132f52" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/>
<path id="Vector-4" data-name="Vector" d="M0,0H42.1V52.867H0Z" transform="translate(42.098 52.867) rotate(180)" fill="none" opacity="0"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1020 B

@ -3,21 +3,15 @@ import { Link, useNavigate } from "react-router-dom";
import { connect } from "react-redux";
import { userProduct } from "../../redux/actions";
import _ from "lodash";
//components
import Drawer from "../Drawer";
import Search from "../Search";
import SearchResult from "./SearchResult";
import OverLayer from "../OverLayer";
//assets
import cartIcon from "./cart-blue.svg";
// import whiteCartIcon from "./white-cart-icon.svg";
// import profileIcon from "./dark-crimson-profile-icon.svg";
import searchIcon from "./dark-crimson-search-box.svg";
// import lightGraySearchIcon from "./light-gray-search-box.svg";
import darkCrimsonHamburgerMenu from "./dark-crimson-hamburger-menu.svg";
// import whiteHamburgerMenu from "./white-hamburger-menu-icon.svg";
// import grayBagIcon from "../../assets/icons/gray-bag.svg";
// import graySearchIcon from "../../assets/icons/gray-search.svg";
import logoIcon from "../../assets/icons/logo.svg";
import qrIcon from "../../assets/icons/qr-white.svg";
import qrBlueIcon from "../../assets/icons/qr-blue.svg";

@ -1,4 +1,4 @@
import React, { useState } from "react";
import React from "react";
function OR({}) {
return (

@ -3,18 +3,11 @@ import { Link } from "react-router-dom";
import { connect } from "react-redux";
import separate from "../../utils/separate";
import StarRating from "../StarRating";
// import Tag from "../Tag";
// import ReactTooltip from "react-tooltip";
import book from "./goldon.png";
// import watermelon from "./watermelon.png";
import heart from "./vuesax-linear-heart.svg";
import discountImg from "./discount.png";
// import YellowDotIcon from "./yellowDotIcon.svg";
// import RedDotIcon from "./redDotIcon.svg";
// import PurpleDotIcon from "./purpleDotIcon.svg";
// import LightBlueDotIcon from "./lightBlueDotIcon.svg";
// import StarRatingComponent from "react-star-rating-component";
const ProductDesign = ({
grades,
@ -196,16 +189,6 @@ const mapStateToProps = (state) => ({
export default connect(mapStateToProps)(ProductDesign);
// text colors i used for product title:
// text-darkCrimsonTextColor
// text-productTitle
// text color i used for product excerpt:
// text-productContent
// text color i used for product cat:
// text-darkCrimsonTextColor
ProductDesign.defaultProps = {
// icons on product image
type : 0,

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<circle id="Ellipse_18" data-name="Ellipse 18" cx="8" cy="8" r="8" fill="#89ecff"/>
</svg>

Before

Width:  |  Height:  |  Size: 177 B

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<circle id="Ellipse_17" data-name="Ellipse 17" cx="8" cy="8" r="8" fill="#924eeb"/>
</svg>

Before

Width:  |  Height:  |  Size: 177 B

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<circle id="Ellipse_19" data-name="Ellipse 19" cx="8" cy="8" r="8" fill="#fc5353"/>
</svg>

Before

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<circle id="Ellipse_20" data-name="Ellipse 20" cx="8" cy="8" r="8" fill="#fcf653"/>
</svg>

Before

Width:  |  Height:  |  Size: 177 B

@ -2,8 +2,6 @@ import React, { useState, useEffect } from "react";
import "./index.scss";
import productImg from "./product-image.jpg";
const ProductImage = ({ images }) => {
const [list, setList] = useState([]);
const [activeImage, setActiveImage] = useState(null);

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 39 KiB

@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="45.6" height="45.6" viewBox="0 0 45.6 45.6">
<g id="Path_95" data-name="Path 95" fill="#fff">
<path d="M 33.83258438110352 44.8504524230957 L 11.76785469055176 44.8504524230957 C 8.824884414672852 44.8504524230957 6.058054447174072 43.70439529418945 3.977064371109009 41.62339401245117 C 1.896064281463623 39.54239273071289 0.7500042915344238 36.77556610107422 0.7500042915344238 33.83258438110352 L 0.7500042915344238 8.825894355773926 C 0.7500042915344238 4.372834205627441 4.372834205627441 0.7500042915344238 8.825894355773926 0.7500042915344238 L 36.77455520629883 0.7500042915344238 C 41.24808502197266 0.7500042915344238 44.8504524230957 6.086584091186523 44.8504524230957 10.50503444671631 L 44.8504524230957 33.83258438110352 C 44.8504524230957 36.77556610107422 43.70439529418945 39.54239273071289 41.62339401245117 41.62339401245117 C 39.54239273071289 43.70439529418945 36.77556610107422 44.8504524230957 33.83258438110352 44.8504524230957 Z" stroke="none"/>
<path d="M 8.825893402099609 1.499996185302734 C 4.786384582519531 1.499996185302734 1.499996185302734 4.786384582519531 1.499996185302734 8.825893402099609 L 1.499996185302734 33.83258438110352 C 1.499996185302734 39.49430465698242 6.106132507324219 44.10044479370117 11.76785278320312 44.10044479370117 L 33.83258438110352 44.10044479370117 C 39.49430465698242 44.10044479370117 44.10044479370117 39.49430465698242 44.10044479370117 33.83258438110352 L 44.10044479370117 10.50503540039062 C 44.10044479370117 8.442455291748047 43.25521469116211 6.143684387207031 41.83945465087891 4.355815887451172 C 40.994873046875 3.289253234863281 39.21379470825195 1.499996185302734 36.77455520629883 1.499996185302734 L 8.825893402099609 1.499996185302734 M 8.825893402099609 -3.814697265625e-06 L 36.77455520629883 -3.814697265625e-06 C 41.64896392822266 -3.814697265625e-06 45.60044479370117 5.630622863769531 45.60044479370117 10.50503540039062 L 45.60044479370117 33.83258438110352 C 45.60044479370117 40.33179473876953 40.33179473876953 45.60044479370117 33.83258438110352 45.60044479370117 L 11.76785278320312 45.60044479370117 C 5.268653869628906 45.60044479370117 -3.814697265625e-06 40.33179473876953 -3.814697265625e-06 33.83258438110352 L -3.814697265625e-06 8.825893402099609 C -3.814697265625e-06 3.951484680175781 3.951484680175781 -3.814697265625e-06 8.825893402099609 -3.814697265625e-06 Z" stroke="none" fill="#3fa7ce"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

@ -2,12 +2,14 @@ import React from "react";
import { connect } from "react-redux";
import { userProduct } from "../../redux/actions";
import { toast } from "react-toastify";
import separate from '../../utils/separate';
import separate from '../../utils/separate'
//components;
import Button from "../Button";
//assets
import arrow from "./arrow-icon.svg";
import delivery from "./delivery-icon.svg";
import checked from "./icon1.svg";
import circle from "./info-circle.svg";
import shield from "./shield-tick.svg";
import tick from "./tick-circle.svg";

@ -8,9 +8,7 @@ import productImg from "./product-chair.svg";
import plus from "./plus.svg";
const ProductSuggestion = ({
suggestions,
isDark,
id,
getSimilar,
book,
similarList,

@ -2,7 +2,6 @@ import React, { useState } from "react";
import moment from "jalali-moment";
import StarRating from "../StarRating";
import Counter from "../Counter";
import Button from "../Button";

@ -2,6 +2,8 @@ import React from "react";
import { connect } from "react-redux";
import { publicApi } from "../../redux/actions";
import _ from "lodash";
//assets
import searchIcon from "./search.png";
const langDetector = (lang = "fa", option1, option2) => {

@ -1,8 +1,7 @@
import React from "react";
import _ from "lodash";
export default function Textarea({ placeholder, theme, backgroundColor }) {
const light = theme === "light";
export default function Textarea({ placeholder }) {
return (
<>
<textarea

@ -1,16 +1,5 @@
import { Component } from "react";
const maxDesktopSize = 1250;
const maxMobileSize = 550;
const fontSize = {
desktop: {
div: window.innerWidth > maxDesktopSize ? 12 : window.innerWidth / 95,
},
mobile: {
div: window.innerWidth > maxMobileSize ? 12 : window.innerWidth / 30,
},
};
export default class Timer extends Component {
constructor(props) {
super(props);

@ -1,4 +1,4 @@
import React, { useState, useEffect } from "react";
import React, { useState } from "react";
import searchIcon from "./search.png";
import _ from "lodash";
import Checkbox from "../Checkbox";
@ -9,17 +9,9 @@ const langDetector = (lang = "fa", option1, option2) => {
};
export default function VerticalExpandableProductFilter(props) {
const [text, setText] = useState("");
const [searchResult, setSearchResult] = useState([]);
const [checkedBox, setChecked] = useState([]);
const name = props.name || Math.random();
// useEffect(() => {
// let fakeSearchResult;
// fakeSearchResult = props.list.filter(
// (item1) => item1.name.indexOf(text) !== -1
// );
// setSearchResult(fakeSearchResult);
// }, [text]);
return (
<div className="flex flex-col w-full border border-solid border-gray-100 rounded-md pt-6 bg-transparent max-h-screen bg-white my-3">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 868 B

@ -1,36 +1,17 @@
import React, { useEffect, useState } from "react";
import { Link } from "react-router-dom";
import separate from "../../utils/separate";
import StarRating from "../StarRating";
import ReactTooltip from "react-tooltip";
//assets
import videoImage1 from "./videoImages/image-1.svg";
import videoImage2 from "./videoImages/image-2.svg";
import videoImage3 from "./videoImages/image-3.svg";
import videoImage4 from "./videoImages/image-4.svg";
import videoImage5 from "./videoImages/image-5.svg";
import videoImage6 from "./videoImages/image-6.svg";
import watermelon from "./watermelon.png";
// import video from "./danovin.mp4";
import discountImg from "./discount.png";
import heart from "./vuesax-linear-heart.svg";
import YellowDotIcon from "./yellowDotIcon.svg";
import RedDotIcon from "./redDotIcon.svg";
import PurpleDotIcon from "./purpleDotIcon.svg";
import LightBlueDotIcon from "./lightBlueDotIcon.svg";
import whitePlayIcon from "./white-play-button-icon.svg";
import { book } from "../../redux/actions";
const videoImages = [
videoImage1,
videoImage2,
videoImage3,
videoImage4,
videoImage5,
videoImage6,
];
const VodProduct = ({
video,

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 92 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 75 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 76 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 45 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 46 KiB

@ -1,5 +1,3 @@
// require('wavesurfer.js');
import React, { useState } from "react";
import Wavesurfer from "react-wavesurfer";

@ -1,12 +0,0 @@
export {default as BG} from './BG';
export {default as Button} from './Button';
export {default as Dots} from './Dots';
export {default as FloatWithMouse} from './FloatWidthMouse';
export {default as JolPlayer} from './JolPlayer';
export {default as Navbar} from './Navbar';
export {default as Progress} from './Progress';
export {default as Search} from './Search';
export {default as Select} from './Select';
// export {default as Wave} from './Wave';

@ -17,27 +17,6 @@ const book = {
setFilterOptions: (data) => async (dispatch) => {
dispatch({ type: "book/setFilterOptions", data: data })
}
// update:
// (data = {}, data2 = {}) =>
// async (dispatch : Dispatch) => {
// await proxy.put("book/update", data);
// await proxy.get("book/list", data2, { dispatch });
// },
// add:
// (data = {}, data2 = {}) =>
// async (dispatch) => {
// await proxy.post("book/add", data);
// await proxy.get("book/list", data2, { dispatch });
// },
// del:
// (data = {}, data2 = {}) =>
// async (dispatch) => {
// await proxy.delete("book/delete", data);
// await proxy.get("book/list", data2, { dispatch });
// },
// searchBook: (data) => async (dispatch) => {
// dispatch({ type: "book/search", data: data });
// },
};

@ -10,7 +10,7 @@ const initialState = {
filterResult: [],
subjects: [],
levels: [],
sortMethods: ["محبوب ترین", "جدیدترین"],
sortFilters: ["محبوب ترین", "جدیدترین"],
selectedVideo: null,
gradeFilterBooks: null,
sortFilterCourse: null,

@ -1,8 +1,13 @@
import location from "../../utils/location";
const initialState = {
isDark: localStorage.getItem("isDark") === "true" ? true : false,
isMobile: window.innerWidth < 1024,
isDark:
window.innerWidth < 1024
? localStorage.getItem("isDark") === "true"
? true
: false
: false,
homeData: [],
newProducts: [],
levels: [],

@ -27,10 +27,8 @@ import Faq from "./views/Faq";
import Contact from "./views/Contact";
import Dashboard from "./views/Dashboard";
import FooterDesign1 from "./components/Footer";
import Bugs from "./views/BugsAndProblems";
import Blogs from "./views/Blogs";
import Blog from "./views/Blog";
// import VideoTube from "./views/Home/VideoTube";
function Router({
isDark,
@ -379,7 +377,6 @@ function Router({
/>
}
/>
<Route path="/bugs" exact element={<Bugs />} />
<Route
path="*"
exact

@ -3,7 +3,7 @@ import { connect } from "react-redux";
import notFoundImage from "./404.svg";
import { publicApi } from "../../redux/actions";
function NotFound({ headerOptions, setHeaderOptions, isMobile }) {
function NotFound({ setHeaderOptions, isMobile }) {
useEffect(() => {
setHeaderOptions({ shown: true, back: true });
}, []);

@ -1,4 +1,4 @@
import React, { useState, useEffect } from "react";
import React, { useEffect } from "react";
import { connect } from "react-redux";
import { publicApi } from "../../redux/actions";
import Book from "./layouts/Book";

@ -19,7 +19,6 @@ function Activation({ headerOptions, setHeaderOptions, isMobile }) {
return (
<div
className="w-full flex h-full flex-col bg-transparent lg:pt-36 lg:pb-24"
// style={{ height: "calc(100vh - 145px)" }}
>
<Header bg={isMobile ? qrBgImage : desktopQrBgImage} title="فعالسازی کتاب دیجیتال" />
<div className="flex-1 flex flex-col justify-between lg:justify-start px-4 lg:w-1/4 lg:mx-auto">

@ -1,8 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<g id="vuesax_linear_arrow-left" data-name="vuesax/linear/arrow-left" transform="translate(-364 -252)">
<g id="arrow-left">
<path id="Vector" d="M7.1,15.84.577,9.32a1.986,1.986,0,0,1,0-2.8L7.1,0" transform="translate(371.902 256.08)" fill="none" stroke="#196ec0" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/>
<path id="Vector-2" data-name="Vector" d="M0,0H24V24H0Z" transform="translate(388 276) rotate(180)" fill="none" opacity="0"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 582 B

@ -1,33 +0,0 @@
import React, { useState, useRef, useEffect } from "react";
import { Link } from "react-router-dom";
import { connect } from "react-redux";
import onInput from "../../../utils/onInput";
import { user } from "../../../redux/actions";
import _ from "lodash";
//assets
function Login({ login, theme, ...props }) {
const [loginFields, setSignUpFiels] = useState(undefined);
const onChange = (name, value) => {
setSignUpFiels({ ...loginFields, [name]: value });
};
useEffect(() => {}, []);
return (
<div
className={_.join(
[
"flex flex-col items-center justify-center w-screen h-screen relative",
],
" "
)}
>
</div>
);
}
export default connect(() => ({}), { login: user.login })(Login);

@ -1,262 +0,0 @@
.login {
&-light {
.MuiFormControl-root label{
background-color: white !important;
}
b{
color: $gray5 !important;
}
.login {
&__back {
a {
color: black !important;
}
}
&__options {
color: $gray9;
a {
color: $green4;
}
}
}
}
&__options {
color: #b5b5b5;
a {
color: $green4;
}
}
button[type="submit"] {
margin-top: 25px;
background-color: $green4;
color: white;
padding: 10px 0px;
border: 0px;
border-radius: 10px;
}
img {
// transform: rotate(-90deg);
}
.MuiButtonBase-root {
padding: 0px !important;
}
.footer {
position: fixed;
bottom: 0px;
left: 0px;
}
}
@media screen and (min-width: 1441px) {
.login {
section {
width: 410px;
b {
color: white;
font-size: 16px;
margin-bottom: 30px;
font-weight: 500;
p {
font-size: 16px;
}
}
button {
font-size: 17px;
}
}
&__info {
width: 350px;
margin: 40px auto 0px;
text-align: center;
color: white;
font-size: 14px;
a {
color: $green4;
}
}
&__back {
margin-bottom: 60px;
img {
transform: rotate(-90deg);
}
a {
color: white;
font-size: 13px;
}
}
&__options {
div {
font-size: 13px;
}
a {
font-size: 13px;
}
}
}
}
@media screen and (min-width: 1008px) and (max-width: 1440px) {
.login {
section {
width: 350px;
transform: scale(0.9);
b {
color: white;
font-size: calc(100vw / 80);
margin-bottom: 30px;
font-weight: 500;
}
button {
font-size: calc(100vw / 80);
}
}
&__info {
width: 300px;
margin: 40px auto 0px;
text-align: center;
color: white;
font-size: calc(100vw / 110);
a {
color: $green4;
}
}
&__back {
margin-bottom: 40px;
img {
transform: rotate(-90deg);
}
a {
color: white;
font-size: calc(100vw / 110);
}
}
&__options {
div {
font-size: calc(100vw / 110);
}
a {
font-size: calc(100vw / 110);
}
}
}
}
@media screen and (min-width: 641px) and (max-width: 1007px) {
.login {
.footer {
display: none !important;
}
section {
// background-color: red;
width: 90%;
max-width: 700px;
height: calc(100% - 60px);
justify-content: center;
b {
color: white;
font-size: calc(100vw / 30);
margin-bottom: 30px;
font-weight: 500;
}
button {
font-size: calc(100vw / 30);
width: 100%;
max-width: 400px;
margin: 50px auto 0px;
}
}
&__info {
width: 300px;
margin: 40px auto 0px;
text-align: center;
color: white;
font-size: calc(100vw / 40);
a {
color: $green4;
}
}
&__back {
position: fixed;
top: 100px;
margin-bottom: 40px;
left: 30px;
a {
color: white;
font-size: calc(100vw / 110);
}
img {
width: 50px;
}
}
&__options {
padding-top: 20px;
div {
font-size: calc(100vw / 40);
}
a {
font-size: calc(100vw / 45);
}
}
}
}
@media screen and (max-width: 640px) {
.login {
section {
// background-color: red;
width: 90%;
max-width: 400px;
height: calc(100% - 60px);
// transform: scale(0.9);
justify-content: center;
// align-items: center;
b {
color: white;
font-size: calc(100vw / 18);
margin-bottom: 30px;
font-weight: 500;
}
button {
margin-top: 25px;
font-size: calc(100vw / 25);
}
}
&__info {
width: 300px;
margin: 40px auto 0px;
text-align: center;
color: white;
font-size: calc(100vw / 30);
a {
color: $green4;
}
}
&__back {
position: fixed;
top: 70px;
left: 20px;
margin-bottom: 40px;
a {
color: white;
font-size: calc(100vw / 110);
}
img {
width: 40px;
// transform: scale()
}
}
&__options {
div {
font-size: calc(100vw / 30);
}
a {
font-size: calc(100vw / 30);
}
}
}
}

@ -132,7 +132,7 @@ function SignUp({
useEffect(() => {
if (loginFlag) {
navigate("/");
// navigate("/");
}
}, [loginFlag]);
const light = theme === "light";

@ -1,7 +1,6 @@
import React, { useState, useEffect } from "react";
import SignUp from "./SignUp/index";
import Profile from "./Profile/index";
import Login from "./Login/index";
import Desktop from "./Desktop";
import { connect } from "react-redux";
@ -15,13 +14,6 @@ function Auth(props) {
{page === "signup" && (
<SignUp theme={props.theme} headerOptions={props.headerOptions} />
)}
{page === "login" && (
<Login
theme={props.theme}
setPage={setPage}
headerOptions={props.headerOptions}
/>
)}
{page === "profile" && <Profile theme={props.theme} />}
</>
) : <Desktop />

@ -1,124 +0,0 @@
const list = [
{
title: "دسکتاپ - بنر بالای سایت",
description: "گرفتن لیست واقعی بنرها از دیتابیس",
status: 0,
developer: "",
},
{
title: "دسکتاپ - اسلایدر",
description: "اضافه کردن دکمه های اسلایدر",
status: 0,
developer: "",
},
{
title: "دسکتاپ - منوی بالای سایت",
description: "فعال سازی جستجو",
status: 0,
developer: "",
},
{
title: "دسکتاپ - منوی بالای سایت",
description: "تعداد محصولات داخل سبد خرید نمایش داده شود",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه محصولات ",
description: "فیلتر محصولات کاملا درست شود.",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه محصول",
description: "خطای اجرای منطق داریم",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه محصول",
description: "اسلایدر عکس محصول کار نمیکند و به سرور وصل نیست.",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه محصول",
description: "دکمه مشاهده نمونه کار نمیکند.",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه محصول",
description: "دکمه مشاهده دوره ویدیویی محصول کار نمیکند.",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه محصول",
description: "قسمت ثبت رضایت مشتری توسط ستاره به سرور وصل نیست",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه محصول",
description: "اصلاعات منوی سمت چپ واقعی نیست و همچنین دکمه اضافه کردن به سبد خرید کار نمیکند.",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه محصول",
description: "تب مشخصات اطلاعاتش واقعی نیست.",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه محصول",
description: "تب پرسش و پاسخ و محتوایی ندارد.",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه محصول",
description: "امکان ثبت نظر برای محصول فراهم نیست.",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه ویدئو",
description: "قسمت نمایش ویدئو به api وصل نیست.",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه ویدئو",
description: "اسلایدر کار نمیکند.",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه ویدئو",
description: "تب مشخصات و پرسش و پاسخ محتوایی ندارد.",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه ویدئو",
description: "تب سرفصل ها مرتب نیست.",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه ویدئو",
description: "اضافه کردن به سبد خرید کار نمیکند.",
status: 0,
developer: "",
},
{
title: "دسکتاپ - صفحه نمایش ویدئو",
description: "دیزاین این صفحه مرتب نیست کاملا.",
status: 0,
developer: "",
},
];
export default list;

@ -1,67 +0,0 @@
import React from "react";
import list from "./data";
const colors = ['bg-white', 'bg-blue-200', 'bg-green-200', 'bg-red-200'];
const statuses = ['کاری انجام نشده', 'در حال انجام', 'انجام شد', 'به مشکل خوردم'];
function Bugs({}) {
return (
<ul className="flex flex-col w-4/5 gap-4 mx-auto h-screen">
<div className="w-full flex justify-center mx-auto">
<div className="flex flex-col w-full">
<div className="w-full">
<div className="w-full ">
<table className="w-full">
<thead className="bg-gray-500">
<tr>
<th className="px-6 py-2 text-tiny text-white">Title</th>
<th className="px-6 py-2 text-tiny text-white">
Description
</th>
<th className="px-6 py-2 text-tiny text-white">Status</th>
<th className="px-6 py-2 text-tiny text-white">
Developer
</th>
</tr>
</thead>
<tbody
className="overflow-y-scroll"
style={{ minHeight: "100%" }}
>
{list.map((bug, index) => (
<tr
key={index}
className={`whitespace-nowrap p-2 w-full border border-solid border-gray-300 ${
colors[bug.status]
}`}
key={bug.title}
>
<td className="px-6 py-4 text-center border border-solid border-gray-300">
<div className="text-sm text-gray-900">{bug.title}</div>
</td>
<td className="px-6 py-4 text-center border border-solid border-gray-300">
<div className="text-sm text-gray-900">
{bug?.description}
</div>
</td>
<td className="px-6 py-4 text-sm text-gray-900 text-center border border-solid border-gray-300">
{statuses[bug.status]}
</td>
<td className="px-6 py-4 text-center border border-solid border-gray-300">
<div className="text-sm text-gray-900">
{bug?.developer}
</div>
</td>
</tr>
))}
</tbody>
</table>
</div>
</div>
</div>
</div>
</ul>
);
}
export default Bugs;

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="17.774" height="16.04" viewBox="0 0 17.774 16.04">
<path id="Vector" d="M0,6.069V4.335A4.035,4.035,0,0,1,3.633.052,4.615,4.615,0,0,1,4.335,0h7.8a3.965,3.965,0,0,1,.65.043,4.044,4.044,0,0,1,3.685,4.292V5.593h-1.8A1.787,1.787,0,0,0,12.9,7.526a1.849,1.849,0,0,0,1.873,1.621h1.7V10.4a4.1,4.1,0,0,1-4.335,4.335H9.971" transform="translate(0.65 0.65)" fill="none" stroke="#247deb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
</svg>

Before

Width:  |  Height:  |  Size: 499 B

@ -1,4 +0,0 @@
<svg id="arrow-down" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<path id="Vector" d="M15.84,0,9.32,6.52a1.986,1.986,0,0,1-2.8,0L0,0" transform="translate(4.08 8.95)" fill="none" stroke="#2d57cb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/>
<path id="Vector-2" data-name="Vector" d="M0,0H24V24H0Z" transform="translate(24 24) rotate(180)" fill="none" opacity="0"/>
</svg>

Before

Width:  |  Height:  |  Size: 434 B

@ -1,7 +0,0 @@
<svg id="element-4" xmlns="http://www.w3.org/2000/svg" width="20.809" height="20.809" viewBox="0 0 20.809 20.809">
<path id="Vector" d="M7.37,7.717v-5.9C7.37.52,6.815,0,5.436,0h-3.5C.555,0,0,.52,0,1.821v5.9c0,1.3.555,1.821,1.934,1.821h3.5C6.815,9.538,7.37,9.017,7.37,7.717Z" transform="translate(11.705 1.734)" fill="none" stroke="#247deb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
<path id="Vector-2" data-name="Vector" d="M7.37,3.382V1.821C7.37.52,6.815,0,5.436,0h-3.5C.555,0,0,.52,0,1.821V3.382C0,4.682.555,5.2,1.934,5.2h3.5C6.815,5.2,7.37,4.682,7.37,3.382Z" transform="translate(11.705 13.873)" fill="none" stroke="#247deb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
<path id="Vector-3" data-name="Vector" d="M7.37,1.821v5.9c0,1.3-.555,1.821-1.934,1.821h-3.5C.555,9.538,0,9.017,0,7.717v-5.9C0,.52.555,0,1.934,0h3.5C6.815,0,7.37.52,7.37,1.821Z" transform="translate(1.734 9.538)" fill="none" stroke="#247deb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
<path id="Vector-4" data-name="Vector" d="M7.37,1.821V3.382c0,1.3-.555,1.821-1.934,1.821h-3.5C.555,5.2,0,4.682,0,3.382V1.821C0,.52.555,0,1.934,0h3.5C6.815,0,7.37.52,7.37,1.821Z" transform="translate(1.734 1.734)" fill="none" stroke="#247deb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
<path id="Vector-5" data-name="Vector" d="M0,0H20.809V20.809H0Z" fill="none" opacity="0"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@ -1,6 +0,0 @@
<svg id="folder-open" xmlns="http://www.w3.org/2000/svg" width="20.809" height="20.809" viewBox="0 0 20.809 20.809">
<path id="Vector" d="M16.781,2.861,16.434,7.2c-.13,1.327-.234,2.341-2.584,2.341H2.943C.593,9.538.489,8.523.359,7.2L.012,2.861A2.628,2.628,0,0,1,.576.962L.593.945A2.579,2.579,0,0,1,2.6,0H14.2a2.57,2.57,0,0,1,1.986.928c.009.009.017.017.017.026A2.536,2.536,0,0,1,16.781,2.861Z" transform="translate(2.008 9.538)" fill="none" stroke="#247deb" stroke-width="1.3"/>
<path id="Vector-2" data-name="Vector" d="M0,8.15V3.685C0,.737.737,0,3.685,0h1.1A1.749,1.749,0,0,1,6.555.884l1.1,1.474a1.172,1.172,0,0,0,1.179.59h2.211c2.948,0,3.685.737,3.685,3.685V8.185" transform="translate(3.035 1.76)" fill="none" stroke="#247deb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
<path id="Vector-3" data-name="Vector" d="M0,0H4.457" transform="translate(8.176 14.74)" fill="none" stroke="#247deb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
<path id="Vector-4" data-name="Vector" d="M0,0H20.809V20.809H0Z" transform="translate(20.809 20.809) rotate(180)" fill="none" opacity="0"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

@ -7,7 +7,6 @@ import { publicApi, user } from "../../../../redux/actions";
import "./index.scss";
//assets
import profilePic from "./profile-pic.svg";
import logoutIcon from "./logout.svg";
import moon from "./moon.svg";
import sms from "./sms.svg";

@ -1,8 +0,0 @@
<svg id="message-text" xmlns="http://www.w3.org/2000/svg" width="22" height="23.237" viewBox="0 0 22 23.237">
<path id="Vector" d="M5.438,0h7.251q5.438,0,5.438,5.809V18.4a.942.942,0,0,1-.906.968H5.438Q0,19.364,0,13.555V5.809Q0,0,5.438,0Z" transform="translate(1.936 1.936)" fill="none" stroke="#247deb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
<g id="Group" transform="translate(6.159 9.198)">
<path id="Vector-2" data-name="Vector" d="M9.682,0H0" fill="#fff" stroke="#247deb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
<path id="Vector-3" data-name="Vector" d="M6.777,0H0" transform="translate(2.905 4.841)" fill="#fff" stroke="#247deb" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
</g>
<path id="Vector-4" data-name="Vector" d="M22,0H0V23.237H22Z" fill="none" opacity="0"/>
</svg>

Before

Width:  |  Height:  |  Size: 874 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 48 KiB

@ -1,8 +0,0 @@
<svg id="wallet-money" xmlns="http://www.w3.org/2000/svg" width="20.809" height="20.809" viewBox="0 0 20.809 20.809">
<path id="Vector" d="M6.2,0V1.76a2.916,2.916,0,0,1-3.1,2.7A2.924,2.924,0,0,1,0,1.76V0C0,1.491,1.387,2.549,3.1,2.549S6.2,1.483,6.2,0Z" transform="translate(3.123 14.619)" fill="none" stroke="rgb(19, 123, 79)" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
<path id="Vector-2" data-name="Vector" d="M6.208,2.688a2.275,2.275,0,0,1-.329,1.179A3.186,3.186,0,0,1,3.1,5.237,3.206,3.206,0,0,1,.329,3.867,2.274,2.274,0,0,1,0,2.688,2.518,2.518,0,0,1,.9.789,3.309,3.309,0,0,1,3.1,0,3.355,3.355,0,0,1,5.289.789,2.465,2.465,0,0,1,6.208,2.688Z" transform="translate(3.113 9.546)" fill="none" stroke="rgb(19, 123, 79)" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
<path id="Vector-3" data-name="Vector" d="M6.2,2.7V5.081C6.2,6.572,4.812,7.63,3.1,7.63S0,6.564,0,5.081V2.7A2.919,2.919,0,0,1,3.1,0,3.355,3.355,0,0,1,5.3.789,2.536,2.536,0,0,1,6.2,2.7Z" transform="translate(3.123 9.538)" fill="none" stroke="rgb(19, 123, 79)" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
<path id="Vector-4" data-name="Vector" d="M4.447.884V2.671a.89.89,0,0,1-.867.884h-1.7A1.849,1.849,0,0,1,.008,1.934,1.741,1.741,0,0,1,.528.52,1.728,1.728,0,0,1,1.777,0h1.8A.89.89,0,0,1,4.447.884Z" transform="translate(14.628 8.627)" fill="none" stroke="rgb(19, 123, 79)" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
<path id="Vector-5" data-name="Vector" d="M0,6.069V4.335A4.035,4.035,0,0,1,3.633.052,4.615,4.615,0,0,1,4.335,0h7.8a3.965,3.965,0,0,1,.65.043,4.044,4.044,0,0,1,3.685,4.292V5.593h-1.8A1.787,1.787,0,0,0,12.9,7.526a1.849,1.849,0,0,0,1.873,1.621h1.7V10.4a4.1,4.1,0,0,1-4.335,4.335H9.971" transform="translate(1.734 3.035)" fill="none" stroke="rgb(19, 123, 79)" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3"/>
<path id="Vector-6" data-name="Vector" d="M0,0H20.809V20.809H0Z" transform="translate(20.809 20.809) rotate(180)" fill="none" opacity="0"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

@ -1,7 +1,8 @@
import React, { useState, useEffect } from "react";
import { connect } from "react-redux";
import { userFactor } from "../../../redux/actions";
import Button from "../../../components/Button";
//components
import Radio from "../../../components/Radio";
import Loading from "../../../components/Loading";

@ -1,7 +1,7 @@
import React, { useState } from "react";
import { connect } from "react-redux";
function PaymentMethods({ paymentMethods, isDark }) {
function PaymentMethods({ paymentMethods }) {
const [activeMethod, setActiveMactiveMethod] = useState(paymentMethods[0]);
const Method = ({ method }) => {
return (

@ -1,9 +1,7 @@
import React, { useState } from "react";
import { connect } from "react-redux";
import Button from "../../../components/Button";
import Radio from "../../../components/Radio";
function TransportDate({ transportDate, isDark, isMobile }) {
function TransportDate({ transportDate, isMobile }) {
const [activeDate, setActiveDate] = useState(transportDate?.times[0]);
const Time = ({ time }) => {
return isMobile ? (

@ -1,4 +1,4 @@
import React, { useEffect, useState } from "react";
import React, { useEffect } from "react";
import separate from "../../../utils/separate";
import { connect } from "react-redux";
import { transport } from "../../../redux/actions";
@ -6,7 +6,6 @@ import Loading from "../../../components/Loading";
function TransportMethod({
list,
isDark,
isMobile,
setTransport,
getList,
@ -14,7 +13,6 @@ function TransportMethod({
userId,
loading,
}) {
const [activeMethod, setActiveMethod] = useState(list[0]);
useEffect(() => {
if (list.length === 0) {

@ -1,20 +1,22 @@
import React, { useState } from "react";
import React from "react";
//assets
import arrow from '../../../assets/icons/dropdown-blue.svg';
import arrow from "../../../assets/icons/dropdown-blue.svg";
function Question({ item, selectFaq }) {
return (
<div
onClick={() => selectFaq(item.id)}
className="w-full flex flex-col my-1.5 lg:mt-4 rounded-sm px-4 py-3 bg-blueC0 bg-opacity-10 dark:bg-opacity-5 lg:my-3 lg:py-5 cursor-pointer shadow-md"
style={{
style={
{
// border: `1px ${!item.active ? "#DBDBDB99" : "#196EC0"} solid`
// transition : 'all 0.5s'
}}
}
}
>
<div className="flex flex-row justify-between items-center">
<strong className="flex-1 text-green4F text-xs lg:text-tiny dark:text-white font-medium">
<strong className="flex-1 text-green4F text-xs lg:text-tiny font-medium dark:text-white lg:text-green4F">
{item.title}
</strong>
<img src={arrow} alt="" />

@ -1,18 +1,11 @@
import React, { useState, useEffect } from "react";
import React from "react";
import { connect } from "react-redux";
import { book } from "../../../../redux/actions";
import { Carousel } from "@trendyol-js/react-carousel";
import arrow from "../../../../assets/icons/dropdown-blue.svg";
import { Link } from "react-router-dom";
import Product from "../../../../components/Product";
import Button from "../../../../components/Button";
const Part2 = ({ books, grades }) => {
const [filter, setFilter] = useState({
search: "",
grade: "",
productsType: "کتاب",
});
const Part2 = ({ books }) => {
return (
<div
className="w-full my-6"

@ -1,63 +1,10 @@
import React from "react";
import Button from "../../../../components/Button";
import VodProduct from "../../../../components/VodProduct";
import { Link } from "react-router-dom";
//assets
import posterImage from "../../../../assets/images/poster.svg";
const Part4 = ({ books, grades }) => {
const videosData = [
{
id: 0,
name: "ریاضی",
price: "145.000",
grade: " پایه چهارم ",
imageUrl: "https://dnvn.ir/api/v1/file/2105",
poster: posterImage,
},
{
id: 2,
name: "علوم تجربی",
price: "145.000 ",
grade: "پایه سوم",
imageUrl: "https://dnvn.ir/api/v1/file/2105",
poster: posterImage,
},
{
id: 1,
name: "زمین شناسی",
price: "145.000 ",
grade: "پایه چهارم",
imageUrl: "https://dnvn.ir/api/v1/file/2105",
poster: posterImage,
},
{
id: 3,
name: "ریاضی",
price: "145.000 ",
grade: "پایه چهارم",
imageUrl: "https://dnvn.ir/api/v1/file/2105",
poster: posterImage,
},
{
id: 5,
name: "ریاضی",
price: "145.000 ",
grade: "پایه چهارم",
imageUrl: "https://dnvn.ir/api/v1/file/2105",
poster: posterImage,
},
{
id: 4,
name: "ریاضی",
price: "145.000 ",
grade: "پایه چهارم",
imageUrl: "https://dnvn.ir/api/v1/file/2105",
poster: posterImage,
},
];
return (
<div className="w-full my-6">
<div className="w-full flex justify-between items-center">

@ -1,22 +1,16 @@
import React, { useState, useEffect } from "react";
import React from "react";
import { connect } from "react-redux";
import { book, publicApi } from "../../../../redux/actions";
// import ScrollContainer from "react-indiana-drag-scroll";
import { book } from "../../../../redux/actions";
import { Carousel } from "@trendyol-js/react-carousel";
//assets
import arrow from "../../../../assets/icons/dropdown-blue.svg";
import { Link } from "react-router-dom";
import Product from "../../../../components/Product";
import "./index.css";
//assets
import bookImage from "../../../../assets/images/olum-1.svg";
const SalesContainer = ({ books }) => {
const [filter, setFilter] = useState({
search: "",
grade: "",
productsType: "کتاب",
});
return (
<div className="w-full my-10">
<div className="w-full py-10 pl-2 bg-white flex justify-between items-center gap-3">

@ -1,8 +1,8 @@
import React, { useState, useEffect } from "react";
import React, { useEffect } from "react";
import { connect } from "react-redux";
import SalesContainer from "./SalesContainer";
import { book, publicApi, product } from "../../../redux/actions";
import { book, publicApi } from "../../../redux/actions";
import Part2 from "./Part2";
import HomeImg from "../../../assets/images/HomeImg.png";
import Part4 from "./Part4";
@ -57,12 +57,6 @@ const DesktopHome = ({ grades, getBooks, books }) => {
return (
<div className="flex flex-col items-center w-11/12 justify-center py-24">
{/* <Banners
mainBanner='https://dkstatics-public.digikala.com/digikala-adservice-banners/d2a56a4a0c3ce4645bf0b405b0bbf3a29da1cbd3_1642861192.jpg'
midBottomBanner='https://dkstatics-public.digikala.com/digikala-adservice-banners/e13aefeda2d3b44db78a92aac9cdc82a9b1650e9_1632230372.jpg?'
leftBanner=
midTopBanner='https://dkstatics-public.digikala.com/digikala-adservice-banners/fe8f275f4e4b5e6eb2f66cf65f3895398e049b40_1625578273.jpg'
/> */}
<div className="w-full">
<Design2D array={banners} />
</div>

@ -1,4 +1,4 @@
import React, { useEffect } from "react";
import React from "react";
import { Link } from "react-router-dom";
import { connect } from "react-redux";
import _ from "lodash";

@ -1,4 +1,4 @@
import React, { useEffect } from "react";
import React from "react";
import { Link } from "react-router-dom";
import { connect } from "react-redux";
import { book } from "../../../../../redux/actions";

@ -1,4 +1,4 @@
import React, { useEffect } from "react";
import React from "react";
import { Link } from "react-router-dom";
import { ScrollingCarousel } from "@trendyol-js/react-carousel";
import { connect } from "react-redux";

@ -1,4 +1,4 @@
import React, { useEffect } from "react";
import React from "react";
import { connect } from "react-redux";
import Public from "./Public";
import Private from "./Private";

@ -1,6 +1,6 @@
import React, { useEffect } from "react";
import { connect } from "react-redux";
// import Landscape from "./Landscape";
import DesktopHome from './Desktop';
import Portrait from "./Portrait";
import { publicApi } from "../../redux/actions";

@ -1,7 +1,6 @@
import React, { useEffect } from "react";
import React from "react";
import Order from "./components/Order";
import { connect } from "react-redux";
import { publicApi } from "../../redux/actions";
//assets
import bookImage from "../../assets/images/book-mini.svg";
@ -15,7 +14,7 @@ function Orders({ orders }) {
);
}
const mapStateToProps = (state) => ({});
const mapStateToProps = () => ({});
const mapDispatchToProps = {
};

@ -1,7 +1,6 @@
import React, { useState, useEffect } from "react";
import React, { useState } from "react";
import { connect } from "react-redux";
import { Link } from "react-router-dom";
import { toast } from "react-toastify";
import { book, userProduct, publicApi } from "../../../../redux/actions";
import Button from "../../../../components/Button";
import StarRating from "../../../../components/StarRating";

@ -3,7 +3,6 @@ import ProductOverAll from "./ProductOverAll";
import ProductTab from "../../../components/ProductTab";
import ProductSuggestions from "../../../components/ProductSuggestion";
import Rate from "../Rate";
import Comment from "../Comment";
import Comments from "../../../components/Comments";
import QandA from "../../../components/QandA";

@ -25,56 +25,6 @@ export const Products = ({
setHeaderOptions(headerOptions);
}, []);
const Product = ({ productsType, product, index }) => {
return (
<>
{productsType === "کتاب" && (
<Link
to={"/products/" + product?.id}
className={`w-1/2 flex flex-col border-t border-grayDB dark:border-gray45 p-3 border-solid ${
index % 2 === 0 ? "border-l" : ""
}`}
>
<img
src={"https://dnvn.ir/api/v1/file/" + product?.fileIds}
className="w-full rounded-md mb-2"
/>
<strong className="text-blue5F dark:text-white text-sm font-bold mb-1">
{product?.name}
</strong>
<span className="text-xs text-blueC0 dark:text-white font-light mb-4">
{"پایه" + " " + grades[product?.gradeId]}
</span>
<div className="w-full flex flex-row justify-center font-medium text-sm text-blue5F dark:text-white">
{1399 + " " + "تومان"}
</div>
</Link>
)}
{productsType === "ویديو" && (
<Link
to={"/products" + product?.name}
className={`w-full flex flex-col border-grayDB dark:border-gray45 p-3 border-solid mb-2 shadow-md`}
>
<img
src={"https://dnvn.ir/api/v1/file/" + product?.fileIds}
className="w-full rounded-md mb-2"
style={{ height: "calc(100vh / 5)" }}
/>
<strong className="text-blue5F dark:text-white text-tiny font-bold mb-2">
{product?.name}
</strong>
<span className="text-sm text-blueC0 dark:text-white font-light mb-4">
{"پایه" + " " + grades[product?.gradeId]}
</span>
<div className="w-full flex flex-row justify-center font-medium text-tiny text-blue5F dark:text-white">
{1399 + " " + "تومان"}
</div>
</Link>
)}
</>
);
};
return (
<>
{/* Portrait */}

@ -161,10 +161,10 @@ export const Main = ({ books, grades, sortMethods, filterOptions }) => {
</span>
</div>
<ul className="flex py-0 flex-1 gap-4">
{sortMethods.map((item, index) => (
{sortMethods?.map((item, index) => (
<li
key={index}
className="text-sm rounded py-2 px-3 transition-all duration-700 hover:bg-greenBA hover:bg-opacity-5 hover:text-greenBA cursor-pointer"
className="text-sm rounded text-black py-2 px-3 transition-all duration-700 hover:bg-greenBA hover:bg-opacity-5 hover:text-greenBA cursor-pointer"
>
{item}
</li>
@ -199,7 +199,7 @@ Main.defaultProps = {
const mapStateToProps = (state) => ({
isDark: state.publicApi.isDark,
isMobile: state.publicApi.isMobile,
sortMethods: state.book.sortMethods,
sortMethods: state.book.sortFilters,
filterOptions: state.book.filterOptions,
});

@ -20,14 +20,33 @@ export const Sidebar = ({
productType: false,
});
const dropdownActionMap = {
subject: () =>
setToggleList({
subject: !toggleList.subject,
grade: false,
productType: false,
}),
grade: () =>
setToggleList({
grade: !toggleList.grade,
subject: false,
productType: false,
}),
productType: () =>
setToggleList({
productType: !toggleList.productType,
grade: false,
subject: false,
}),
};
const Dropdown = ({ list, title, name, active }) => {
return (
<div className="flex flex-col">
<div
className="flex flex-row justify-between items-center py-5 cursor-pointer"
onClick={() =>
setToggleList({ ...toggleList, [name]: !toggleList[name] })
}
onClick={() => dropdownActionMap[name]()}
>
<strong className="font-semibold text-tiny text-green4F">
{title}

@ -1,4 +1,4 @@
import React, { useState, useEffect } from "react";
import React, { useEffect } from "react";
import { connect } from "react-redux";
import { publicApi } from "../../../redux/actions";
import { useNavigate } from "react-router-dom";
@ -8,7 +8,6 @@ import laptopImage from "../../../assets/images/laptop.svg";
const facingMode = ["environment", "user"];
export const Scan = ({
headerOptions,
setHeaderOptions,
}) => {
const navigate = useNavigate();

@ -1,4 +1,4 @@
import React, {useState} from "react";
import React from "react";
import { connect } from "react-redux";
import { userFactor } from "../../../redux/actions";

@ -18,14 +18,10 @@ function ShoppingCart({
isDark,
isMobile,
list,
payPrice,
factorInfo,
user,
hasPhysical,
getList,
getInfo,
getFactorInfo,
payFactor,
headerOptions,
setHeaderOptions,
desktopContentTransform,

@ -22,6 +22,7 @@ const Season = ({
"season",
location.getId() + "," + seasonId + "," + videoId
);
};
const duration = (value) => {

@ -5,7 +5,6 @@ import { Link } from "react-router-dom";
import { publicApi, userProduct } from "../../redux/actions";
import location from "../../utils/location";
import separate from "../../utils/separate";
import Divider from "../../components/Divider";
import Season from "./components/Season";
import Videos from "./components/Desktop/Videos";
import StarRating from "../../components/StarRating";
@ -14,7 +13,6 @@ import ProductTab from "../../components/ProductTab";
import Table from "./components/Desktop/Table";
//assets
import poster from "../../assets/images/poster.svg";
import tickIcon from "../../components/ProductStatusCard/tick-circle.svg";
import arrow from "../../assets/icons/dropdown-blue.svg";
@ -22,7 +20,6 @@ function Video({
isLogin,
pushToCart,
userId,
product,
isMobile,
isDark,
headerOptions,
@ -31,10 +28,7 @@ function Video({
getBook,
book,
seasons,
tabs,
}) {
const [type, setType] = useState(0);
useEffect(() => {
getBook({ bookId: location.getId() }, { id: location.getId(), vod: true });
setHeaderOptions(headerOptions);

@ -1,8 +1,7 @@
import React, { useState } from "react";
import React from "react";
import { Link } from "react-router-dom";
const Season = ({ season }) => {
const [activeSeason, setActiveSeason] = useState(null);
const Unit = ({ unit }) => {
return (
<div className="w-full flex flex-col rounded-md overflow-hidden mb-3 border border-solid border-blueFE dark:border-opacity-60 bg-blueFF dark:bg-opacity-10">

@ -2,20 +2,13 @@ import React, { useState, useEffect } from "react";
import { connect } from "react-redux";
import { publicApi } from "../../redux/actions";
import PlayList from "../../components/CourseChapter";
import VideoPlayer from "../../components/VideoPlayer";
import JolPlayer from "../../components/JolPlayer";
import poster from "../../assets/images/poster.svg";
import Divider from "../../components/Divider";
import Season from "./components/Season";
function VideoDisplay({
isMobile,
headerOptions,
setHeaderOptions,
book,
seasons,
grades,
getBook,
getSeason,
selectedVideo,

@ -1,13 +1,10 @@
import React, { useState, useEffect } from "react";
import { connect } from "react-redux";
import { publicApi, book } from "../../redux/actions";
import Search from "../../components/Search";
import VerticalGradeFilter from "./components/VerticalGradeFilter";
import Divider from "../../components/Divider";
import MostViewedVideo from "./components/MostViewedVideo";
import NewestVideo from "./components/NewestVideo";
//assets
import searchLight from "../../assets/icons/search-light.svg";
function Videos({ headerOptions, setHeaderOptions, getList, videos, grades }) {
const [search, setSearch] = useState("");

Loading…
Cancel
Save