From 2801ab0ef9c5dae01b6dcb45b1046c13341f5536 Mon Sep 17 00:00:00 2001 From: tonyrewin Date: Sun, 9 Oct 2022 03:00:13 +0300 Subject: [PATCH] wip-refactor --- .../Editor/components/ArticlesList.tsx | 23 - src/components/Editor/components/Editor.tsx | 33 + src/components/Editor/components/Error.tsx | 48 +- src/components/Editor/components/Layout.tsx | 12 +- .../Editor/components/ProseMirror.tsx | 71 +++ src/components/Editor/components/Sidebar.tsx | 168 ++---- src/components/Editor/db.ts | 25 +- src/components/Editor/index.tsx | 21 +- .../Editor/prosemirror/extension/base.ts | 2 +- .../Editor/prosemirror/extension/code.ts | 7 +- .../Editor/prosemirror/extension/collab.ts | 16 +- .../prosemirror/extension/drag-handle.ts | 11 +- .../Editor/prosemirror/extension/image.ts | 85 +-- .../Editor/prosemirror/extension/index.d.ts | 1 - .../Editor/prosemirror/extension/link.ts | 99 +-- .../prosemirror/extension/mark-input-rule.ts | 18 +- .../Editor/prosemirror/extension/markdown.ts | 6 +- .../Editor/prosemirror/extension/menu.ts | 2 +- .../prosemirror/extension/paste-markdown.ts | 102 ++-- .../prosemirror/extension/placeholder.ts | 3 +- .../Editor/prosemirror/extension/prompt.ts | 84 ++- .../Editor/prosemirror/extension/scroll.ts | 2 +- .../Editor/prosemirror/extension/selection.ts | 42 +- .../prosemirror/extension/strikethrough.ts | 4 +- .../Editor/prosemirror/extension/table.ts | 3 +- .../Editor/prosemirror/extension/todo-list.ts | 12 +- .../state.ts => prosemirror/helpers.ts} | 16 +- src/components/Editor/prosemirror/index.ts | 46 ++ src/components/Editor/prosemirror/index.tsx | 102 ---- src/components/Editor/prosemirror/markdown.ts | 85 +-- src/components/Editor/prosemirror/setup.ts | 55 +- src/components/Editor/store/ctrl.ts | 565 ++++++++++++------ .../Editor/store/{context.ts => index.ts} | 91 +-- src/components/Views/Create.tsx | 25 +- src/locales/ru.json | 3 +- src/stores/editor.ts | 13 +- 36 files changed, 997 insertions(+), 904 deletions(-) delete mode 100644 src/components/Editor/components/ArticlesList.tsx create mode 100644 src/components/Editor/components/Editor.tsx create mode 100644 src/components/Editor/components/ProseMirror.tsx delete mode 100644 src/components/Editor/prosemirror/extension/index.d.ts rename src/components/Editor/{store/state.ts => prosemirror/helpers.ts} (94%) create mode 100644 src/components/Editor/prosemirror/index.ts delete mode 100644 src/components/Editor/prosemirror/index.tsx rename src/components/Editor/store/{context.ts => index.ts} (54%) diff --git a/src/components/Editor/components/ArticlesList.tsx b/src/components/Editor/components/ArticlesList.tsx deleted file mode 100644 index 8bdd6e18..00000000 --- a/src/components/Editor/components/ArticlesList.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import '../styles/ArticlesList.scss' - -export default () => { - return ( -
-
-
-
Черновик
-
- Поствыживание. Комплекс вины и кризис самооценки в дивном новом мире.{' '} - В летописи российского музыкального подполья остаётся множество лакун. -
- -
-
-
Редактировать
-
Опубликовать
-
Удалить
-
-
-
- ) -} diff --git a/src/components/Editor/components/Editor.tsx b/src/components/Editor/components/Editor.tsx new file mode 100644 index 00000000..c87915d3 --- /dev/null +++ b/src/components/Editor/components/Editor.tsx @@ -0,0 +1,33 @@ +import type { EditorView } from 'prosemirror-view' +import type { EditorState } from 'prosemirror-state' +import { useState } from '../store' +import { ProseMirror } from '../components/ProseMirror' +import '../styles/Editor.scss' +import type { ProseMirrorExtension, ProseMirrorState } from '../prosemirror/helpers' + +export default () => { + const [store, ctrl] = useState() + const onInit = (text: EditorState, editorView: EditorView) => ctrl.setState({ editorView, text }) + const onReconfigure = (text: EditorState) => ctrl.setState({ text }) + const onChange = (text: EditorState) => ctrl.setState({ text, lastModified: new Date() }) + // const editorCss = (config) => css`` + const style = () => { + if (store.error) { + return `display: none;` + } else { + return store.markdown ? `white-space: pre-wrap;` : '' + } + } + return ( + + ) +} diff --git a/src/components/Editor/components/Error.tsx b/src/components/Editor/components/Error.tsx index dc04cb26..bcfcb97b 100644 --- a/src/components/Editor/components/Error.tsx +++ b/src/components/Editor/components/Error.tsx @@ -1,5 +1,23 @@ -import { Switch, Match, createMemo } from 'solid-js' -import { ErrorObject, useState } from '../store/context' +import { Switch, Match } from 'solid-js' +import { useState } from '../store' +import '../styles/Button.scss' + +export default () => { + const [store] = useState() + return ( + }> + + + + + + + + + + + ) +} const InvalidState = (props: { title: string }) => { const [store, ctrl] = useState() @@ -15,7 +33,7 @@ const InvalidState = (props: { title: string }) => { you can copy important notes from below, clean the state and paste it again.

-          {JSON.stringify(store.error)}
+          {JSON.stringify(store.error.props)}