DisplaySwitcher.jsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import React from 'react';
  2. import { TabContent, TabPane } from 'reactstrap';
  3. import propTypes from 'prop-types';
  4. import { withUnstatedContainers } from '../UnstatedUtils';
  5. import NavigationContainer from '../../services/NavigationContainer';
  6. import Editor from '../PageEditor';
  7. import Page from '../Page';
  8. import PageEditorByHackmd from '../PageEditorByHackmd';
  9. import EditorNavbarBottom from '../PageEditor/EditorNavbarBottom';
  10. const DisplaySwitcher = (props) => {
  11. const { navigationContainer } = props;
  12. const { editorMode } = navigationContainer.state;
  13. $('#view').on('click', () => {
  14. $('body').removeClass('on-edit');
  15. $('body').removeClass('builtin-editor');
  16. $('body').removeClass('hackmd');
  17. });
  18. $('#edit').on('click', () => {
  19. $('body').addClass('on-edit');
  20. $('body').addClass('builtin-editor');
  21. $('body').removeClass('hackmd');
  22. });
  23. $('#hackmd').on('click', () => {
  24. $('body').addClass('on-edit');
  25. $('body').addClass('hackmd');
  26. $('body').removeClass('builtin-editor');
  27. });
  28. return (
  29. <>
  30. <TabContent activeTab={editorMode}>
  31. <TabPane tabId="view">
  32. <Page />
  33. </TabPane>
  34. {/* <div id="edit"> */}
  35. <TabPane tabId="edit">
  36. <>
  37. <Editor />
  38. <EditorNavbarBottom />
  39. </>
  40. </TabPane>
  41. {/* </div> */}
  42. <TabPane tabId="hackmd">
  43. <PageEditorByHackmd />
  44. <EditorNavbarBottom />
  45. </TabPane>
  46. </TabContent>
  47. </>
  48. );
  49. };
  50. DisplaySwitcher.propTypes = {
  51. navigationContainer: propTypes.instanceOf(NavigationContainer).isRequired,
  52. };
  53. export default withUnstatedContainers(DisplaySwitcher, [NavigationContainer]);