EditPage.jsx 856 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { useEffect } from 'react';
  2. import PropTypes from 'prop-types';
  3. import { useIsEditable } from '~/stores/context';
  4. import { EditorMode, useEditorMode } from '~/stores/ui';
  5. const EditPage = (props) => {
  6. const { data: isEditable } = useIsEditable();
  7. const { mutate: mutateEditorMode } = useEditorMode();
  8. // setup effect
  9. useEffect(() => {
  10. if (!isEditable) {
  11. return;
  12. }
  13. // ignore when dom that has 'modal in' classes exists
  14. if (document.getElementsByClassName('modal in').length > 0) {
  15. return;
  16. }
  17. mutateEditorMode(EditorMode.Editor);
  18. // remove this
  19. props.onDeleteRender(this);
  20. }, [isEditable, mutateEditorMode, props]);
  21. return null;
  22. };
  23. EditPage.propTypes = {
  24. onDeleteRender: PropTypes.func.isRequired,
  25. };
  26. EditPage.getHotkeyStrokes = () => {
  27. return [['e']];
  28. };
  29. export default EditPage;