From 8ca8e041fdd62630272c14cec1f597663e2feaa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Tue, 22 Sep 2020 15:22:24 +0200 Subject: [PATCH] refactoring --- packages/core/src/Editor.ts | 10 ++++----- packages/core/src/commands/blur.ts | 4 ++-- packages/core/src/commands/focus.ts | 28 +----------------------- packages/core/src/commands/insertHTML.ts | 3 +-- 4 files changed, 8 insertions(+), 37 deletions(-) diff --git a/packages/core/src/Editor.ts b/packages/core/src/Editor.ts index 23f2dcc8..cad48bfb 100644 --- a/packages/core/src/Editor.ts +++ b/packages/core/src/Editor.ts @@ -19,16 +19,14 @@ import Mark from './Mark' import ComponentRenderer from './ComponentRenderer' import defaultPlugins from './plugins' import * as commands from './commands' -import { deleteSelection } from 'prosemirror-commands' export type Command = (props: { - editor: Editor - tr: Transaction - // TODO: find correct type - commands: any + editor: Editor, + tr: Transaction, + commands: SingleCommands, state: EditorState, view: EditorView, - dispatch: (args?: any) => any + dispatch: (args?: any) => any, }) => boolean export interface CommandSpec { diff --git a/packages/core/src/commands/blur.ts b/packages/core/src/commands/blur.ts index bf8d28f5..ec46a8ba 100644 --- a/packages/core/src/commands/blur.ts +++ b/packages/core/src/commands/blur.ts @@ -8,8 +8,8 @@ declare module '../Editor' { } } -export const blur: BlurCommand = () => ({ editor }) => { - const element = editor.view.dom as HTMLElement +export const blur: BlurCommand = () => ({ view }) => { + const element = view.dom as HTMLElement element.blur() diff --git a/packages/core/src/commands/focus.ts b/packages/core/src/commands/focus.ts index 6291d2c1..b9b9ae51 100644 --- a/packages/core/src/commands/focus.ts +++ b/packages/core/src/commands/focus.ts @@ -44,33 +44,7 @@ function resolveSelection(editor: Editor, position: Position = null): ResolvedSe } } -// export default (next: Function, editor: Editor) => (position = null) => { -// const { view, state } = editor - -// if ((view.hasFocus() && position === null) || position === false) { -// next() -// return -// } - -// const { from, to } = resolveSelection(editor, position) -// const { doc, tr } = state -// const resolvedFrom = minMax(from, 0, doc.content.size) -// const resolvedEnd = minMax(to, 0, doc.content.size) -// const selection = TextSelection.create(doc, resolvedFrom, resolvedEnd) -// const transaction = tr.setSelection(selection) - -// view.dispatch(transaction) -// view.focus() -// //@ts-ignore -// // console.log(bla) -// // return 'FOCUS' -// next() -// } - - -export const focus: FocusCommand = (position = null) => ({ editor, tr }) => { - const { view } = editor - +export const focus: FocusCommand = (position = null) => ({ editor, view, tr }) => { if ((view.hasFocus() && position === null) || position === false) { return true } diff --git a/packages/core/src/commands/insertHTML.ts b/packages/core/src/commands/insertHTML.ts index 362602d6..ccee22f9 100644 --- a/packages/core/src/commands/insertHTML.ts +++ b/packages/core/src/commands/insertHTML.ts @@ -25,8 +25,7 @@ function selectionToInsertionEnd(tr: Transaction, startLen: number, bias: number tr.setSelection(Selection.near(tr.doc.resolve(end as unknown as number), bias)) } -export const insertHTML: InsertHTMLCommand = value => ({ tr, editor }) => { - const { state } = editor +export const insertHTML: InsertHTMLCommand = value => ({ tr, state }) => { const { selection } = tr const element = elementFromString(value) const slice = DOMParser.fromSchema(state.schema).parseSlice(element)