From 59de9d7185a9ca01db675a75d081ccff33fb9ded Mon Sep 17 00:00:00 2001 From: Thomas Haddad Date: Wed, 21 Dec 2016 12:19:10 +0100 Subject: Refs #2209: Add state to modal, Modal Container/Component/first reducer Signed-off-by: Thomas Shawarma Haddad Signed-off-by: Jean-Paul Lescouzeres --- .../es6_browserified/journey_patterns/actions/index.js | 5 +++++ .../journey_patterns/components/App.js | 2 ++ .../journey_patterns/components/JourneyPattern.js | 9 ++++++++- .../journey_patterns/components/JourneyPatterns.js | 4 +++- .../journey_patterns/components/Modal.js | 17 +++++++++++++++++ .../journey_patterns/containers/JourneyPatternList.js | 3 +++ .../journey_patterns/containers/Modal.js | 12 ++++++++++++ .../es6_browserified/journey_patterns/index.js | 6 +++++- .../journey_patterns/reducers/index.js | 4 +++- .../journey_patterns/reducers/modal.js | 18 ++++++++++++++++++ 10 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 app/assets/javascripts/es6_browserified/journey_patterns/components/Modal.js create mode 100644 app/assets/javascripts/es6_browserified/journey_patterns/containers/Modal.js create mode 100644 app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js (limited to 'app/assets/javascripts') diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js index 110d02889..9e598fdbc 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/actions/index.js @@ -24,6 +24,11 @@ const actions = { id : e.currentTarget.id, index }), + openUpdateModalOpen : (index, journeyPattern) => ({ + type : 'UPDATE_JOURNEYPATTERN_MODAL', + index, + journeyPattern + }), savePage : (dispatch, currentPage) => ({ type: 'SAVE_PAGE', dispatch diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/App.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/App.js index 378e6db1e..3472d9dcc 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/App.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/App.js @@ -1,6 +1,7 @@ var React = require('react') var AddJourneyPattern = require('../containers/AddJourneyPattern') var Navigate = require('../containers/Navigate') +var Modal = require('../containers/Modal') var SaveJourneyPattern = require('../containers/SaveJourneyPattern') var JourneyPatternList = require('../containers/JourneyPatternList') @@ -12,6 +13,7 @@ const App = () => ( + ) diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js index 01796154f..bf604d2ae 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPattern.js @@ -4,6 +4,12 @@ var PropTypes = require('react').PropTypes const JourneyPattern = (props) => { return (
+

+ MODAL +

Index: {props.index}

Name: {props.value.name}

ObjectID: {props.value.object_id}

@@ -33,7 +39,8 @@ const JourneyPattern = (props) => { JourneyPattern.propTypes = { value: PropTypes.object, index: PropTypes.number, - onCheckboxChange: PropTypes.func.isRequired + onCheckboxChange: PropTypes.func.isRequired, + onUpdateModalOpen: PropTypes.func.isRequired } module.exports = JourneyPattern diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js index a22963ca3..4a74f7d19 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/JourneyPatterns.js @@ -21,6 +21,7 @@ class JourneyPatterns extends Component{ value={ journeyPattern } key={ index } onCheckboxChange= {(e) => this.props.onCheckboxChange(e, index)} + onUpdateModalOpen= {() => this.props.onUpdateModalOpen(index, journeyPattern)} /> )}
@@ -31,7 +32,8 @@ class JourneyPatterns extends Component{ JourneyPatterns.propTypes = { journeyPatterns: PropTypes.array.isRequired, onCheckboxChange: PropTypes.func.isRequired, - onLoadFirstPage: PropTypes.func.isRequired + onLoadFirstPage: PropTypes.func.isRequired, + onUpdateModalOpen: PropTypes.func.isRequired } module.exports = JourneyPatterns diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/components/Modal.js b/app/assets/javascripts/es6_browserified/journey_patterns/components/Modal.js new file mode 100644 index 000000000..90140661c --- /dev/null +++ b/app/assets/javascripts/es6_browserified/journey_patterns/components/Modal.js @@ -0,0 +1,17 @@ +var React = require('react') +var PropTypes = require('react').PropTypes + +const ModalComponent = (props) => { + return ( +

+ COUCOU {props.index} +

+ ) +} + +ModalComponent.propTypes = { + index: PropTypes.number, + modal: PropTypes.object +} + +module.exports = ModalComponent diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js b/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js index 2da8c304c..f475f7cfe 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/JourneyPatternList.js @@ -16,6 +16,9 @@ const mapDispatchToProps = (dispatch) => { onCheckboxChange: (e, index) =>{ dispatch(actions.updateCheckboxValue(e, index)) }, + onUpdateModalOpen: (index, journeyPattern) =>{ + dispatch(actions.openUpdateModalOpen(index, journeyPattern)) + }, } } diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/containers/Modal.js b/app/assets/javascripts/es6_browserified/journey_patterns/containers/Modal.js new file mode 100644 index 000000000..22b36b35e --- /dev/null +++ b/app/assets/javascripts/es6_browserified/journey_patterns/containers/Modal.js @@ -0,0 +1,12 @@ +var connect = require('react-redux').connect +var ModalComponent = require('../components/modal') + +const mapStateToProps = (state) => { + return { + modal: state.modal, + } +} + +const ModalContainer = connect(mapStateToProps)(ModalComponent) + +module.exports = ModalContainer diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/index.js index e420cff9f..86e9e1c35 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/index.js @@ -14,7 +14,11 @@ var promise = require('redux-promise') var initialState = { journeyPatterns: [], pagination: 1, - totalCount: window.journeyPatternLength + totalCount: window.journeyPatternLength, + modal: { + open: false, + modalProps: {} + } } const loggerMiddleware = createLogger() diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js index 7e8270868..71ff8b6f5 100644 --- a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/index.js @@ -2,11 +2,13 @@ var combineReducers = require('redux').combineReducers var journeyPatterns = require('./journeyPatterns') var pagination = require('./pagination') var totalCount = require('./totalCount') +var modal = require('./modal') const journeyPatternsApp = combineReducers({ journeyPatterns, pagination, - totalCount + totalCount, + modal }) module.exports = journeyPatternsApp diff --git a/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js new file mode 100644 index 000000000..452c47011 --- /dev/null +++ b/app/assets/javascripts/es6_browserified/journey_patterns/reducers/modal.js @@ -0,0 +1,18 @@ +const modal = (state = {}, action) => { + switch (action.type) { + case 'UPDATE_JOURNEYPATTERN_MODAL': + return { + open: true, + modalProps: { + index: action.index, + journeyPattern: action.journeyPattern + } + } + case 'HIDE_MODAL': + return {} + default: + return state + } +} + +module.exports = modal -- cgit v1.2.3