Просмотр исходного кода

start redux connect 2

pull/5/head
Pavle Golubovic 3 лет назад
Родитель
Сommit
cec5abee3f

+ 14
- 6
src/pages/ItemDetailsPage/ItemDetailsPageMUI.js Просмотреть файл

import React, { useEffect } from "react"; import React, { useEffect } from "react";
import Navbar from "../../components/MUI/NavbarComponent"; import Navbar from "../../components/MUI/NavbarComponent";
import { ItemDetailsPageContainer } from "./ItemDetailsPage.styled"; import { ItemDetailsPageContainer } from "./ItemDetailsPage.styled";
import { useDispatch } from "react-redux";
import { logoutUser } from "../../store/actions/login/loginActions";
import Mockupdata from "../../components/Cards/FilterCard/Mockupdata"; import Mockupdata from "../../components/Cards/FilterCard/Mockupdata";
import qs from "query-string"; import qs from "query-string";
import { useHistory } from "react-router-dom"; import { useHistory } from "react-router-dom";
import { setFilters } from "../../store/actions/filters/filtersActions"; import { setFilters } from "../../store/actions/filters/filtersActions";
import { useDispatch,useSelector } from "react-redux";
import ItemDetails from "../../components/ItemDetails/ItemDetails"; import ItemDetails from "../../components/ItemDetails/ItemDetails";
import ItemDetailsLayout from "../../layouts/ItemDetailsLayout/ItemDetailsLayout"; import ItemDetailsLayout from "../../layouts/ItemDetailsLayout/ItemDetailsLayout";
import UserReviewsCard from "../../components/UserReviewsCard/UserReviewsCard"; import UserReviewsCard from "../../components/UserReviewsCard/UserReviewsCard";
import { fetchOneOffer } from "../../store/actions/offers/offersActions";
import { selectOffer } from "../../store/selectors/offersSelectors";





const ItemDetailsPage = () => { const ItemDetailsPage = () => {

const dispatch = useDispatch(); const dispatch = useDispatch();
const offer = useSelector(selectOffer);

useEffect(() => {
dispatch(fetchOneOffer());
console.log(offer);
}, [])


//const routetMatch = useRouteMatch(); //const routetMatch = useRouteMatch();
const history = useHistory(); const history = useHistory();
console.log("iz useeffect: ", { category, subcategory, cities }); console.log("iz useeffect: ", { category, subcategory, cities });
dispatch(setFilters({ category, subcategory, cities })); dispatch(setFilters({ category, subcategory, cities }));
}, [history.location.search]); }, [history.location.search]);
const handleCl = () => {
dispatch(logoutUser());
};

return ( return (
<ItemDetailsPageContainer> <ItemDetailsPageContainer>
<button onClick={handleCl}>Dugme</button>
<Navbar /> <Navbar />
{/* right card mora mi bude Review Card */} {/* right card mora mi bude Review Card */}
<ItemDetailsLayout content={<ItemDetails />} rightCard={<UserReviewsCard />} /> <ItemDetailsLayout content={<ItemDetails />} rightCard={<UserReviewsCard />} />

+ 3
- 3
src/request/apiEndpoints.js Просмотреть файл

setFingerprint: '/affiliate/fingerprint', setFingerprint: '/affiliate/fingerprint',
}, },
offers: { offers: {
getOffers: 'offers',
getOneOffer: 'offers/{id}',
addOffer: 'offers',
getOffers: '/offers',
getOneOffer: '/offers/{id}',
addOffer: '/offers',
} }
}; };

+ 1
- 1
src/request/index.js Просмотреть файл

import queryString from "qs"; import queryString from "qs";


const request = axios.create({ const request = axios.create({
baseURL: "http://192.168.88.175:3005/",
baseURL: "http://192.168.88.150:3001/",
headers: { headers: {
"Content-Type": "application/json", "Content-Type": "application/json",
}, },

+ 1
- 1
src/store/middleware/accessTokensMiddleware.js Просмотреть файл

// import { setUserAccessToken } from "../actions/user/userActions"; // import { setUserAccessToken } from "../actions/user/userActions";


//Change URL with .env //Change URL with .env
const baseURL = "http://192.168.88.175:3005/";
const baseURL = "http://192.168.88.150:3001/";


//Interceptor unique name //Interceptor unique name
export const accessTokensMiddlewareInterceptorName = "ACCESS_TOKEN_INTERCEPTOR"; export const accessTokensMiddlewareInterceptorName = "ACCESS_TOKEN_INTERCEPTOR";

+ 1
- 1
src/store/reducers/offers/offersReducer.js Просмотреть файл

offer: action.payload offer: action.payload
} }
} }
function fetchOneOfferError (strate, action) {
function fetchOneOfferError (state, action) {
return { return {
...state, ...state,
error: action.payload error: action.payload

+ 2
- 1
src/store/saga/offersSaga.js Просмотреть файл

import { all, takeLatest, call, put } from "@redux-saga/core/effects"; import { all, takeLatest, call, put } from "@redux-saga/core/effects";
import { attemptAddOffer, attemptFetchOffers } from "../../request/offersRequest";
import { attemptAddOffer, attemptFetchOffers, attemptFetchOneOffer } from "../../request/offersRequest";
import { OFFERS_FETCH, OFFER_ADD, ONE_OFFER_FETCH } from "../actions/offers/offersActionConstants"; import { OFFERS_FETCH, OFFER_ADD, ONE_OFFER_FETCH } from "../actions/offers/offersActionConstants";
import { setOffers } from "../actions/offers/offersActions"; import { setOffers } from "../actions/offers/offersActions";


function* fetchOneOffer() { function* fetchOneOffer() {
try { try {
const data = yield call(attemptFetchOneOffer) const data = yield call(attemptFetchOneOffer)
console.log(data);
} catch (e) { } catch (e) {
console.log(e); console.log(e);
} }

Загрузка…
Отмена
Сохранить