index.tsx 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import * as React from "react";
  2. import * as ReactDOM from "react-dom";
  3. import { LayoutDemo } from './NormalLayout/index';
  4. import { SortedTable } from "./SortedTable/index";
  5. import { SortedTableWithStatic } from "./StaticHeader/index";
  6. import { LayoutRestore } from "./LayoutRestore/index";
  7. import { HandleLayout } from "./HandleLayout/index";
  8. import './index.css'
  9. const DemoMap: any = {
  10. normalLayout: <LayoutDemo />,
  11. SortedTable: <SortedTable />,
  12. StaticHeader: <SortedTableWithStatic />,
  13. LayoutRestore: <LayoutRestore />,
  14. HandleLayout: <HandleLayout />
  15. }
  16. class DemoDispatcher extends React.Component<{}, {}> {
  17. state = {
  18. demo: <LayoutDemo />
  19. }
  20. handleLayoutChange = (demoName: string) => {
  21. this.setState({
  22. demo: DemoMap[demoName]
  23. })
  24. }
  25. render() {
  26. return (
  27. <div>
  28. <div className='demo-button-layout'>
  29. <div>Switch Demos</div>
  30. <button onClick={() => this.handleLayoutChange('normalLayout')}>normalLayout</button>
  31. <button onClick={() => this.handleLayoutChange('SortedTable')}>SortedTable</button>
  32. <button onClick={() => this.handleLayoutChange('StaticHeader')}>StaticHeader</button>
  33. <button onClick={() => this.handleLayoutChange('LayoutRestore')}>LayoutRestore</button>
  34. <button onClick={() => this.handleLayoutChange('HandleLayout')}>HandleLayout</button>
  35. </div>
  36. {this.state.demo}
  37. </div>
  38. )
  39. }
  40. }
  41. ReactDOM.render(
  42. <DemoDispatcher />,
  43. document.getElementById('root')
  44. );