mirror of
https://github.com/ueberdosis/tiptap.git
synced 2024-12-23 00:27:49 +08:00
38 lines
897 B
TypeScript
38 lines
897 B
TypeScript
|
import { EditorState, Transaction } from 'prosemirror-state'
|
||
|
|
||
|
export default function createChainableState(config: {
|
||
|
transaction: Transaction,
|
||
|
state: EditorState,
|
||
|
}): EditorState {
|
||
|
const { state, transaction } = config
|
||
|
let { selection } = transaction
|
||
|
let { doc } = transaction
|
||
|
let { storedMarks } = transaction
|
||
|
|
||
|
return {
|
||
|
...state,
|
||
|
schema: state.schema,
|
||
|
plugins: state.plugins,
|
||
|
apply: state.apply.bind(state),
|
||
|
applyTransaction: state.applyTransaction.bind(state),
|
||
|
reconfigure: state.reconfigure.bind(state),
|
||
|
toJSON: state.toJSON.bind(state),
|
||
|
get storedMarks() {
|
||
|
return storedMarks
|
||
|
},
|
||
|
get selection() {
|
||
|
return selection
|
||
|
},
|
||
|
get doc() {
|
||
|
return doc
|
||
|
},
|
||
|
get tr() {
|
||
|
selection = transaction.selection
|
||
|
doc = transaction.doc
|
||
|
storedMarks = transaction.storedMarks
|
||
|
|
||
|
return transaction
|
||
|
},
|
||
|
}
|
||
|
}
|