From 0f2420576adceef53261c1465d6efd01a25e4e0a Mon Sep 17 00:00:00 2001 From: Steve-Mcl Date: Sun, 8 May 2022 14:24:30 +0100 Subject: [PATCH] improve flashing of node sometimes node highlight get stuck --- .../@node-red/editor-client/src/js/ui/view.js | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js index b2d2b11b1..86c744a7e 100755 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js @@ -5853,27 +5853,26 @@ RED.view = (function() { if(typeof node === "string") { node = RED.nodes.node(n); } if(!node) { return; } - const flashingNode = flashingNodeTimer && flashingNodeId && RED.nodes.node(flashingNodeId); + const flashingNode = flashingNodeId && RED.nodes.node(flashingNodeId); if(flashingNode) { //cancel current flashing node before flashing new node - clearInterval(flashingNodeTimer); - flashingNodeTimer = null; + clearInterval(flashingNode.__flashTimer); + delete flashingNode.__flashTimer; flashingNode.dirty = true; flashingNode.highlighted = false; } - - flashingNodeTimer = setInterval(function(flashEndTime) { - node.dirty = true; + node.__flashTimer = setInterval(function(flashEndTime, n) { + n.dirty = true; if (flashEndTime >= Date.now()) { - node.highlighted = !node.highlighted; + n.highlighted = !n.highlighted; } else { - clearInterval(flashingNodeTimer); - flashingNodeTimer = null; - node.highlighted = false; + clearInterval(__flashTimer); + delete n.__flashTimer; flashingNodeId = null; + n.highlighted = false; } RED.view.redraw(); - }, 100, Date.now() + 2200) + }, 100, Date.now() + 2200, node) flashingNodeId = node.id; node.highlighted = true; RED.view.redraw();