reza added footer

master
Reza_ashrafi 3 years ago
parent 050c6102c0
commit a8b5d34d4d
  1. 63
      src/views/Home/Footer/index.js
  2. 60
      src/views/Home/Footer/index.scss
  3. 39
      src/views/Home/HomeSlider/Blog/index.js
  4. 55
      src/views/Home/HomeSlider/Blog/index.scss
  5. 10
      src/views/Home/HomeSlider/Header/index.js
  6. 19
      src/views/Home/HomeSlider/Header/index.scss
  7. 39
      src/views/Home/HomeSlider/Simple/index.js
  8. 54
      src/views/Home/HomeSlider/Simple/index.scss
  9. 78
      src/views/Home/HomeSlider/index.js
  10. 2
      src/views/Home/HomeSlider/index.scss
  11. 26
      src/views/Home/Membership/Input/index.js
  12. 21
      src/views/Home/Membership/index.js
  13. 62
      src/views/Home/Membership/index.scss
  14. 306
      src/views/Home/index.js

@ -1,7 +1,68 @@
import React, { Component } from "react";
import './index.scss';
export default class Footer extends Component {
render() {
return <footer className="footer"></footer>;
const {fastAccess} = this.props;
return (
<footer className="footer d-flex flex-column">
<div className="footer-container d-flex">
<div className="footer-container__content d-flex">
<div className="footer-container__content--box first d-flex flex-column">
<h1>دانوین کجاست؟</h1>
<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه </p>
<div className="footer__location d-flex">
{/* <img src={} /> */}
<p>تهران خیابان انقلاب اسلامی بن بست سروش پلاک 2 طبقه چهار</p>
</div>
<div className="d-flex">
<div className="d-flex">
{/* <img src={} /> */}
<strong>Info@Danovin.ir</strong>
</div>
<div className="d-flex">
{/* <img src={} /> */}
<strong>021-63462405</strong>
</div>
</div>
</div>
<div className="footer-container__content--box second d-flex flex-column">
<h1>دسترسی سریع</h1>
<ul>
{
fastAccess.map(item => (
<li>{item.name}</li>
))
}
</ul>
</div>
<div className="footer-container__content--box second d-flex flex-column">
<h1>دسترسی سریع</h1>
<ul>
{
fastAccess.map(item => (
<li>{item.name}</li>
))
}
</ul>
</div>
</div>
</div>
<div className="footer__privacy d-flex align-items-center">
<p>تمامی حقوق این وبسایت متعلق به دانوین می باشد. 1400</p>
</div>
</footer>
);
}
}
Footer.defaultProps = {
fastAccess : [
{name : 'صفحه اصلی', to : '/'},
{name : 'فروشگاه', link : '/shop'},
{name : 'سوالات متداول', link : '/faq'},
{name : 'درباره ما', link : '/about'},
{name : 'تماس با ما', link : '/call'},
]
};

@ -0,0 +1,60 @@
.footer{
width : 100%;
background-color: rgb(80, 80, 80);
&-container{
width : 100%;
max-width: 1250px;
margin: 0px auto;
&__content{
flex: 1;
padding-bottom: 40px;
.first{
color: white;
flex: 1;
h1{
font-size: calc(100vw / 80);
}
p{
margin-top: 8px;
font-size: calc(100vw / 130);
max-width: 80%;
}
& strong{
font-size: calc(100vw / 120);
}
}
.second{
flex: 0.75;
color: white;
h1{
font-size: calc(100vw / 80);
}
ul{
list-style: none;
padding: 0px;
li{
font-size: calc(100vw / 130);
margin-top: 5px;
}
}
}
&--box{
margin-left: 15px;
padding-top: 40px;
justify-content: flex-start;
text-align: right;
}
}
}
&__privacy{
width : 100%;
justify-content: center;
color: white;
background-color: rgba(34, 34, 34, 0.316);
padding: 15px 0px;
p{
font-size: calc(100vw / 130);
margin-bottom:0px;
}
}
}

@ -0,0 +1,39 @@
import React, { Component } from 'react';
import {Link} from 'react-router-dom';
import './index.scss';
export default class Simple extends Component {
render() {
const { height, data } = this.props;
return(
<article className="slider-blog d-flex flex-column"
style={{
height: height,
}}>
<Link to={`/books/${data.id}`}>
<img src={data.image} alt={data.title} />
<h1>{data.title}</h1>
<h2>{data.subTitle}</h2>
{
data.price ?
<div className="slider-blog__price d-flex justify-content-center">
{
data.oldPrice ?
<div>
<div className="slider-blog__price--old d-flex">
{data.oldPrice} تومان
<span></span>
</div>
</div> : null
}
<div>{data.price} تومان</div>
</div> :
<div className="slider-blog__notAvailabe">ناموجود</div>
}
</Link>
</article>
);
}
}

@ -0,0 +1,55 @@
.slider-blog{
margin : 10px;
padding: 10px 15px;
box-shadow: 0px 0px 5px rgb(200, 200, 200);
border-radius: 15px;
a{
width : 100%;
text-decoration: none;
color: green;
&:hover{
color: green;
}
img{
width: 100%;
height: 300px;
border-radius: 10px;
}
h1{
margin-top: 15px;
font-size: calc(100vw / 80);
}
h2{
margin-top: 10px;
font-size: calc(100vw / 95);
color: #afafaf;
}
}
&__notAvailabe{
font-size: calc(100vw / 85);
width : 100%;
text-align: center;
color: #afafaf;
margin-top: 15px;
}
&__price{
font-size: calc(100vw / 85);
width : 100%;
margin-top: 15px;
text-align: center;
&--old{
color: #afafaf;
position: relative;
margin-left: 10px;
align-items:center;
span{
position: absolute;
left: 0px;
width : 100%;
height: 2px;
background-color: #afafafa3;
transform: rotate(-14deg);
}
}
}
}

@ -10,15 +10,13 @@ export default class Header extends Component {
style={{
minWidth: `${data.width}`,
height: height,
background: `url(${data.image})`,
backgroundRepeat: 'no-repeat',
backgroundSize: 'cover'
}}
className="slider-header d-flex"
>
<div
style={{ backgroundColor: data.backgroundColor }}
className="slider-header__right d-flex align-items-center"
>
<img src={data.image} alt={data.title} />
</div>
{/* <img src={data.image} alt={data.title} /> */}
<div
style={{ backgroundColor: data.backgroundColor }}
className="slider-header__left d-flex flex-column"

@ -1,19 +1,18 @@
.slider-header{
justify-content: space-between;
&__right{
width: 50%;
height: 100%;
& img{
width: 100%;
height: 100%;
}
}
width : 100%;
justify-content: flex-end;
&__left{
width: 50%;
width: 40%;
height: 100%;
justify-content : center;
align-items: flex-end;
padding-left: 70px;
& img{
width : 100%;
z-index: -1;
height : 100%;
object-fit: cover;
}
h1{
font-size: calc(100vw / 50);
color: white;

@ -0,0 +1,39 @@
import React, { Component } from 'react';
import {Link} from 'react-router-dom';
import './index.scss';
export default class Simple extends Component {
render() {
const { height, data } = this.props;
return(
<article className="slider-simple d-flex flex-column"
style={{
height: height,
}}>
<Link to={`/books/${data.id}`}>
<img src={data.image} alt={data.title} />
<h1>{data.title}</h1>
<h2>{data.subTitle}</h2>
{
data.price ?
<div className="slider-simple__price d-flex justify-content-center">
{
data.oldPrice ?
<div>
<div className="slider-simple__price--old d-flex">
{data.oldPrice} تومان
<span></span>
</div>
</div> : null
}
<div>{data.price} تومان</div>
</div> :
<div className="slider-simple__notAvailabe">ناموجود</div>
}
</Link>
</article>
);
}
}

@ -0,0 +1,54 @@
.slider-simple{
padding: 10px;
border-bottom: 1px solid #dfdfdf;
a{
width : 100%;
text-decoration: none;
color: green;
&:hover{
color: green;
}
img{
width: 100%;
height: 300px;
border-top-left-radius: 15px;
border-top-right-radius: 15px;
}
h1{
margin-top: 15px;
font-size: calc(100vw / 80);
}
h2{
margin-top: 10px;
font-size: calc(100vw / 95);
color: #afafaf;
}
}
&__notAvailabe{
font-size: calc(100vw / 85);
width : 100%;
text-align: center;
color: #afafaf;
margin-top: 15px;
}
&__price{
font-size: calc(100vw / 85);
width : 100%;
margin-top: 15px;
text-align: center;
&--old{
color: #afafaf;
position: relative;
margin-left: 10px;
align-items:center;
span{
position: absolute;
left: 0px;
width : 100%;
height: 2px;
background-color: #afafafa3;
transform: rotate(-14deg);
}
}
}
}

@ -1,38 +1,71 @@
import React, { Component } from "react";
import Carousel from "react-elastic-carousel";
import ChevronLeftIcon from "@material-ui/icons/ChevronLeft";
import Simple from './Simple/index';
import Header from "./Header/index";
import Blog from "./Blog/index";
import "./index.scss";
const SimpleHeader = (props) => {
return(
<div className="home-scroll__header d-flex">
<h1>{props.title}</h1>
<div className="home-scroll__header--more d-flex">
<span>موارد بیشتر</span>
<ChevronLeftIcon
style={{
width: 20,
height: 20,
color: "black",
marginRight: 1,
}}
/>
</div>
</div>
);
}
const TabHeader = (props) => {
return(
<div className="home-scroll__header d-flex">
<h1>{props.title}</h1>
<div className="home-scroll__header--more d-flex">
<span>موارد بیشتر</span>
<ChevronLeftIcon
style={{
width: 20,
height: 20,
color: "black",
marginRight: 1,
}}
/>
</div>
</div>
);
}
export default class HomeSlider extends Component {
render() {
const { data, title, height, designType } = this.props;
const { data, title, height, designType, number } = this.props;
let header;
if(title){
if(designType === 'simple' || designType === 'blog'){
header = (<SimpleHeader title={title} />);
}else if(designType === 'tab'){
header = (<TabHeader title={title} />);
}
}
return (
<div
className={
title ? "home-slider d-flex flex-column" : "home-slider d-flex"
}
>
{title ? (
<div className="home-scroll__header d-flex">
<h1>{title}</h1>
<div className="home-scroll__header--more d-flex">
<span>موارد بیشتر</span>
<ChevronLeftIcon
style={{
width: 20,
height: 20,
color: "black",
marginRight: 1,
}}
/>
</div>
</div>
) : null}
{header}
<Carousel
itemsToShow={1}
itemsToShow={number}
isRTL={true}
enableTilt={false}
showArrows={true}
@ -53,7 +86,14 @@ const Item = (props) => {
{props.designType === "header" ? (
<Header height={props.height} data={props.data} />
) : null}
{props.designType === "simple" || props.designType === "tab" ? (
<Simple height={props.height} data={props.data} />
) : null}
{props.designType === "blog" ? (
<Blog height={props.height} data={props.data} />
) : null}
</>
//
);
};

@ -1,7 +1,7 @@
.home-slider {
width: 100%;
padding: 2px 0px 0px;
margin: 0px 0px 10px;
margin: 10px 0px 10px;
position: relative;
}

@ -0,0 +1,26 @@
import React from 'react';
import TextField from '@material-ui/core/TextField';
import { makeStyles } from '@material-ui/core/styles';
const useStyles = makeStyles((theme) => ({
root: {
'& .MuiTextField-root': {
width: '200px',
position : 'relative',
marginRight : 10,
},
},
}));
export default function FormPropsTextFields(props) {
const classes = useStyles();
return (
<form className={classes.root} noValidate autoComplete="off">
<div>
<TextField id="outlined-basic" name={props.name} label={props.label} variant="outlined" />
</div>
</form>
);
}

@ -0,0 +1,21 @@
import React, { Component } from "react";
import Input from './Input/index';
import "./index.scss";
export default class Membership extends Component {
render() {
return (
<div className="membership d-flex">
<div className="d-flex flex-column">
<h1><strong>دانوینی</strong> شو</h1>
<p>مشخصات خودت رو وارد کنید و امتیاز هدیه بگیرید</p>
</div>
<div className="d-flex">
<Input label={'نامونام خانوادگی'} name={'name'} />
<Input label={'شماره تماس'} name={'mobile'} />
<button className="membership__submit">دریافت هدیه</button>
</div>
</div>
);
}
}

@ -0,0 +1,62 @@
.membership {
width: 100%;
padding: 30px 20px;
box-shadow: 0px 0px 5px rgb(200, 200, 200);
border-radius: 7px;
justify-content: space-between;
align-items:center;
flex: 1;
margin-top: 20px;
margin-bottom: 20px;
h1{
font-size: calc(100vw / 60);
margin-bottom: 0px;
color: green;
strong{
color: white;
background-color: green;
padding:0px 5px;
}
}
p{
margin-bottom: 0px;
}
.MuiOutlinedInput-notchedOutline{
top: 0px !important;
}
.MuiOutlinedInput-input{
padding : 20px 14px !important;
}
.MuiInputLabel-outlined{
display : inline;
position: absolute;
right: 4px;
top: 12px;
transform: translate(0px, 0px) scale(1) !important;
}
.MuiInputLabel-shrink{
display : inline;
position: absolute;
right: -23px;
top: -8px;
transform: translate(0px, 0px) scale(0.75) !important;
}
label{
background-color: white;
max-width: 120px;
text-align: center;
font-size: 14px !important;
}
&__submit {
border: 0px;
background-color: green;
color: white;
border-radius: 5px;
padding : 7px 50px;
margin-right: 20px;
}
}

@ -7,6 +7,7 @@ import HomeScroll from "./HomeScroll/index";
import Footer from "./Footer/index";
import HomeSlider from "./HomeSlider/index";
import HomeSearch from "./HomeSearch/index";
import Membership from "./Membership/index";
import pic from "../../assets/images/pic.png";
@ -20,13 +21,14 @@ export default class Home extends Component {
type: "slider",
title: "",
height: 380,
designType: "header",
design: "header",
number: 1,
data: [
{
id: 0,
image: pic,
width: "100%",
backgroundColor: "rgb(18, 159, 253)",
backgroundColor: "rgba(18, 159, 253,0.3)",
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "کاملا تضمینی با نمونه های موفق انفجاری",
},
@ -34,7 +36,7 @@ export default class Home extends Component {
id: 1,
image: pic,
width: "100%",
backgroundColor: "rgb(18, 159, 253)",
backgroundColor: "rgba(18, 159, 253,0.3)",
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "کاملا تضمینی با نمونه های موفق انفجاری",
},
@ -42,7 +44,7 @@ export default class Home extends Component {
id: 2,
image: pic,
width: "100%",
backgroundColor: "rgb(18, 159, 253)",
backgroundColor: "rgba(18, 159, 253,0.3)",
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "کاملا تضمینی با نمونه های موفق انفجاری",
},
@ -81,51 +83,313 @@ export default class Home extends Component {
data: ["همه", "پرفروش"],
},
{
type: "scroll",
title: "لیست محصولات",
height: 250,
type: "slider",
title: "پرفروشترین کتابهای دانوین",
height: 470,
design: "simple",
number: 4,
data: [
{
id: 0,
image: pic,
width: "80%",
link: "",
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه دهم ابتدایی",
price : '78.000',
oldPrice: '',
date : new Date(),
},
{
id: 1,
image: pic,
width: "50%",
link: "",
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه ششم ابتدایی",
price : '39.000',
oldPrice: '59.000',
date : new Date(),
},
{
id: 2,
image: pic,
width: "40%",
link: "",
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه ششم ابتدایی",
price : '21.000',
oldPrice: '',
},
{
id: 3,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه دهم ابتدایی",
price : '',
oldPrice: '',
},
{
id: 4,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه هفتم ابتدایی",
price : '59.000',
oldPrice: '',
},
{
id: 5,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه دهم ابتدایی",
price : '78.000',
oldPrice: '',
date : new Date(),
},
{
id: 6,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه ششم ابتدایی",
price : '39.000',
oldPrice: '59.000',
date : new Date(),
},
{
id: 7,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه ششم ابتدایی",
price : '21.000',
oldPrice: '',
date : new Date(),
},
{
id: 8,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه دهم ابتدایی",
price : '',
oldPrice: '',
date : new Date(),
},
{
id: 9,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه هفتم ابتدایی",
price : '59.000',
oldPrice: '',
date : new Date(),
},
],
},
{
type: "header",
title: "عنوان سایت",
height: 200,
type: "slider",
title: "جدیدترین کتابهای دانوین",
height: 470,
design: "tab",
number: 4,
data: [
{
id: 0,
image: pic,
width: 100,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه دهم ابتدایی",
price : '78.000',
oldPrice: '',
date : new Date(),
},
{
id: 1,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه ششم ابتدایی",
price : '39.000',
oldPrice: '59.000',
date : new Date(),
},
{
id: 2,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه ششم ابتدایی",
price : '21.000',
oldPrice: '',
},
{
id: 3,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه دهم ابتدایی",
price : '',
oldPrice: '',
},
{
id: 4,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه هفتم ابتدایی",
price : '59.000',
oldPrice: '',
},
{
id: 5,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه دهم ابتدایی",
price : '78.000',
oldPrice: '',
date : new Date(),
},
{
id: 6,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه ششم ابتدایی",
price : '39.000',
oldPrice: '59.000',
date : new Date(),
},
{
id: 7,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه ششم ابتدایی",
price : '21.000',
oldPrice: '',
date : new Date(),
},
{
id: 8,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه دهم ابتدایی",
price : '',
oldPrice: '',
date : new Date(),
},
{
id: 9,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه هفتم ابتدایی",
price : '59.000',
oldPrice: '',
date : new Date(),
},
],
},
{
type: "slider",
title: "بلاگ",
height: 470,
design: "blog",
number: 3,
data: [
{
id: 0,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه دهم ابتدایی",
price : '78.000',
oldPrice: '',
date : new Date(),
},
{
id: 1,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه ششم ابتدایی",
price : '39.000',
oldPrice: '59.000',
date : new Date(),
},
{
id: 2,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه ششم ابتدایی",
price : '21.000',
oldPrice: '',
},
{
id: 3,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه دهم ابتدایی",
price : '',
oldPrice: '',
},
{
id: 4,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه هفتم ابتدایی",
price : '59.000',
oldPrice: '',
},
{
id: 5,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه دهم ابتدایی",
price : '78.000',
oldPrice: '',
date : new Date(),
},
{
id: 6,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه ششم ابتدایی",
price : '39.000',
oldPrice: '59.000',
date : new Date(),
},
{
id: 7,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه ششم ابتدایی",
price : '21.000',
oldPrice: '',
date : new Date(),
},
{
id: 8,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه دهم ابتدایی",
price : '',
oldPrice: '',
date : new Date(),
},
{
id: 9,
image: pic,
title: "منفجر کردن مغز خود را به ما بسپارید",
subTitle: "پایه هفتم ابتدایی",
price : '59.000',
oldPrice: '',
date : new Date(),
},
],
},
{
type: "membership",
},
],
};
}
render() {
const { homeData } = this.state;
return (
<>
<div className="home d-flex flex-column">
<Navbar />
{homeData.map((item, i) => (
<Identifier item={item} key={i} />
))}
<Footer />
</div>
<Footer />
</>
);
}
}
@ -156,7 +420,8 @@ const Identifier = (props) => {
) : null}
{props.item.type === "slider" ? (
<HomeSlider
designType={props.item.designType}
designType={props.item.design}
number={props.item.number}
height={props.item.height}
title={props.item.title}
data={props.item.data}
@ -165,6 +430,9 @@ const Identifier = (props) => {
{props.item.type === "search" ? (
<HomeSearch height={props.item.height} data={props.item.data} />
) : null}
{props.item.type === "membership" ? (
<Membership />
) : null}
</>
);
};

Loading…
Cancel
Save