component: reuse component Backdrop in component SideDrawer

master
oscarzhou 2020-12-13 17:02:02 +13:00
parent 1fd471f58a
commit b79cb5e3ff
2 changed files with 43 additions and 19 deletions

View File

@ -1,18 +1,31 @@
import React from 'react'; import React, { Component } from 'react';
import Aux from '../../hoc/Auxiliary'; import Aux from '../../hoc/Auxiliary';
import classes from './Layout.css'; import classes from './Layout.css';
import Toolbar from '../Navigation/Toolbar/Toolbar'; import Toolbar from '../Navigation/Toolbar/Toolbar';
import SideDrawer from '../Navigation/SideDrawer/SideDrawer'; import SideDrawer from '../Navigation/SideDrawer/SideDrawer';
const layout = (props) => ( class Layout extends Component {
state = {
showSideDrawer: true
}
sideDrawerClosedHandler = () => {
this.setState({showSideDrawer: false});
}
render() {
return (
<Aux> <Aux>
<Toolbar /> <Toolbar />
<SideDrawer /> <SideDrawer open={this.state.showSideDrawer} closed={this.sideDrawerClosedHandler} />
<main className={classes.Content}> <main className={classes.Content}>
{props.children} {this.state.children}
</main> </main>
</Aux> </Aux>
)
export default layout; );
};
}
export default Layout;

View File

@ -3,10 +3,19 @@ import React from 'react';
import classes from './SideDrawer.css'; import classes from './SideDrawer.css';
import Logo from '../../Logo/Logo'; import Logo from '../../Logo/Logo';
import NavigationItems from '../NavigationItems/NavigationItems'; import NavigationItems from '../NavigationItems/NavigationItems';
import Aux from '../../../hoc/Auxiliary';
import Backdrop from '../../UI/Backdrop/Backdrop';
const sideDrawer = (props) => {
let attachedClasses = [classes.SideDrawer, classes.Close];
if (props.open){
attachedClasses = [classes.SideDrawer, classes.Open];
}
const sideDrawer = () => {
return ( return (
<div className={classes.SideDrawer}> <Aux>
<Backdrop show={props.open} clicked={props.closed} />
<div className={attachedClasses.join(' ')}>
<div className={classes.Logo}> <div className={classes.Logo}>
<Logo /> <Logo />
</div> </div>
@ -14,6 +23,8 @@ const sideDrawer = () => {
<NavigationItems /> <NavigationItems />
</nav> </nav>
</div> </div>
</Aux>
) )
} }