mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
Added React-MD example (#940)
This commit is contained in:
parent
59281adef3
commit
0a2466a36e
30
examples/with-react-md/README.md
Normal file
30
examples/with-react-md/README.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
|
||||
# Example app with react-md
|
||||
|
||||
## How to use
|
||||
|
||||
Download the example [or clone the repo](https://github.com/zeit/next.js):
|
||||
|
||||
```bash
|
||||
curl https://codeload.github.com/zeit/next.js/tar.gz/master | tar -xz --strip=2 next.js-master/examples/with-react-md
|
||||
cd with-react-md
|
||||
```
|
||||
|
||||
Install it and run:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Deploy it to the cloud with [now](https://zeit.co/now) ([download](https://zeit.co/download))
|
||||
|
||||
```bash
|
||||
now
|
||||
```
|
||||
|
||||
## The idea behind the example
|
||||
|
||||
This example features how yo use [react-md](https://react-md.mlaursen.com/) (React Material Design) with Next.js.
|
||||
|
||||
I recommend reading [layout-component](../layout-component) example next to learn how to reuse the layout across the pages.
|
19
examples/with-react-md/package.json
Normal file
19
examples/with-react-md/package.json
Normal file
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"name": "with-react-md",
|
||||
"version": "1.0.0",
|
||||
"scripts": {
|
||||
"dev": "next",
|
||||
"build": "next build",
|
||||
"start": "next start"
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "^2.0.0-beta",
|
||||
"react": "^15.4.2",
|
||||
"react-addons-css-transition-group": "^15.4.2",
|
||||
"react-addons-transition-group": "^15.4.2",
|
||||
"react-dom": "^15.4.2",
|
||||
"react-md": "^1.0.1"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
}
|
94
examples/with-react-md/pages/index.js
Normal file
94
examples/with-react-md/pages/index.js
Normal file
|
@ -0,0 +1,94 @@
|
|||
import Head from 'next/head'
|
||||
import Link from 'next/link'
|
||||
|
||||
import Avatar from 'react-md/lib/Avatars'
|
||||
import Button from 'react-md/lib/Buttons/Button'
|
||||
import FontIcon from 'react-md/lib/FontIcons'
|
||||
import ListItem from 'react-md/lib/Lists/ListItem'
|
||||
import NavigationDrawer from 'react-md/lib/NavigationDrawers'
|
||||
import SelectField from 'react-md/lib/SelectFields'
|
||||
|
||||
const avatarSrc = 'https://cloud.githubusercontent.com/assets/13041/19686250/971bf7f8-9ac0-11e6-975c-188defd82df1.png'
|
||||
|
||||
const drawerHeaderChildren = [
|
||||
<Avatar
|
||||
key={avatarSrc}
|
||||
src={avatarSrc}
|
||||
role='presentation'
|
||||
iconSized
|
||||
style={{ alignSelf: 'center', marginLeft: 16, marginRight: 16, flexShrink: 0 }}
|
||||
/>,
|
||||
<SelectField
|
||||
id='account-switcher'
|
||||
defaultValue='Jonathan'
|
||||
menuItems={['Jonathan', 'Fred']}
|
||||
key='account-switcher'
|
||||
position={SelectField.Positions.BELOW}
|
||||
className='md-select-field--toolbar'
|
||||
/>
|
||||
]
|
||||
|
||||
const NavigationLink = (props) => {
|
||||
const { href, as, children, ..._props } = props
|
||||
return (
|
||||
<div {..._props}>
|
||||
<Link href={href} as={as}>
|
||||
<a className='md-list-tile' style={{padding: 0, overflow: 'hidden'}}>
|
||||
{children}
|
||||
</a>
|
||||
</Link>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default () => {
|
||||
const closeButton = (
|
||||
<Button
|
||||
icon
|
||||
tooltipLabel='Close the interactive demo'
|
||||
tooltipDelay={150}
|
||||
tooltipPosition='left'
|
||||
>
|
||||
close
|
||||
</Button>
|
||||
)
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Head>
|
||||
<link rel='stylesheet' href='/static/react-md.light_blue-yellow.min.css' />
|
||||
<link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Roboto:300,400,500' />
|
||||
<link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Material+Icons' />
|
||||
</Head>
|
||||
<NavigationDrawer
|
||||
navItems={[
|
||||
<ListItem
|
||||
key='0'
|
||||
component={NavigationLink}
|
||||
href='/'
|
||||
leftIcon={<FontIcon>inbox</FontIcon>}
|
||||
tileClassName='md-list-tile--mini'
|
||||
primaryText={'Root'}
|
||||
/>,
|
||||
<ListItem
|
||||
key='1'
|
||||
component={NavigationLink}
|
||||
href='/non-existing-page'
|
||||
leftIcon={<FontIcon>star</FontIcon>}
|
||||
tileClassName='md-list-tile--mini'
|
||||
primaryText={'404 page'}
|
||||
/>
|
||||
]}
|
||||
contentClassName='md-grid'
|
||||
drawerHeaderChildren={drawerHeaderChildren}
|
||||
mobileDrawerType={NavigationDrawer.DrawerTypes.TEMPORARY_MINI}
|
||||
tabletDrawerType={NavigationDrawer.DrawerTypes.PERSISTENT_MINI}
|
||||
desktopDrawerType={NavigationDrawer.DrawerTypes.PERSISTENT_MINI}
|
||||
toolbarTitle='Hello, World!'
|
||||
toolbarActions={closeButton}
|
||||
>
|
||||
<h1>Hello Next.js!</h1>
|
||||
</NavigationDrawer>
|
||||
</div>
|
||||
)
|
||||
}
|
1
examples/with-react-md/static/react-md.light_blue-yellow.min.css
vendored
Symbolic link
1
examples/with-react-md/static/react-md.light_blue-yellow.min.css
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../node_modules/react-md/dist/react-md.light_blue-yellow.min.css
|
Loading…
Reference in a new issue