mirror of
https://github.com/ueberdosis/tiptap.git
synced 2024-11-24 19:59:02 +08:00
add type option to updateNodeAttributes
This commit is contained in:
parent
b3798b7329
commit
4a78318a74
@ -1,11 +1,14 @@
|
||||
import { NodeType } from 'prosemirror-model'
|
||||
import getNodeType from '../utils/getNodeType'
|
||||
import { Command } from '../types'
|
||||
|
||||
export default (attributes: {}): Command => ({ tr, state, dispatch }) => {
|
||||
export default (typeOrName: string | NodeType, attributes: {}): Command => ({ tr, state, dispatch }) => {
|
||||
const type = getNodeType(typeOrName, state.schema)
|
||||
const { selection } = tr
|
||||
const { from, to } = selection
|
||||
|
||||
state.doc.nodesBetween(from, to, (node, pos) => {
|
||||
if (!node.type.isText && dispatch) {
|
||||
if (node.type === type && dispatch) {
|
||||
tr.setNodeMarkup(pos, undefined, {
|
||||
...node.attrs,
|
||||
...attributes,
|
||||
|
@ -42,13 +42,13 @@ const TextAlign = Extension.create({
|
||||
return false
|
||||
}
|
||||
|
||||
return commands.updateNodeAttributes({ textAlign: alignment })
|
||||
return this.options.types.every(type => commands.updateNodeAttributes(type, { textAlign: alignment }))
|
||||
},
|
||||
/**
|
||||
* Unset the text align attribute
|
||||
*/
|
||||
unsetTextAlign: (): Command => ({ commands }) => {
|
||||
return commands.updateNodeAttributes({ textAlign: null })
|
||||
return this.options.types.every(type => commands.updateNodeAttributes(type, { textAlign: null }))
|
||||
},
|
||||
}
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user