Skip to content

Commit

Permalink
Merge pull request #2972 from mbrookes/docs-example-title-desc-4
Browse files Browse the repository at this point in the history
[Docs] Menu, Paper, Popover - Add title & description to examples
  • Loading branch information
oliviertassinari committed Jan 18, 2016
2 parents e964506 + b80e79c commit adece6e
Show file tree
Hide file tree
Showing 7 changed files with 320 additions and 128 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ const MenuExampleSecondary = () => (
<MenuItem primaryText="Clear formatting" secondaryText="&#8984;/" />
</Menu>
<Menu style={style} desktop={true} width={320}>
<MenuItem primaryText="Open" secondaryText="Cmnd + O" />
<MenuItem primaryText="Open" secondaryText="Cmd + O" />
<MenuItem primaryText="Paste in place" secondaryText="Shift + V" />
<MenuItem primaryText="Research" secondaryText="Opt + Shift + Cmnd + I" />
<MenuItem primaryText="Research" secondaryText="Opt + Shift + Cmd + I" />
</Menu>
<Menu style={style} desktop={true} width={320}>
<MenuItem primaryText="Open" secondaryText="&#8984;O" />
Expand Down
44 changes: 37 additions & 7 deletions docs/src/app/components/pages/components/Menu/Page.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,56 @@ import menuExampleSecondaryCode from '!raw!./ExampleSecondary';
import MenuExampleNested from './ExampleNested';
import menuExampleNestedCode from '!raw!./ExampleNested';

const descriptions = {
simple: 'Two simple examples. The menu widths adjusts to accommodate the content in keyline increments.',
disabled: 'The `disabled` property disables a `MenuItem`. ' +
'`Menu` supports a more compact vertical spacing using the `desktop` property. ' +
'The [Divider](/#/components/divider) can be used to separate `MenuItems`.',
icons: '`MenuItem` supports icons through the `leftIcon` and `rightIcon` properties.',
secondary: '`MenuItem` supports a `secondaryText` property.',
nested: 'Cascading menus can be configured using the `menuItems` property of the `MenuItem` component.',
};

const MenuPage = () => (
<div>
<MarkdownElement text={menuReadmeText} />
<CodeExample code={menuExampleSimpleCode}>
<CodeExample
title="Simple examples"
description={descriptions.simple}
code={menuExampleSimpleCode}
>
<MenuExampleSimple />
</CodeExample>
<CodeExample code={menuExampleDisableCode}>
<CodeExample
title="Disabled items"
description={descriptions.disabled}
code={menuExampleDisableCode}
>
<MenuExampleDisable />
</CodeExample>
<CodeExample code={menuExampleIconsCode}>
<CodeExample
title="Icons"
description={descriptions.icons}
code={menuExampleIconsCode}
>
<MenuExampleIcons />
</CodeExample>
<CodeExample code={menuExampleSecondaryCode}>
<CodeExample
title="Secondary text"
description={descriptions.secondary}
code={menuExampleSecondaryCode}
>
<MenuExampleSecondary />
</CodeExample>
<CodeExample code={menuExampleNestedCode}>
<CodeExample
title="Nested menus"
description={descriptions.nested}
code={menuExampleNestedCode}
>
<MenuExampleNested />
</CodeExample>
<PropTypeDescription code={menuCode} header = "### Menu Properties"/>
<PropTypeDescription code={menuItemCode} header="### MenuItem Properties"/>
<PropTypeDescription header="### Menu Properties" code={menuCode} />
<PropTypeDescription header="### MenuItem Properties" code={menuItemCode} />
</div>
);

Expand Down
24 changes: 21 additions & 3 deletions docs/src/app/components/pages/components/Paper/Page.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,34 @@ import paperExampleRoundedCode from '!raw!./ExampleRounded';
import PaperExampleCircle from './ExampleCircle';
import paperExampleCircleCode from '!raw!./ExampleCircle';

const descriptions = {
simple: 'Paper examples showing the range of `zDepth`.',
rounded: 'Corners are rounded by default. Set the `rounded` property to `false` for square corners.',
circle: 'Set the `circle` property for circular Paper.',
};

const PaperPage = () => (
<div>
<MarkdownElement text={paperReadmeText} />
<CodeExample code={paperExampleSimpleCode}>
<CodeExample
title="Simple example"
description={descriptions.simple}
code={paperExampleSimpleCode}
>
<PaperExampleSimple />
</CodeExample>
<CodeExample code={paperExampleRoundedCode}>
<CodeExample
title="Non-rounded corners"
description={descriptions.rounded}
code={paperExampleRoundedCode}
>
<PaperExampleRounded />
</CodeExample>
<CodeExample code={paperExampleCircleCode}>
<CodeExample
title="Circular Paper"
description={descriptions.circle}
code={paperExampleCircleCode}
>
<PaperExampleCircle />
</CodeExample>
<PropTypeDescription code={paperCode}/>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import React from 'react';
import Popover from 'material-ui/lib/popover/popover';
import PopoverAnimationFromTop from 'material-ui/lib/popover/popover-animation-from-top';
import RaisedButton from 'material-ui/lib/raised-button';

const styles = {
popover: {
padding: 20,
},
};

export default class PopoverExampleAnimation extends React.Component {

constructor(props) {
super(props);

this.state = {
open: false,
};
}

handleTouchTap = (event) => {
this.setState({
open: true,
anchorEl: event.currentTarget,
});
};

handleRequestClose = () => {
this.setState({
open: false,
});
};

render() {
return (
<div>
<RaisedButton
onTouchTap={this.handleTouchTap}
label="Click me"
/>
<Popover
open={this.state.open}
anchorEl={this.state.anchorEl}
anchorOrigin={{horizontal: 'left', vertical: 'bottom'}}
targetOrigin={{horizontal: 'left', vertical: 'top'}}
onRequestClose={this.handleRequestClose}
animation={PopoverAnimationFromTop}
>
<div style={styles.popover}>
<RaisedButton primary={true} label="Here is a button"/>
</div>
</Popover>
</div>
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
import React from 'react';
import Popover from 'material-ui/lib/popover/popover';
import PopoverAnimationFromTop from 'material-ui/lib/popover/popover-animation-from-top';
import RadioButton from 'material-ui/lib/radio-button';
import RaisedButton from 'material-ui/lib/raised-button';

const styles = {
popover: {
padding: 20,
},
h3: {
marginTop: 20,
fontWeight: 400,
},
block: {
display: 'flex',
},
block2: {
margin: 10,
},
};

export default class PopoverExampleConfigurable extends React.Component {

constructor(props) {
super(props);

this.state = {
open: false,
anchorOrigin: {
horizontal: 'left',
vertical: 'bottom',
},
targetOrigin: {
horizontal: 'left',
vertical: 'top',
},
};
}

handleTouchTap = (event) => {
this.setState({
open: true,
anchorEl: event.currentTarget,
});
};

handleRequestClose = () => {
this.setState({
open: false,
});
};

setAnchor = (positionElement, position) => {
const {anchorOrigin} = this.state;
anchorOrigin[positionElement] = position;

this.setState({
anchorOrigin: anchorOrigin,
});
};

setTarget = (positionElement, position) => {
const {targetOrigin} = this.state;
targetOrigin[positionElement] = position;

this.setState({
targetOrigin: targetOrigin,
});
};

render() {
return (
<div>
<RaisedButton
onTouchTap={this.handleTouchTap}
label="Click me"
/>
<h3 style={styles.h3}>Current Settings</h3>
<pre>
anchorOrigin: {JSON.stringify(this.state.anchorOrigin)}
<br/>
targetOrigin: {JSON.stringify(this.state.targetOrigin)}
</pre>
<h3 style={styles.h3}>Position Options</h3>
<p>Use the settings below to toggle the positioning of the popovers above</p>
<h3 style={styles.h3}>Anchor Origin</h3>
<div style={styles.block}>
<div style={styles.block2}>
<span>Vertical</span>
<RadioButton
onClick={this.setAnchor.bind(this, 'vertical', 'top')}
label="Top" checked={this.state.anchorOrigin.vertical === 'top'}
/>
<RadioButton
onClick={this.setAnchor.bind(this, 'vertical', 'center')}
label="Center" checked={this.state.anchorOrigin.vertical === 'center'}
/>
<RadioButton
onClick={this.setAnchor.bind(this, 'vertical', 'bottom')}
label="Bottom" checked={this.state.anchorOrigin.vertical === 'bottom'}
/>
</div>
<div style={styles.block2}>
<span>Horizontal</span>
<RadioButton
onClick={this.setAnchor.bind(this, 'horizontal', 'left')}
label="Left" checked={this.state.anchorOrigin.horizontal === 'left'}
/>
<RadioButton
onClick={this.setAnchor.bind(this, 'horizontal', 'middle')}
label="Middle" checked={this.state.anchorOrigin.horizontal === 'middle'}
/>
<RadioButton
onClick={this.setAnchor.bind(this, 'horizontal', 'right')}
label="Right" checked={this.state.anchorOrigin.horizontal === 'right'}
/>
</div>
</div>
<h3 style={styles.h3}>Target Origin</h3>
<div style={styles.block}>
<div style={styles.block2}>
<span>Vertical</span>
<RadioButton
onClick={this.setTarget.bind(this, 'vertical', 'top')}
label="Top" checked={this.state.targetOrigin.vertical === 'top'}
/>
<RadioButton
onClick={this.setTarget.bind(this, 'vertical', 'center')}
label="Center" checked={this.state.targetOrigin.vertical === 'center'}
/>
<RadioButton
onClick={this.setTarget.bind(this, 'vertical', 'bottom')}
label="Bottom" checked={this.state.targetOrigin.vertical === 'bottom'}
/>
</div>
<div style={styles.block2}>
<span>Horizontal</span>
<RadioButton
onClick={this.setTarget.bind(this, 'horizontal', 'left')}
label="Left" checked={this.state.targetOrigin.horizontal === 'left'}
/>
<RadioButton
onClick={this.setTarget.bind(this, 'horizontal', 'middle')}
label="Middle" checked={this.state.targetOrigin.horizontal === 'middle'}
/>
<RadioButton
onClick={this.setTarget.bind(this, 'horizontal', 'right')}
label="Right" checked={this.state.targetOrigin.horizontal === 'right'}
/>
</div>
</div>
<Popover
open={this.state.open}
anchorEl={this.state.anchorEl}
anchorOrigin={this.state.anchorOrigin}
targetOrigin={this.state.targetOrigin}
onRequestClose={this.handleRequestClose}
animation={PopoverAnimationFromTop}
>
<div style={styles.popover}>
<RaisedButton primary={true} label="Here is a button"/>
</div>
</Popover>
</div>
);
}
}
Loading

0 comments on commit adece6e

Please sign in to comment.