* fix: Logic error in toast fix: Remove useless component * fix: Logout not clearing all stores * Add icons to notification settings * Add eslint rule to enforce spaced comment * Add eslint rule for arrow-body-style * Add eslint rule to enforce self-closing components * Add menu to api key settings Fix: Deleting webhook subscription does not remove from UI Split webhook subscriptions into active and inactive Styling updates
20 lines
624 B
TypeScript
20 lines
624 B
TypeScript
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) => result || command(state, dispatcher),
|
|
false
|
|
);
|
|
return reduced && last !== undefined && last(state, dispatch);
|
|
};
|
|
}
|