mirror of
https://github.com/ianstormtaylor/slate.git
synced 2025-08-12 02:03:59 +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) {
|
||||
range = range.normalize(this)
|
||||
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) => {
|
||||
char.marks.toArray().forEach(c => memo.push(c))
|
||||
if (char) {
|
||||
char.marks.toArray().forEach(c => memo.push(c))
|
||||
}
|
||||
return memo
|
||||
}, [])
|
||||
}
|
||||
@@ -1105,13 +1107,12 @@ class Node {
|
||||
getInsertMarksAtRangeAsArray(range) {
|
||||
range = range.normalize(this)
|
||||
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 char = text.characters.get(range.startOffset)
|
||||
if (!char) {
|
||||
return []
|
||||
}
|
||||
if (!char) return []
|
||||
|
||||
return char.marks.toArray()
|
||||
}
|
||||
|
||||
@@ -1122,7 +1123,7 @@ class Node {
|
||||
* @return {Array}
|
||||
*/
|
||||
|
||||
getMarksAtCollaspsedRangeAsArray(range) {
|
||||
getMarksAtCollapsedRangeAsArray(range) {
|
||||
if (range.isUnset) return []
|
||||
|
||||
const { startKey, startOffset } = range
|
||||
@@ -1136,11 +1137,15 @@ class Node {
|
||||
return []
|
||||
}
|
||||
const char = previous.characters.get(previous.text.length - 1)
|
||||
if (!char) return []
|
||||
|
||||
return char.marks.toArray()
|
||||
}
|
||||
|
||||
const text = this.getDescendant(startKey)
|
||||
const char = text.characters.get(startOffset - 1)
|
||||
if (!char) return []
|
||||
|
||||
return char.marks.toArray()
|
||||
}
|
||||
|
||||
@@ -1154,7 +1159,7 @@ class Node {
|
||||
getActiveMarksAtRangeAsArray(range) {
|
||||
range = range.normalize(this)
|
||||
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.
|
||||
const chars = this.getCharactersAtRange(range)
|
||||
@@ -1164,7 +1169,8 @@ class Node {
|
||||
let memo = first.marks
|
||||
|
||||
chars.slice(1).forEach(char => {
|
||||
memo = memo.intersect(char.marks)
|
||||
const marks = char ? char.marks : []
|
||||
memo = memo.intersect(marks)
|
||||
return memo.size != 0
|
||||
})
|
||||
|
||||
|
Reference in New Issue
Block a user