From 0bf9f375498f48cf5d2f1dd872a8c5c0a46a6c96 Mon Sep 17 00:00:00 2001 From: Rainer Simon Date: Fri, 7 Aug 2020 09:28:43 +0200 Subject: [PATCH] Rendering no longer breaks when single annotation is broken --- src/highlighter/Highlighter.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/highlighter/Highlighter.js b/src/highlighter/Highlighter.js index 3fc2f2f..3097617 100644 --- a/src/highlighter/Highlighter.js +++ b/src/highlighter/Highlighter.js @@ -41,15 +41,21 @@ export default class Highlighter { }) _addAnnotation = annotation => { - const [ domStart, domEnd ] = this.charOffsetsToDOMPosition([ annotation.start, annotation.end ]); + try { + const [ domStart, domEnd ] = this.charOffsetsToDOMPosition([ annotation.start, annotation.end ]); - const range = document.createRange(); - range.setStart(domStart.node, domStart.offset); - range.setEnd(domEnd.node, domEnd.offset); + const range = document.createRange(); + range.setStart(domStart.node, domStart.offset); + range.setEnd(domEnd.node, domEnd.offset); - const spans = this.wrapRange(range); - this.applyStyles(annotation, spans); - this.bindAnnotation(annotation, spans); + const spans = this.wrapRange(range); + this.applyStyles(annotation, spans); + this.bindAnnotation(annotation, spans); + } catch (error) { + console.warn('Could not render annotation') + console.warn(error); + console.warn(annotation.underlying); + } } _findAnnotationSpans = annotation => {