From 23da613f2b30466cd4932da2771db118d510678c Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Wed, 25 Oct 2017 18:02:18 +0200 Subject: [PATCH] Declaratively set page --- .../src/actions/{assets.js => stories.js} | 9 ++++++++- client/coral-admin/src/constants/assets.js | 9 --------- client/coral-admin/src/constants/stories.js | 13 +++++++++++++ client/coral-admin/src/reducers/index.js | 4 ++-- .../src/reducers/{assets.js => stories.js} | 7 ++++++- .../src/routes/Community/components/People.js | 3 +++ .../src/routes/Community/components/Table.js | 10 ++++++---- .../src/routes/Community/containers/People.js | 1 + .../src/routes/Stories/components/Stories.js | 7 +++++-- .../src/routes/Stories/containers/Stories.js | 7 +++++-- 10 files changed, 49 insertions(+), 21 deletions(-) rename client/coral-admin/src/actions/{assets.js => stories.js} (93%) delete mode 100644 client/coral-admin/src/constants/assets.js create mode 100644 client/coral-admin/src/constants/stories.js rename client/coral-admin/src/reducers/{assets.js => stories.js} (86%) diff --git a/client/coral-admin/src/actions/assets.js b/client/coral-admin/src/actions/stories.js similarity index 93% rename from client/coral-admin/src/actions/assets.js rename to client/coral-admin/src/actions/stories.js index d7c6d9448..536f478e1 100644 --- a/client/coral-admin/src/actions/assets.js +++ b/client/coral-admin/src/actions/stories.js @@ -4,11 +4,12 @@ import { FETCH_ASSETS_REQUEST, FETCH_ASSETS_SUCCESS, FETCH_ASSETS_FAILURE, + SET_PAGE, UPDATE_ASSET_STATE_REQUEST, UPDATE_ASSET_STATE_SUCCESS, UPDATE_ASSET_STATE_FAILURE, UPDATE_ASSETS -} from '../constants/assets'; +} from '../constants/stories'; import t from 'coral-framework/services/i18n'; @@ -52,3 +53,9 @@ export const updateAssetState = (id, closedAt) => (dispatch, _, {rest}) => { export const updateAssets = (assets) => (dispatch) => { dispatch({type: UPDATE_ASSETS, assets}); }; + +export const setPage = (page) => ({ + type: SET_PAGE, + page, +}); + diff --git a/client/coral-admin/src/constants/assets.js b/client/coral-admin/src/constants/assets.js deleted file mode 100644 index 20ec0a9c3..000000000 --- a/client/coral-admin/src/constants/assets.js +++ /dev/null @@ -1,9 +0,0 @@ -export const FETCH_ASSETS_REQUEST = 'FETCH_ASSETS_REQUEST'; -export const FETCH_ASSETS_SUCCESS = 'FETCH_ASSETS_SUCCESS'; -export const FETCH_ASSETS_FAILURE = 'FETCH_ASSETS_FAILURE'; - -export const UPDATE_ASSET_STATE_REQUEST = 'UPDATE_ASSET_STATE_REQUEST'; -export const UPDATE_ASSET_STATE_SUCCESS = 'UPDATE_ASSET_STATE_SUCCESS'; -export const UPDATE_ASSET_STATE_FAILURE = 'UPDATE_ASSET_STATE_FAILURE'; - -export const UPDATE_ASSETS = 'UPDATE_ASSETS'; diff --git a/client/coral-admin/src/constants/stories.js b/client/coral-admin/src/constants/stories.js new file mode 100644 index 000000000..52a9f9943 --- /dev/null +++ b/client/coral-admin/src/constants/stories.js @@ -0,0 +1,13 @@ +const prefix = 'STORIES'; + +export const FETCH_ASSETS_REQUEST = `${prefix}_FETCH_ASSETS_REQUEST`; +export const FETCH_ASSETS_SUCCESS = `${prefix}_FETCH_ASSETS_SUCCESS`; +export const FETCH_ASSETS_FAILURE = `${prefix}_FETCH_ASSETS_FAILURE`; + +export const UPDATE_ASSET_STATE_REQUEST = `${prefix}_UPDATE_ASSET_STATE_REQUEST`; +export const UPDATE_ASSET_STATE_SUCCESS = `${prefix}_UPDATE_ASSET_STATE_SUCCESS`; +export const UPDATE_ASSET_STATE_FAILURE = `${prefix}_UPDATE_ASSET_STATE_FAILURE`; + +export const UPDATE_ASSETS = `${prefix}_UPDATE_ASSETS`; + +export const SET_PAGE = `${prefix}_SET_PAGE`; diff --git a/client/coral-admin/src/reducers/index.js b/client/coral-admin/src/reducers/index.js index 372fedbae..f7bbf3a3b 100644 --- a/client/coral-admin/src/reducers/index.js +++ b/client/coral-admin/src/reducers/index.js @@ -1,5 +1,5 @@ import auth from './auth'; -import assets from './assets'; +import stories from './stories'; import dashboard from './dashboard'; import configure from './configure'; import community from './community'; @@ -17,7 +17,7 @@ export default { configure, suspendUserDialog, userDetail, - assets, + stories, community, moderation, install, diff --git a/client/coral-admin/src/reducers/assets.js b/client/coral-admin/src/reducers/stories.js similarity index 86% rename from client/coral-admin/src/reducers/assets.js rename to client/coral-admin/src/reducers/stories.js index b4ea8d21f..60c02bc99 100644 --- a/client/coral-admin/src/reducers/assets.js +++ b/client/coral-admin/src/reducers/stories.js @@ -1,4 +1,4 @@ -import * as actions from '../constants/assets'; +import * as actions from '../constants/stories'; import update from 'immutability-helper'; const initialState = { @@ -35,6 +35,11 @@ export default function assets (state = initialState, action) { return update(state, { assets: {$set: action.assets}, }); + case actions.SET_PAGE: + return { + ...state, + page: action.page, + }; default: return state; } diff --git a/client/coral-admin/src/routes/Community/components/People.js b/client/coral-admin/src/routes/Community/components/People.js index 664173cb0..75d08429a 100644 --- a/client/coral-admin/src/routes/Community/components/People.js +++ b/client/coral-admin/src/routes/Community/components/People.js @@ -15,6 +15,7 @@ const People = (props) => { onHeaderClickHandler, onPageChange, totalPages, + page, setRole, setCommenterStatus, viewUserDetail, @@ -48,6 +49,7 @@ const People = (props) => { onHeaderClickHandler={onHeaderClickHandler} pageCount={totalPages} onPageChange={onPageChange} + page={page} /> : {t('community.no_results')} } @@ -59,6 +61,7 @@ const People = (props) => { People.propTypes = { onHeaderClickHandler: PropTypes.func, users: PropTypes.array, + page: PropTypes.number.isRequired, searchValue: PropTypes.string, onSearchChange: PropTypes.func, totalPages: PropTypes.number, diff --git a/client/coral-admin/src/routes/Community/components/Table.js b/client/coral-admin/src/routes/Community/components/Table.js index 8d650f165..22b02cfe4 100644 --- a/client/coral-admin/src/routes/Community/components/Table.js +++ b/client/coral-admin/src/routes/Community/components/Table.js @@ -24,7 +24,7 @@ const headers = [ } ]; -const Table = ({users, setRole, onHeaderClickHandler, setCommenterStatus, viewUserDetail, pageCount, onPageChange}) => ( +const Table = ({users, setRole, onHeaderClickHandler, setCommenterStatus, viewUserDetail, pageCount, page, onPageChange}) => (
@@ -51,13 +51,13 @@ const Table = ({users, setRole, onHeaderClickHandler, setCommenterStatus, viewUs {row.created_at}
- setCommenterStatus(row.id, status)}> + onChange={(status) => setCommenterStatus(row.id, status)}> + @@ -88,6 +89,7 @@ Table.propTypes = { setCommenterStatus: PropTypes.func.isRequired, viewUserDetail: PropTypes.func.isRequired, pageCount: PropTypes.number.isRequired, + page: PropTypes.number.isRequired, onPageChange: PropTypes.func.isRequired, }; diff --git a/client/coral-admin/src/routes/Community/containers/People.js b/client/coral-admin/src/routes/Community/containers/People.js index 5780529e8..1f52846c9 100644 --- a/client/coral-admin/src/routes/Community/containers/People.js +++ b/client/coral-admin/src/routes/Community/containers/People.js @@ -78,6 +78,7 @@ class PeopleContainer extends React.Component { totalPages={this.props.community.totalPagesPeople} setCommenterStatus={this.props.setCommenterStatus} setRole={this.props.setRole} + page={this.props.community.pagePeople} viewUserDetail={this.props.viewUserDetail} />; } diff --git a/client/coral-admin/src/routes/Stories/components/Stories.js b/client/coral-admin/src/routes/Stories/components/Stories.js index 73f5c60dc..3b2787aab 100644 --- a/client/coral-admin/src/routes/Stories/components/Stories.js +++ b/client/coral-admin/src/routes/Stories/components/Stories.js @@ -91,8 +91,9 @@ class Stories extends Component { ); } - onPageClick = ({selected}) => { + onPageChange = ({selected}) => { const page = selected + 1; + this.props.setPage(page); this.props.fetchAssets({page}); } @@ -157,7 +158,8 @@ class Stories extends Component { + page={assets.page - 1} + onPageChange={this.onPageChange} /> : {t('streams.empty_result')} } @@ -168,6 +170,7 @@ class Stories extends Component { Stories.propTypes = { assets: PropTypes.object, + setPage: PropTypes.func, fetchAssets: PropTypes.func, updateAssetState: PropTypes.func, }; diff --git a/client/coral-admin/src/routes/Stories/containers/Stories.js b/client/coral-admin/src/routes/Stories/containers/Stories.js index b940e46e6..28048f39d 100644 --- a/client/coral-admin/src/routes/Stories/containers/Stories.js +++ b/client/coral-admin/src/routes/Stories/containers/Stories.js @@ -1,12 +1,15 @@ import {connect} from 'react-redux'; import {bindActionCreators} from 'redux'; -import {fetchAssets, updateAssetState} from 'coral-admin/src/actions/assets'; +import {fetchAssets, updateAssetState, setPage} from 'coral-admin/src/actions/stories'; import Stories from '../components/Stories'; -const mapStateToProps = ({assets}) => ({assets}); +const mapStateToProps = ({stories}) => ({ + assets: stories, +}); const mapDispatchToProps = (dispatch) => bindActionCreators({ + setPage, fetchAssets, updateAssetState, }, dispatch);