Skip to content

Instantly share code, notes, and snippets.

@davidgilbertson
Last active August 18, 2017 10:11
Show Gist options
  • Save davidgilbertson/b7c9b4a9f99e7fc301687e151540de6b to your computer and use it in GitHub Desktop.
Save davidgilbertson/b7c9b4a9f99e7fc301687e151540de6b to your computer and use it in GitHub Desktop.

Revisions

  1. davidgilbertson revised this gist Feb 25, 2017. 1 changed file with 8 additions and 1 deletion.
    9 changes: 8 additions & 1 deletion Page.jsx
    Original file line number Diff line number Diff line change
    @@ -1,13 +1,20 @@
    import HomePage from './HomePage.jsx';
    import AboutPage from './AboutPage.jsx';
    import UserPage from './UserPage.jsx';
    import FourOhFourPage from './FourOhFourPage.jsx';

    const PAGES = {
    home: HomePage,
    about: AboutPage,
    user: UserPage,
    };

    const Page = (props) => {
    const Handler = PAGES[props.page] || FourOhFourPage;

    return <Handler {...props} />
    };

    Page.propTypes = {
    page: React.PropTypes.oneOf(Object.keys(PAGES)).isRequired,
    page: PropTypes.oneOf(Object.keys(PAGES)).isRequired,
    };
  2. davidgilbertson created this gist Feb 25, 2017.
    13 changes: 13 additions & 0 deletions Page.jsx
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,13 @@
    const PAGES = {
    home: HomePage,
    about: AboutPage,
    user: UserPage,
    };
    const Page = (props) => {
    const Handler = PAGES[props.page] || FourOhFourPage;

    return <Handler {...props} />
    };
    Page.propTypes = {
    page: React.PropTypes.oneOf(Object.keys(PAGES)).isRequired,
    };