You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.4 KiB
83 lines
2.4 KiB
import React, { useEffect, useState } from "react"; |
|
import Class from "../../components/products/classes"; |
|
import { book, publicApi } from "../../redux/actions"; |
|
import { connect } from 'react-redux'; |
|
import { Link } from "react-router-dom"; |
|
import Product from '../../components/Product'; |
|
const Services = ({ isMobile, |
|
books, |
|
getList, |
|
grades, |
|
gradeFilter, |
|
selectedGrade, |
|
gradeFilterBooks, |
|
setHeaderOptions, |
|
headerOptions, |
|
videos, |
|
}) => { |
|
|
|
const [filter, setFilter] = useState({ |
|
search: "", |
|
grade: "", |
|
productsType: "کتاب", |
|
}); |
|
|
|
|
|
const onChange = (name, value) => { |
|
setFilter({ ...filter, [name]: value }); |
|
}; |
|
|
|
useEffect(() => { |
|
getList(); |
|
setHeaderOptions(headerOptions); |
|
}, []); |
|
|
|
useEffect(() => { |
|
gradeFilter(filter.grade); |
|
}, [filter]); |
|
|
|
|
|
return ( |
|
<div className="" style={{ width: '93.5%', marginRight: '6.5%', marginTop: '8.5%' }}> |
|
<div> |
|
{books?.map((product, index) => ( |
|
<Link to={"/class/" + product?.id}> |
|
<Product |
|
key={index} |
|
productsType={filter.productsType} |
|
product={product} |
|
index={Number(index)} |
|
productName={`${product?.name}`} |
|
productCat={`پایه ${grades[product?.gradeId]}`} |
|
productPrice={100000} |
|
// productImg={"https://dnvn.ir/api/v1/file/" + product?.fileIds} |
|
numberOfRegards={160} |
|
productHolderBorder='' |
|
productHolderHoverBorder='shadow-md' |
|
teacher={product.vodTeacher} |
|
|
|
/> |
|
</Link> |
|
|
|
))} |
|
</div> |
|
</div> |
|
); |
|
}; |
|
|
|
const mapStateToProps = (state) => ({ |
|
isDark: state.publicApi.isDark, |
|
isMobile: state.publicApi.isMobile, |
|
books: state.book.list, |
|
grades: state.publicApi.grades, |
|
gradeFilterBooks: state.book.gradeFilterBooks, |
|
selectedGrade: state.book.selectedGrade, |
|
}); |
|
|
|
const mapDispatchToProps = { |
|
getList: book.list, |
|
gradeFilter: book.gradeFilter, |
|
setHeaderOptions: publicApi.setHeaderOptions, |
|
}; |
|
|
|
export default connect(mapStateToProps, mapDispatchToProps)(Services);
|
|
|