Browse Source

Restructured Modal component

Snow 8 years ago
parent
commit
64a1141f3c

+ 1 - 1
src/__test__/Modal.test.js

@@ -1,5 +1,5 @@
 import React from 'react';
-import Modal from '../components/Modal';
+import Modal from '../components/Modal/Modal';
 import { mount, shallow } from 'enzyme';
 
 describe('<Modal />', () => {

+ 55 - 0
src/components/Modal/Modal.jsx

@@ -0,0 +1,55 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+
+import './style.css';
+
+const ModalWindow = ({ isActive, handleClickClose }) => {
+  if (isActive) {
+    return (
+      <div className={'modal'}>
+        <button className="hide" onClick={handleClickClose}>X</button>
+        <p>
+          Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+          eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
+          minim veniam, quis nostrud exercitation ullamco laboris nisi ut
+          aliquip ex ea commodo consequat. Duis aute irure dolor in
+          reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
+          pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
+          culpa qui officia deserunt mollit anim id est laborum.
+        </p>
+      </div>
+    );
+  }
+  return null;
+};
+
+ModalWindow.PropTypes = {
+  isActive: PropTypes.bool.isRequired,
+  handleClickClose: PropTypes.func.isRequired
+};
+
+export { ModalWindow };
+
+export default class Modal extends React.Component {
+  state = { isActive: false };
+
+  handleClick = () => {
+    this.setState({ isActive: true });
+  };
+
+  handleCloseModal = () => {
+    this.setState({ isActive: false });
+  };
+
+  render() {
+    return (
+      <div>
+        <button className="show" onClick={this.handleClick}>Show Modal</button>
+        <ModalWindow
+          isActive={this.state.isActive}
+          handleClickClose={this.handleCloseModal}
+        />
+      </div>
+    );
+  }
+}

+ 15 - 0
src/components/Modal/index.js

@@ -0,0 +1,15 @@
+import React from 'react';
+import Modal from './Modal';
+import SharedTitle from '../Utils/SharedTitle.jsx';
+
+import './style.css';
+
+const ModalDemo = () =>
+  <div>
+    <SharedTitle />
+    <p>A modal will show after clicking the button</p>
+    <hr />
+    <Modal />
+  </div>;
+
+export default ModalDemo;

+ 0 - 41
src/components/Modal/index.jsx

@@ -1,41 +0,0 @@
-import React from 'react'
-import PropTypes from 'prop-types'
-
-import './style.css'
-
-const ModalWindow = ({ isActive, handleClickClose }) => {
-	if (isActive) {
-		return (<div className={'modal'}>
-<button className="hide" onClick={handleClickClose}>X</button>
-<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
-</div>)}
-		return null
-}
-
-ModalWindow.PropTypes = {
-	isActive: PropTypes.bool.isRequired,
-	handleClickClose: PropTypes.func.isRequired,
-}
-
-export {ModalWindow}
-
-export default class Modal extends React.Component {
-	state = {isActive: false}
-	
-	handleClick = () => {
-		this.setState({isActive: true}) 
-	}
-	
-	handleCloseModal = () => {
-		this.setState({isActive: false})
-	}
-
-	render() {
-		return (
-		<div>
-			<p>A modal will show after clicking the button</p>
-			<button className="show" onClick={this.handleClick}>Show Modal</button>
-			<ModalWindow isActive={this.state.isActive} handleClickClose={this.handleCloseModal}/>
-		</div>)
-	}
-}

+ 10 - 10
src/routes.js

@@ -2,16 +2,16 @@
 import React from 'react';
 import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
 
-import App from './components/App';
-import Nav from './components/Nav';
-import ToggleDemo from './components/Toggle';
-import Home from './components/Home';
-import TabViewDemo from './components/Tabs';
-import Modal from './components/Modal';
-import SlideShow from './components/SlideShow';
+import App from './components/App/';
+import Nav from './components/Nav/';
+import Home from './components/Home/';
+import ToggleDemo from './components/Toggle/';
+import TabViewDemo from './components/Tabs/';
+import ModalDemo from './components/Modal/';
+import SlideShow from './components/SlideShow/';
 import Counter from './components/Counter';
-import FormDemo from './components/Form';
-import NotFound from './components/NotFound';
+import FormDemo from './components/Form/';
+import NotFound from './components/NotFound/';
 
 const Routes = props =>
   <Router {...props}>
@@ -24,7 +24,7 @@ const Routes = props =>
           <Route path="/toggle" component={ToggleDemo} />
           <Route path="/tabs" component={TabViewDemo} />
           <Route path="/counter" component={Counter} />
-          <Route path="/modal" component={Modal} />
+          <Route path="/modal" component={ModalDemo} />
           <Route path="/slideshow" component={SlideShow} />
           <Route path="/form" component={FormDemo} />
           <Route component={NotFound} />