diff --git a/packages/slate/src/commands/at-current-range.js b/packages/slate/src/commands/at-current-range.js
index 574b8768e..33dc67a87 100644
--- a/packages/slate/src/commands/at-current-range.js
+++ b/packages/slate/src/commands/at-current-range.js
@@ -135,6 +135,7 @@ Commands.insertFragment = (editor, fragment) => {
const { startText, endText, startInline } = value
const lastText = fragment.getLastText()
const lastInline = fragment.getClosestInline(lastText.key)
+ const lastBlock = fragment.getClosestBlock(lastText.key)
const firstChild = fragment.nodes.first()
const lastChild = fragment.nodes.last()
const keys = document.getTexts().map(text => text.key)
@@ -154,13 +155,11 @@ Commands.insertFragment = (editor, fragment) => {
const newText = isAppending ? newTexts.last() : newTexts.takeLast(2).first()
if (newText && (lastInline || isInserting)) {
- editor.select(selection.moveToEndOfNode(newText))
+ editor.moveToEndOfNode(newText)
} else if (newText) {
- editor.select(
- selection.moveToStartOfNode(newText).moveForward(lastText.text.length)
- )
+ editor.moveToStartOfNode(newText).moveForward(lastBlock.text.length)
} else {
- editor.select(selection.moveToStart().moveForward(lastText.text.length))
+ editor.moveToStart().moveForward(lastBlock.text.length)
}
}
diff --git a/packages/slate/test/commands/at-current-range/insert-fragment/fragment-adjacent-texts.js b/packages/slate/test/commands/at-current-range/insert-fragment/fragment-adjacent-texts.js
new file mode 100644
index 000000000..95ef72c09
--- /dev/null
+++ b/packages/slate/test/commands/at-current-range/insert-fragment/fragment-adjacent-texts.js
@@ -0,0 +1,34 @@
+/** @jsx h */
+
+import h from '../../../helpers/h'
+
+export default function(editor) {
+ editor.insertFragment(
+
+
+ one
+ two
+
+
+ )
+}
+
+export const input = (
+
+
+
+
+
+
+
+)
+
+export const output = (
+
+
+
+ onetwo
+
+
+
+)