mirror of
https://github.com/ianstormtaylor/slate.git
synced 2025-08-12 10:14:02 +02:00
Fix marks of undefined on char.marks (#1643)
* fix typo on getMarksAtCollapsedRangeAsArray * making sure that char is defined on char.marks
This commit is contained in:
committed by
Ian Storm Taylor
parent
07788eb2d9
commit
1269be7ba8
@@ -1087,10 +1087,12 @@ class Node {
|
|||||||
getMarksAtRangeAsArray(range) {
|
getMarksAtRangeAsArray(range) {
|
||||||
range = range.normalize(this)
|
range = range.normalize(this)
|
||||||
if (range.isUnset) return []
|
if (range.isUnset) return []
|
||||||
if (range.isCollapsed) return this.getMarksAtCollaspsedRangeAsArray(range)
|
if (range.isCollapsed) return this.getMarksAtCollapsedRangeAsArray(range)
|
||||||
|
|
||||||
return this.getCharactersAtRange(range).reduce((memo, char) => {
|
return this.getCharactersAtRange(range).reduce((memo, char) => {
|
||||||
char.marks.toArray().forEach(c => memo.push(c))
|
if (char) {
|
||||||
|
char.marks.toArray().forEach(c => memo.push(c))
|
||||||
|
}
|
||||||
return memo
|
return memo
|
||||||
}, [])
|
}, [])
|
||||||
}
|
}
|
||||||
@@ -1105,13 +1107,12 @@ class Node {
|
|||||||
getInsertMarksAtRangeAsArray(range) {
|
getInsertMarksAtRangeAsArray(range) {
|
||||||
range = range.normalize(this)
|
range = range.normalize(this)
|
||||||
if (range.isUnset) return []
|
if (range.isUnset) return []
|
||||||
if (range.isCollapsed) return this.getMarksAtCollaspsedRangeAsArray(range)
|
if (range.isCollapsed) return this.getMarksAtCollapsedRangeAsArray(range)
|
||||||
|
|
||||||
const text = this.getDescendant(range.startKey)
|
const text = this.getDescendant(range.startKey)
|
||||||
const char = text.characters.get(range.startOffset)
|
const char = text.characters.get(range.startOffset)
|
||||||
if (!char) {
|
if (!char) return []
|
||||||
return []
|
|
||||||
}
|
|
||||||
return char.marks.toArray()
|
return char.marks.toArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1122,7 +1123,7 @@ class Node {
|
|||||||
* @return {Array}
|
* @return {Array}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
getMarksAtCollaspsedRangeAsArray(range) {
|
getMarksAtCollapsedRangeAsArray(range) {
|
||||||
if (range.isUnset) return []
|
if (range.isUnset) return []
|
||||||
|
|
||||||
const { startKey, startOffset } = range
|
const { startKey, startOffset } = range
|
||||||
@@ -1136,11 +1137,15 @@ class Node {
|
|||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
const char = previous.characters.get(previous.text.length - 1)
|
const char = previous.characters.get(previous.text.length - 1)
|
||||||
|
if (!char) return []
|
||||||
|
|
||||||
return char.marks.toArray()
|
return char.marks.toArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
const text = this.getDescendant(startKey)
|
const text = this.getDescendant(startKey)
|
||||||
const char = text.characters.get(startOffset - 1)
|
const char = text.characters.get(startOffset - 1)
|
||||||
|
if (!char) return []
|
||||||
|
|
||||||
return char.marks.toArray()
|
return char.marks.toArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1154,7 +1159,7 @@ class Node {
|
|||||||
getActiveMarksAtRangeAsArray(range) {
|
getActiveMarksAtRangeAsArray(range) {
|
||||||
range = range.normalize(this)
|
range = range.normalize(this)
|
||||||
if (range.isUnset) return []
|
if (range.isUnset) return []
|
||||||
if (range.isCollapsed) return this.getMarksAtCollaspsedRangeAsArray(range)
|
if (range.isCollapsed) return this.getMarksAtCollapsedRangeAsArray(range)
|
||||||
|
|
||||||
// Otherwise, get a set of the marks for each character in the range.
|
// Otherwise, get a set of the marks for each character in the range.
|
||||||
const chars = this.getCharactersAtRange(range)
|
const chars = this.getCharactersAtRange(range)
|
||||||
@@ -1164,7 +1169,8 @@ class Node {
|
|||||||
let memo = first.marks
|
let memo = first.marks
|
||||||
|
|
||||||
chars.slice(1).forEach(char => {
|
chars.slice(1).forEach(char => {
|
||||||
memo = memo.intersect(char.marks)
|
const marks = char ? char.marks : []
|
||||||
|
memo = memo.intersect(marks)
|
||||||
return memo.size != 0
|
return memo.size != 0
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user