index.tsx 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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 './index.css'
  8. const DemoMap: any = {
  9. normalLayout: <LayoutDemo />,
  10. SortedTable: <SortedTable />,
  11. StaticHeader: <SortedTableWithStatic />,
  12. LayoutRestore: <LayoutRestore />
  13. }
  14. class DemoDispatcher extends React.Component<{}, {}> {
  15. state = {
  16. demo: <LayoutDemo />
  17. }
  18. handleLayoutChange = (demoName: string) => {
  19. this.setState({
  20. demo: DemoMap[demoName]
  21. })
  22. }
  23. render() {
  24. return (
  25. <div>
  26. <div className='demo-button-layout'>
  27. <div>Switch Demos</div>
  28. <button onClick={() => this.handleLayoutChange('normalLayout')}>normalLayout</button>
  29. <button onClick={() => this.handleLayoutChange('SortedTable')}>SortedTable</button>
  30. <button onClick={() => this.handleLayoutChange('StaticHeader')}>StaticHeader</button>
  31. <button onClick={() => this.handleLayoutChange('LayoutRestore')}>LayoutRestore</button>
  32. </div>
  33. {this.state.demo}
  34. </div>
  35. )
  36. }
  37. }
  38. ReactDOM.render(
  39. <DemoDispatcher />,
  40. document.getElementById('root')
  41. );