1
0
mirror of https://github.com/ianstormtaylor/slate.git synced 2025-08-29 18:09:49 +02:00

Revert "Add merge to set node (#4905)" (#4913)

This reverts commit 9c758bb4cb.
This commit is contained in:
Dylan Schiemann
2022-03-24 00:24:48 -07:00
committed by GitHub
parent 9c758bb4cb
commit 3453432f7a
3 changed files with 3 additions and 36 deletions

View File

@@ -1736,4 +1736,3 @@ export type NodeMatch<T extends Node> =
| ((node: Node, path: Path) => boolean)
export type PropsCompare = (prop: Partial<Node>, node: Partial<Node>) => boolean
export type PropsMerge = (prop: Partial<Node>, node: Partial<Node>) => object

View File

@@ -11,7 +11,7 @@ import {
NodeEntry,
Ancestor,
} from '..'
import { NodeMatch, PropsCompare, PropsMerge } from '../interfaces/editor'
import { NodeMatch, PropsCompare } from '../interfaces/editor'
export interface NodeTransforms {
insertNodes: <T extends Node>(
@@ -76,7 +76,6 @@ export interface NodeTransforms {
split?: boolean
voids?: boolean
compare?: PropsCompare
merge?: PropsMerge
}
) => void
splitNodes: <T extends Node>(
@@ -571,11 +570,10 @@ export const NodeTransforms: NodeTransforms = {
split?: boolean
voids?: boolean
compare?: PropsCompare
merge?: PropsMerge
} = {}
): void {
Editor.withoutNormalizing(editor, () => {
let { match, at = editor.selection, compare, merge } = options
let { match, at = editor.selection, compare } = options
const {
hanging = false,
mode = 'lowest',
@@ -662,11 +660,7 @@ export const NodeTransforms: NodeTransforms = {
// Omit new properties from the old properties list
if (node.hasOwnProperty(k)) properties[k] = node[k]
// Omit properties that have been removed from the new properties list
if (merge) {
if (props[k] != null) newProperties[k] = merge(node[k], props[k])
} else {
if (props[k] != null) newProperties[k] = props[k]
}
if (props[k] != null) newProperties[k] = props[k]
}
}

View File

@@ -1,26 +0,0 @@
/** @jsx jsx */
import { Transforms, Text } from 'slate'
import { jsx } from '../../..'
import _ from 'lodash'
export const run = editor => {
Transforms.setNodes(
editor,
{ a: { b: 2, c: 3 } },
{ at: [0, 0], match: Text.isText, merge: (n, p) => _.defaultsDeep(p, n) }
)
}
export const input = (
<editor>
<block>
<text a={{ b: 1 }}>word</text>
</block>
</editor>
)
export const output = (
<editor>
<block>
<text a={{ b: 2, c: 3 }}>word</text>
</block>
</editor>
)