diff options
Diffstat (limited to 'src/client/react/components')
-rw-r--r-- | src/client/react/components/container/Results.js | 3 | ||||
-rw-r--r-- | src/client/react/components/container/Search.js | 15 | ||||
-rw-r--r-- | src/client/react/components/container/View.js | 24 |
3 files changed, 30 insertions, 12 deletions
diff --git a/src/client/react/components/container/Results.js b/src/client/react/components/container/Results.js index b36abb2..0f08d7a 100644 --- a/src/client/react/components/container/Results.js +++ b/src/client/react/components/container/Results.js @@ -25,7 +25,6 @@ import { connect } from 'react-redux'; import { withRouter } from 'react-router-dom'; import users from '../../users'; -import { setUser } from '../../actions/search'; import { userFromMatch } from '../../lib/url'; import Result from '../presentational/Result'; @@ -73,7 +72,7 @@ class Results extends React.Component { // EDGE CASE: The user is set if the user changes, but it doesn't // change if the result is already the one we are viewing. // Therefor, we need to dispatch the SET_USER command manually. - this.props.dispatch(setUser(user)); + this.props.dispatch({ type: 'SEARCH/SET_USER', user }); } else { this.props.history.push(`/${userId}`); } diff --git a/src/client/react/components/container/Search.js b/src/client/react/components/container/Search.js index b84502c..1c4ca4f 100644 --- a/src/client/react/components/container/Search.js +++ b/src/client/react/components/container/Search.js @@ -27,7 +27,6 @@ import { withRouter } from 'react-router-dom'; import SearchIcon from 'react-icons/lib/md/search'; import { userFromMatch } from '../../lib/url'; -import { setUser, inputChange, changeSelectedResult } from '../../actions/search'; import users from '../../users'; import Results from './Results'; @@ -65,13 +64,13 @@ class Search extends React.Component { componentDidMount() { const urlUser = userFromMatch(this.props.match); - this.props.dispatch(setUser(urlUser)); + this.props.dispatch({ type: 'SEARCH/SET_USERS', urlUser }); } componentWillReceiveProps(nextProps) { if (nextProps.match !== this.props.match) { const urlUser = userFromMatch(nextProps.match); - this.props.dispatch(setUser(urlUser)); + this.props.dispatch({ type: 'SEARCH/SET_USERS', urlUser }); } } @@ -94,17 +93,17 @@ class Search extends React.Component { switch (event.key) { case 'ArrowUp': event.preventDefault(); - this.props.dispatch(changeSelectedResult(-1)); + this.props.dispatch({ type: 'SEARCH/CHANGE_SELECTED_RESULT', relativeChange: -1 }); break; case 'ArrowDown': event.preventDefault(); - this.props.dispatch(changeSelectedResult(+1)); + this.props.dispatch({ type: 'SEARCH/CHANGE_SELECTED_RESULT', relativeChange: +1 }); break; case 'Escape': event.preventDefault(); - this.props.dispatch(setUser(urlUser)); + this.props.dispatch({ type: 'SEARCH/SET_USERS', urlUser }); break; case 'Enter': @@ -113,7 +112,7 @@ class Search extends React.Component { // EDGE CASE: The user is set if the user changes, but it doesn't // change if the result is already the one we are viewing. // Therefor, we need to dispatch the SET_USER command manually. - this.props.dispatch(setUser(urlUser)); + this.props.dispatch({ type: 'SEARCH/SET_USERS', urlUser }); } else if (result) { this.props.history.push(`/${result}`); } @@ -153,7 +152,7 @@ class Search extends React.Component { </div> <input id="search__input" - onChange={event => dispatch(inputChange(event.target.value))} + onChange={event => dispatch({ type: 'SEARCH/INPUT_CHANGE', searchText: event.target.value })} onKeyDown={this.onKeyDown} value={searchText} placeholder="Zoeken" diff --git a/src/client/react/components/container/View.js b/src/client/react/components/container/View.js index 938614e..28aaad3 100644 --- a/src/client/react/components/container/View.js +++ b/src/client/react/components/container/View.js @@ -24,7 +24,6 @@ import { connect } from 'react-redux'; import { withRouter } from 'react-router-dom'; import { userFromMatch, weekFromLocation } from '../../lib/url'; -import { fetchSchedule } from '../../actions/view'; import extractSchedule from '../../lib/extractSchedule'; import Schedule from '../presentational/Schedule'; @@ -66,7 +65,28 @@ class View extends React.Component { const schedule = extractSchedule(schedules, user, week); if (schedule.state === 'NOT_REQUESTED') { - dispatch(fetchSchedule(user, week)); + fetch(`/get/${user}?week=${week}`).then( + // success + (r) => { + r.text().then((htmlStr) => { + dispatch({ + type: 'VIEW/FETCH_SCHEDULE_SUCCESS', + user, + week, + htmlStr, + }); + }); + }, + + // error + () => { + dispatch({ + type: 'VIEW/FETCH_SCHEDULE_FAILURE', + week, + user, + }); + }, + ); } } |