fix: Add ability to convert between checklist and other types of list
This commit is contained in:
@@ -1,22 +1,16 @@
|
||||
import { PluginSimple } from "markdown-it";
|
||||
import { InputRule } from "prosemirror-inputrules";
|
||||
import { NodeType, MarkType, Schema } from "prosemirror-model";
|
||||
import { EditorState, Plugin, Transaction } from "prosemirror-state";
|
||||
import { EditorState, Plugin } from "prosemirror-state";
|
||||
import { EditorView } from "prosemirror-view";
|
||||
import { Editor } from "../../../app/editor";
|
||||
import { Dispatch } from "../types";
|
||||
|
||||
export type Command = (
|
||||
state: EditorState,
|
||||
dispatch: (tr: Transaction) => void
|
||||
) => boolean;
|
||||
export type Command = (state: EditorState, dispatch: Dispatch) => boolean;
|
||||
|
||||
export type CommandFactory = (
|
||||
attrs?: Record<string, any>
|
||||
) => (
|
||||
state: EditorState,
|
||||
dispatch: (tr: Transaction) => void,
|
||||
view: EditorView
|
||||
) => boolean;
|
||||
) => (state: EditorState, dispatch: Dispatch, view: EditorView) => boolean;
|
||||
|
||||
export default class Extension {
|
||||
options: any;
|
||||
|
||||
18
shared/editor/lib/chainTransactions.ts
Normal file
18
shared/editor/lib/chainTransactions.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { EditorState, Transaction } from "prosemirror-state";
|
||||
import { Dispatch } from "../types";
|
||||
|
||||
export default function chainTransactions(
|
||||
...commands: ((state: EditorState, dispatch?: Dispatch) => boolean)[]
|
||||
) {
|
||||
return (state: EditorState, dispatch?: Dispatch): boolean => {
|
||||
const dispatcher = (tr: Transaction): void => {
|
||||
state = state.apply(tr);
|
||||
dispatch?.(tr);
|
||||
};
|
||||
const last = commands.pop();
|
||||
const reduced = commands.reduce((result, command) => {
|
||||
return result || command(state, dispatcher);
|
||||
}, false);
|
||||
return reduced && last !== undefined && last(state, dispatch);
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user