From 51c9629aa16a2a68574a42037aaa7afc91056ab9 Mon Sep 17 00:00:00 2001 From: Antoine Guenet Date: Tue, 15 Feb 2022 16:52:10 +0000 Subject: [PATCH] [FIX] web_editor: prevent traceback on apply style to empty lines When the selection only contains empty lines, no text nodes are selected. `applyInlineStyle` however counted on text nodes being selected, resulting in a traceback. task-2740204 closes odoo/odoo#85059 X-original-commit: ee6c71a3bcd6ec927acbe4eaf4c21acb28396e87 Signed-off-by: David Monjoie (dmo) --- .../lib/odoo-editor/src/commands/commands.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/addons/web_editor/static/lib/odoo-editor/src/commands/commands.js b/addons/web_editor/static/lib/odoo-editor/src/commands/commands.js index 6c3a8cb04ca..a5393a81e44 100644 --- a/addons/web_editor/static/lib/odoo-editor/src/commands/commands.js +++ b/addons/web_editor/static/lib/odoo-editor/src/commands/commands.js @@ -265,12 +265,14 @@ export function applyInlineStyle(editor, applyStyle) { } applyStyle(textNode.parentElement); } - const firstNode = selectedTextNodes[0]; - const lastNode = selectedTextNodes[selectedTextNodes.length - 1]; - if (direction === DIRECTIONS.RIGHT) { - setSelection(firstNode, 0, lastNode, lastNode.length); - } else { - setSelection(lastNode, lastNode.length, firstNode, 0); + if (selectedTextNodes.length) { + const firstNode = selectedTextNodes[0]; + const lastNode = selectedTextNodes[selectedTextNodes.length - 1]; + if (direction === DIRECTIONS.RIGHT) { + setSelection(firstNode, 0, lastNode, lastNode.length); + } else { + setSelection(lastNode, lastNode.length, firstNode, 0); + } } } function addColumn(editor, beforeOrAfter) {