From c0ad25715bc050dac0134ccd46f25884396d0f87 Mon Sep 17 00:00:00 2001 From: Matthew Shao Date: Wed, 28 Jun 2017 18:48:31 +0800 Subject: [web] Add Modal Component and OptionModal --- web/src/js/components/Modal/Modal.jsx | 33 +++++++++++++++++++++++++++++ web/src/js/components/Modal/ModalList.jsx | 3 +++ web/src/js/components/Modal/OptionModal.jsx | 33 +++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 web/src/js/components/Modal/Modal.jsx create mode 100644 web/src/js/components/Modal/ModalList.jsx create mode 100644 web/src/js/components/Modal/OptionModal.jsx (limited to 'web/src/js/components/Modal') diff --git a/web/src/js/components/Modal/Modal.jsx b/web/src/js/components/Modal/Modal.jsx new file mode 100644 index 00000000..3370ad36 --- /dev/null +++ b/web/src/js/components/Modal/Modal.jsx @@ -0,0 +1,33 @@ +import React, { Component } from 'react' +import { connect } from 'react-redux' +import * as modalAction from '../../ducks/ui/modal' +import ModalList from './ModalList' + +class PureModal extends Component { + + constructor(props, context) { + super(props, context) + } + + render() { + const { activeModal, hideModal } = this.props + const ActiveModal = _.find(ModalList, m => m.name === activeModal ) + return( + activeModal ? +
+
+ +
+ :
+ ) + } +} + +export default connect( + state => ({ + activeModal: state.ui.modal.activeModal + }), + { + hideModal: modalAction.hideModal + } +)(PureModal) diff --git a/web/src/js/components/Modal/ModalList.jsx b/web/src/js/components/Modal/ModalList.jsx new file mode 100644 index 00000000..41b36f00 --- /dev/null +++ b/web/src/js/components/Modal/ModalList.jsx @@ -0,0 +1,3 @@ +import OptionModal from './OptionModal' + +export default [ OptionModal, EmptyModal ] diff --git a/web/src/js/components/Modal/OptionModal.jsx b/web/src/js/components/Modal/OptionModal.jsx new file mode 100644 index 00000000..d9e8b829 --- /dev/null +++ b/web/src/js/components/Modal/OptionModal.jsx @@ -0,0 +1,33 @@ +import React from 'react' +import PropTypes from 'prop-types' + +OptionModal.prototype = { + hideModal: PropTypes.function, +} + +export default function OptionModal( { hideModal }) { + const title = 'Options' + return ( + + ) +} -- cgit v1.2.3 From febfeb9ef2bd9c412590c489e12f393f183b9a82 Mon Sep 17 00:00:00 2001 From: Matthew Shao Date: Wed, 28 Jun 2017 21:48:22 +0800 Subject: [web] Minor update for Modal Component. --- web/src/js/components/Modal/Modal.jsx | 2 +- web/src/js/components/Modal/ModalList.jsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'web/src/js/components/Modal') diff --git a/web/src/js/components/Modal/Modal.jsx b/web/src/js/components/Modal/Modal.jsx index 3370ad36..e39f5415 100644 --- a/web/src/js/components/Modal/Modal.jsx +++ b/web/src/js/components/Modal/Modal.jsx @@ -11,7 +11,7 @@ class PureModal extends Component { render() { const { activeModal, hideModal } = this.props - const ActiveModal = _.find(ModalList, m => m.name === activeModal ) + const ActiveModal = ModalList.find(m => m.name === activeModal ) return( activeModal ?
diff --git a/web/src/js/components/Modal/ModalList.jsx b/web/src/js/components/Modal/ModalList.jsx index 41b36f00..8ba46b00 100644 --- a/web/src/js/components/Modal/ModalList.jsx +++ b/web/src/js/components/Modal/ModalList.jsx @@ -1,3 +1,3 @@ import OptionModal from './OptionModal' -export default [ OptionModal, EmptyModal ] +export default [ OptionModal ] -- cgit v1.2.3 From 7baf3069b169e8196e5d389e655a3a187b4329d9 Mon Sep 17 00:00:00 2001 From: Matthew Shao Date: Fri, 30 Jun 2017 20:46:02 +0800 Subject: [web] Update the Structure of Modal component. --- web/src/js/components/Modal/Modal.jsx | 15 +++---------- web/src/js/components/Modal/ModalLayout.jsx | 16 ++++++++++++++ web/src/js/components/Modal/ModalList.jsx | 12 ++++++++++- web/src/js/components/Modal/OptionModal.jsx | 33 ----------------------------- 4 files changed, 30 insertions(+), 46 deletions(-) create mode 100644 web/src/js/components/Modal/ModalLayout.jsx delete mode 100644 web/src/js/components/Modal/OptionModal.jsx (limited to 'web/src/js/components/Modal') diff --git a/web/src/js/components/Modal/Modal.jsx b/web/src/js/components/Modal/Modal.jsx index e39f5415..88e81156 100644 --- a/web/src/js/components/Modal/Modal.jsx +++ b/web/src/js/components/Modal/Modal.jsx @@ -1,6 +1,5 @@ import React, { Component } from 'react' import { connect } from 'react-redux' -import * as modalAction from '../../ducks/ui/modal' import ModalList from './ModalList' class PureModal extends Component { @@ -10,15 +9,10 @@ class PureModal extends Component { } render() { - const { activeModal, hideModal } = this.props + const { activeModal } = this.props const ActiveModal = ModalList.find(m => m.name === activeModal ) return( - activeModal ? -
-
- -
- :
+ activeModal ? :
) } } @@ -26,8 +20,5 @@ class PureModal extends Component { export default connect( state => ({ activeModal: state.ui.modal.activeModal - }), - { - hideModal: modalAction.hideModal - } + }) )(PureModal) diff --git a/web/src/js/components/Modal/ModalLayout.jsx b/web/src/js/components/Modal/ModalLayout.jsx new file mode 100644 index 00000000..cf357b2b --- /dev/null +++ b/web/src/js/components/Modal/ModalLayout.jsx @@ -0,0 +1,16 @@ +import React from 'react' + +export default function ModalLayout ({ children }) { + return ( +
+
+ +
+ ) +} diff --git a/web/src/js/components/Modal/ModalList.jsx b/web/src/js/components/Modal/ModalList.jsx index 8ba46b00..1175d5ea 100644 --- a/web/src/js/components/Modal/ModalList.jsx +++ b/web/src/js/components/Modal/ModalList.jsx @@ -1,3 +1,13 @@ -import OptionModal from './OptionModal' +import React from 'react' +import ModalLayout from './ModalLayout' +import OptionContent from './OptionModal' + +function OptionModal() { + return ( + + + + ) +} export default [ OptionModal ] diff --git a/web/src/js/components/Modal/OptionModal.jsx b/web/src/js/components/Modal/OptionModal.jsx deleted file mode 100644 index d9e8b829..00000000 --- a/web/src/js/components/Modal/OptionModal.jsx +++ /dev/null @@ -1,33 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' - -OptionModal.prototype = { - hideModal: PropTypes.function, -} - -export default function OptionModal( { hideModal }) { - const title = 'Options' - return ( - - ) -} -- cgit v1.2.3 From aad0b95cbe65e97574d49f3933002d347470d1ef Mon Sep 17 00:00:00 2001 From: Matthew Shao Date: Fri, 30 Jun 2017 21:12:50 +0800 Subject: [web] Update js/components/Modal/OptionModal.jsx --- web/src/js/components/Modal/OptionModal.jsx | 45 +++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 web/src/js/components/Modal/OptionModal.jsx (limited to 'web/src/js/components/Modal') diff --git a/web/src/js/components/Modal/OptionModal.jsx b/web/src/js/components/Modal/OptionModal.jsx new file mode 100644 index 00000000..500495c4 --- /dev/null +++ b/web/src/js/components/Modal/OptionModal.jsx @@ -0,0 +1,45 @@ +import React, { Component } from 'react' +import { connect } from 'react-redux' +import * as modalAction from '../../ducks/ui/modal' + +class PureOptionModal extends Component { + + constructor(props, context) { + super(props, context) + this.state = { title: 'Options', } + } + + render() { + const { hideModal } = this.props + const { title } = this.state + return ( +
+
+ +
+

{ title }

+
+
+ +
+ ... +
+ +
+ +
+
+ ) + } +} + +export default connect( + state => ({ + + }), + { hideModal: modalAction.hideModal } +)(PureOptionModal) -- cgit v1.2.3