Skip to content

Commit

Permalink
Fix page theme not applying correctly
Browse files Browse the repository at this point in the history
  • Loading branch information
lundberg committed Mar 22, 2019
1 parent 5b68f87 commit db2049f
Showing 1 changed file with 28 additions and 15 deletions.
43 changes: 28 additions & 15 deletions src/Page.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,8 @@ const styles = theme => ({
},
});

class Page extends React.Component {
class ThemedPage extends React.Component {
static propTypes = {
classes: PropTypes.object.isRequired,
controller: PropTypes.shape({ current: PropTypes.object }).isRequired,
component: PropTypes.func,
theme: PropTypes.object,
Expand All @@ -32,19 +31,42 @@ class Page extends React.Component {
theme: undefined,
};

render() {
const { theme, ...rest } = this.props;
return theme ? (
<MuiThemeProvider theme={theme}>
<BananasPage {...rest} />
</MuiThemeProvider>
) : (
<BananasPage {...rest} />
);
}
}

class Page extends React.Component {
static propTypes = {
classes: PropTypes.object.isRequired,
controller: PropTypes.shape({ current: PropTypes.object }).isRequired,
component: PropTypes.func,
};

static defaultProps = {
component: undefined,
};

constructor(props) {
super(props);

// Destruct named props to filter out props to pass over to page component
const { classes, component, controller, theme, ...pageProps } = props;
const { classes, component, controller, ...pageProps } = props;

this.state = {
PageComponent: component,
pageProps,
};
}

renderPage() {
render() {
const { classes, controller } = this.props;
const { PageComponent, pageProps } = this.state;
return (
Expand All @@ -58,15 +80,6 @@ class Page extends React.Component {
</div>
);
}

render() {
const { theme } = this.props;
return theme ? (
<MuiThemeProvider theme={theme}>{this.renderPage()}</MuiThemeProvider>
) : (
this.renderPage()
);
}
}

class PageLoadController extends React.Component {
Expand Down Expand Up @@ -105,5 +118,5 @@ class PageLoadController extends React.Component {
}

const BananasPage = withStyles(styles, { name: "BananasPage" })(Page);
export default BananasPage;
export { BananasPage as Page, PageLoadController };
export default ThemedPage;
export { ThemedPage as Page, PageLoadController };

0 comments on commit db2049f

Please sign in to comment.