From 5362c97cb632aad68670ecfb574b51cc783116ec Mon Sep 17 00:00:00 2001 From: Viktor Persson Date: Fri, 25 Nov 2022 15:10:53 +0100 Subject: [PATCH] Add method to toggle visibility of Node. --- src/Node.ts | 9 +++++++++ test/unit/Node-test.ts | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/Node.ts b/src/Node.ts index a1bc5438..7cd19fe4 100644 --- a/src/Node.ts +++ b/src/Node.ts @@ -1043,6 +1043,15 @@ export abstract class Node { this.visible(false); return this; } + /** + * toggle visibility of node. + * @method + * @name Konva.Node#toggleVisibility + * @returns {Konva.Node} + */ + toggleVisibility() { + return this.isVisible() ? this.hide() : this.show(); + } getZIndex() { return this.index || 0; } diff --git a/test/unit/Node-test.ts b/test/unit/Node-test.ts index 50d6a46b..787c0f5f 100644 --- a/test/unit/Node-test.ts +++ b/test/unit/Node-test.ts @@ -943,6 +943,14 @@ describe('Node', function () { layer2.show(); assert.equal(layer2.isVisible(), true); assert.equal(layer2.canvas._canvas.style.display, 'block'); + + layer2.toggleVisibility(); + assert.equal(layer2.isVisible(), false); + assert.equal(layer2.canvas._canvas.style.display, 'none'); + + layer2.toggleVisibility(); + assert.equal(layer2.isVisible(), true); + assert.equal(layer2.canvas._canvas.style.display, 'block'); }); // ====================================================== @@ -2271,6 +2279,16 @@ describe('Node', function () { layer.draw(); assert.equal(circle.isVisible(), true); + + circle.toggleVisibility(); + layer.draw(); + + assert.equal(circle.isVisible(), false); + + circle.toggleVisibility(); + layer.draw(); + + assert.equal(circle.isVisible(), true); }); // ======================================================