|
@@ -0,0 +1,57 @@
|
|
|
+import {Provider, connect} from 'react-redux';
|
|
|
+import {createStore, combineReducers, applyMiddleware, bindActionCreators} from 'redux';
|
|
|
+import thunk from 'redux-thunk';
|
|
|
+import {actionPromise} from "./index"
|
|
|
+import {gql, actionGoods} from "../reducers/index";
|
|
|
+import { useEffect } from 'react';
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+const OneGood = ({className = "oneGood", image, name, price}) => {
|
|
|
+ return (
|
|
|
+ <>
|
|
|
+ <div>
|
|
|
+ <h5>{name}</h5>
|
|
|
+ <span>{price}грн</span>
|
|
|
+ <img src = {`http://shop-roles.asmer.fs.a-level.com.ua/${image}`}/>
|
|
|
+ </div>
|
|
|
+ </>
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ const Goods = ({className = "goods", state, goods = [], getData, id}) => {
|
|
|
+ useEffect(() => goods.length == 0 && getData(id), [id])
|
|
|
+ console.log(goods)
|
|
|
+ return(
|
|
|
+ <>
|
|
|
+ <h1>{id}</h1>
|
|
|
+ <div className = {className}>
|
|
|
+
|
|
|
+ {}
|
|
|
+ {goods.map(good => <OneGood name = {good.name} price = {good.price} image = {good.images[0].url}/>)}
|
|
|
+ </div>
|
|
|
+ </>
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ const getGoods = state => {
|
|
|
+ console.log(state);
|
|
|
+
|
|
|
+ if(state.promiseRed.goods && state.promiseRed.goods.payload) {
|
|
|
+ return state.promiseRed.goods.payload.data.GoodFind
|
|
|
+ }
|
|
|
+
|
|
|
+ return [];
|
|
|
+ };
|
|
|
+
|
|
|
+ const mapStateToProps = state => ({
|
|
|
+ state: state,
|
|
|
+ goods: getGoods(state)
|
|
|
+ });
|
|
|
+
|
|
|
+ const mapDispatchToProps = dispatch => bindActionCreators({
|
|
|
+ getData: actionGoods
|
|
|
+ }, dispatch);
|
|
|
+
|
|
|
+ export default connect(mapStateToProps, mapDispatchToProps)(Goods);
|