diff --git a/src/actions/visitsActions.js b/src/actions/visitsActions.js index 99b467f..41bd916 100644 --- a/src/actions/visitsActions.js +++ b/src/actions/visitsActions.js @@ -1,14 +1,24 @@ -import * as request from '../requests/visits'; +import * as requests from '../requests/visits';export function addVisitSuccess(visit){ return {type: 'ADD_VISIT', visit}; } -export function addVisit(place,observation){ +export function loadAllSuccess(visits){
- return { type: 'LOAD_VISITS', visits } +} +export function loadAllForPlace(slug){
- return (dispatch,getState) =>{
- requests.getAllForPlace(slug).then(result=>{
- dispatch(loadAllSuccess(result));
- })
} +} +export function addVisit(place,observation,reaction){ return (dispatch,getState)=>{ let user = getState().user; if(!user) return null;
request.add(user.jwt,place,observation).then(result=>{
- requests.add(user.jwt,place,observation,reaction).then(result=>{ dispatch(addVisitSuccess(result)) }) } diff --git a/src/pages/place.js b/src/pages/place.js index dcc1c80..144c161 100644 --- a/src/pages/place.js +++ b/src/pages/place.js @@ -2,10 +2,14 @@ import React from 'react'; import {withRouter} from 'react-router-dom'; import {Card} from 'material-ui/Card'; import FlatButton from 'material-ui/FlatButton'; +import {connect} from 'react-redux'; import Container from '../components/Container'; import VisitForm from '../components/visits/VisitForm'; +import VisitsCollection from '../components/visits/VisitsCollection'; +import * as visitsActions from '../actions/visitsActions'; import {getPlace} from '../requests/places';
+ class Place extends React.Component{ constructor(props){ super(props); @@ -17,6 +21,8 @@ class Place extends React.Component{ } } loadPlace(slug){
- this.props.dispatch(visitsActions.loadAllForPlace(slug)); + getPlace(slug).then(json=>{ console.log("src/pages/place.js -> getplace()"); console.log(json); @@ -30,6 +36,7 @@ class Place extends React.Component{ const {place} = this.state; //Destructuring Assignment ES6 return( <div className="Place-container">
- <h1>contador!{this.props.visits.length}</h1> <header className="Place-cover" style={{'backgroundImage': 'url('+place.coverImage+')'}} @@ -54,10 +61,18 @@ class Place extends React.Component{ </div> </Card> </div>
- <div className="col-xs">
- <VisitsCollection visits={this.props.visits} />
- </div> </div> </Container> </div> ) } } -export default withRouter(Place); +function mapStateToProps(state,ownProps){
- return {
- visits: state.visits
- } +} +export default connect(mapStateToProps)(withRouter(Place)); diff --git a/src/requests/visits.js b/src/requests/visits.js index be78647..7496987 100644 --- a/src/requests/visits.js +++ b/src/requests/visits.js @@ -1,17 +1,21 @@ import config from '../config/secrets';
-export function add(jwt,place,observation){ +export function getAllForPlace(slug){
- return fetch(config.url+'/places/'+slug+'/visits').then(response => response.json()).catch(console.log); +} +export function add(jwt,place,observation,reaction){ const data = { _place: place._id,
- observation
- observation,
- reaction +} +return fetch(config.url+'/places/'+place.slug+'/visits',{
- method: 'POST',
- body: JSON.stringify(data),
- headers:{
- 'Content-Type': 'application/json',
- 'Accept': 'application/json',
- 'Authorization': 'Bearer '+jwt }
- return fetch(config.url+'/places/'+place.slug+'/visits',{
- method: 'POST',
- body: JSON.stringify(data),
- headers:{
- 'Content-Type': 'application/json',
- 'Accept': 'application/json',
- 'Authorization': 'Bearer '+jwt
- }
- }).then(response => response.json()).catch(console.log) +}).then(response => response.json()).catch(console.log); }