PageRenderTime 48ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/docs/src/app/components/pages/components/left-nav.jsx

https://gitlab.com/lisit1003/material-ui
JSX | 135 lines | 121 code | 14 blank | 0 comment | 1 complexity | b412edb6469603d08e95cd4775a24533 MD5 | raw file
  1. var React = require('react');
  2. var mui = require('mui');
  3. var MenuItem = mui.MenuItem;
  4. var LeftNav = mui.LeftNav;
  5. var RaisedButton = mui.RaisedButton;
  6. var ComponentDoc = require('../../component-doc.jsx');
  7. var LeftNavPage = React.createClass({
  8. getInitialState: function() {
  9. return {
  10. isDocked: false
  11. };
  12. },
  13. render: function() {
  14. var menuItems = [
  15. { route: 'get-started', text: 'Get Started' },
  16. { route: 'css-framework', text: 'CSS Framework' },
  17. { route: 'components', text: 'Components' },
  18. { type: MenuItem.Types.SUBHEADER, text: 'Resources' },
  19. { type: MenuItem.Types.LINK, payload: 'https://github.com/callemall/material-ui', text: 'GitHub' }
  20. ];
  21. var code =
  22. 'menuItems = [\n' +
  23. ' { route: \'get-started\', text: \'Get Started\' },\n' +
  24. ' { route: \'css-framework\', text: \'CSS Framework\' },\n' +
  25. ' { route: \'components\', text: \'Components\' },\n' +
  26. ' { type: MenuItem.Types.SUBHEADER, text: \'Resources\' },\n' +
  27. ' { \n' +
  28. ' type: MenuItem.Types.LINK, \n' +
  29. ' payload: \'https://github.com/callemall/material-ui\', \n' +
  30. ' text: \'GitHub\' \n' +
  31. ' },\n' +
  32. '];\n\n' +
  33. '//Docked Left Nav\n' +
  34. '<LeftNav menuItems={menuItems} />\n\n' +
  35. '//Hideable Left Nav\n' +
  36. '<LeftNav docked={false} menuItems={menuItems} />\n\n';
  37. var componentInfo = [
  38. {
  39. name: 'Props',
  40. infoArray: [
  41. {
  42. name: 'menuItems',
  43. type: 'array',
  44. header: 'required',
  45. desc: 'JSON data representing all menu items to render.'
  46. },
  47. {
  48. name: 'docked',
  49. type: 'bool',
  50. header: 'default: true',
  51. desc: 'Indicates that the left nav should be docked. In this state, the ' +
  52. 'overlay won\'t show and clicking on a menu item will not close the left nav.'
  53. },
  54. {
  55. name: 'header',
  56. type: 'element',
  57. header: 'optional',
  58. desc: 'A react component that will be displayed above all the menu items. ' +
  59. 'Usually, this is used for a logo or a profile image.'
  60. },
  61. {
  62. name: 'selectedIndex',
  63. type: 'number',
  64. header: 'optional',
  65. desc: 'Indicates the particular item in the menuItems array that is ' +
  66. 'currently selected.'
  67. }
  68. ]
  69. },
  70. {
  71. name: 'Methods',
  72. infoArray: [
  73. {
  74. name: 'close',
  75. header: 'LeftNav.close()',
  76. desc: 'Closes the component, hiding it from view.'
  77. },
  78. {
  79. name: 'toggle',
  80. header: 'LeftNav.toggle()',
  81. desc: 'Toggles between the open and closed states.'
  82. }
  83. ]
  84. },
  85. {
  86. name: 'Events',
  87. infoArray: [
  88. {
  89. name: 'onChange',
  90. header: 'function(e, selectedIndex, menuItem)',
  91. desc: 'Fired when a menu item is clicked that is not the one currently ' +
  92. 'selected.'
  93. }
  94. ]
  95. }
  96. ];
  97. return (
  98. <ComponentDoc
  99. name="Left Nav"
  100. code={code}
  101. componentInfo={componentInfo}>
  102. <div className="left-nav-example">
  103. <RaisedButton label="Toggle Docked Left Nav" onTouchTap={this._toggleDockedLeftNavClick} /><br/><br/>
  104. <RaisedButton label="Show Hideable Left Nav" onTouchTap={this._showLeftNavClick} />
  105. <LeftNav ref="dockedLeftNav" docked={this.state.isDocked} menuItems={menuItems} />
  106. <LeftNav ref="leftNav" docked={false} menuItems={menuItems} />
  107. </div>
  108. </ComponentDoc>
  109. );
  110. },
  111. _showLeftNavClick: function() {
  112. this.refs.leftNav.toggle();
  113. },
  114. _toggleDockedLeftNavClick: function() {
  115. this.refs.dockedLeftNav.toggle();
  116. this.setState({
  117. isDocked: !this.state.isDocked
  118. });
  119. }
  120. });
  121. module.exports = LeftNavPage;