Skip to content

Commit d7fc217

Browse files
committed
fixed
I've used React.cloneElement to "inject" the new props
1 parent 4e5d011 commit d7fc217

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/components/Layout/Layout.jsx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import React from 'react';
22
import PropTypes from 'prop-types';
3+
import compose from 'recompose/compose';
34
import { withStyles } from 'material-ui/styles';
45
import classNames from 'classnames';
56
import Drawer from 'material-ui/Drawer';
6-
import compose from 'recompose/compose';
77
import withWidth, { isWidthDown } from 'material-ui/utils/withWidth';
88
import controllable from 'react-controllables';
99

@@ -164,6 +164,14 @@ class Layout extends React.PureComponent {
164164
[`${classes.drawerHeaderTwoRowAppBar}`]: usingTwoRowAppBar,
165165
})
166166

167+
// FIXME find a better way to inject the closeDrawer prop
168+
const leftDrawerContentWithProps = leftDrawerContent
169+
? React.cloneElement(leftDrawerContent, { closeDrawer: this.handleLeftDrawerClose })
170+
: leftDrawerContent;
171+
const rightDrawerContentWithProps = rightDrawerContent
172+
? React.cloneElement(rightDrawerContent, { closeDrawer: this.handleRightDrawerClose })
173+
: rightDrawerContent;
174+
167175
return (
168176
<div className={classes.layout}>
169177
<AppBar
@@ -183,10 +191,11 @@ class Layout extends React.PureComponent {
183191
classes={{ paper: leftDrawerPaperClassnames }}
184192
{...leftDrawerProps}
185193
>
194+
{/* add a header to move content down if screen is not small and under the appbar */}
186195
{!smallScreen && leftDrawerUnder ? (
187196
<div className={drawerHeaderClassnames} />
188197
) : null}
189-
{leftDrawerContent}
198+
{leftDrawerContentWithProps}
190199
</Drawer>
191200
) : null}
192201
{rightDrawerContent ? (
@@ -198,10 +207,11 @@ class Layout extends React.PureComponent {
198207
classes={{ paper: rightDrawerPaperClassnames }}
199208
{...rightDrawerProps}
200209
>
210+
{/* add a header to move content down if screen is not small and under the appbar */}
201211
{!smallScreen && rightDrawerUnder ? (
202212
<div className={drawerHeaderClassnames} />
203213
) : null}
204-
{rightDrawerContent}
214+
{rightDrawerContentWithProps}
205215
</Drawer>
206216
) : null}
207217
<main className={mainClassnames}>{children}</main>

0 commit comments

Comments
 (0)