fix hasName method for empty name cases

This commit is contained in:
Anton Lavrenov 2019-03-21 07:43:58 -05:00
parent ef30c1b6b9
commit f9c60c99e1
5 changed files with 29 additions and 5 deletions

View File

@ -5,6 +5,10 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## Not released:
## [3.2.3][2019-03-21]
* Fix `hasName` method for empty name cases
## [3.2.2][2019-03-19]
* Remove `dependencies` from npm package

View File

@ -8,7 +8,7 @@
* Konva JavaScript Framework v3.2.2
* http://konvajs.org/
* Licensed under the MIT
* Date: Tue Mar 19 2019
* Date: Thu Mar 21 2019
*
* Original work Copyright (C) 2011 - 2013 by Eric Rowell (KineticJS)
* Modified work Copyright (C) 2014 - present by Anton Lavrenov (Konva)
@ -4098,9 +4098,18 @@
* node.name('red');
* node.hasName('red'); // return true
* node.hasName('selected'); // return false
* node.hasName(''); // return false
*/
Node.prototype.hasName = function (name) {
var names = (this.name() || '').split(/\s/g);
if (!name) {
return false;
}
var fullName = this.name();
if (!fullName) {
return false;
}
// if name is '' the "names" will be [''], so I added extra check above
var names = (fullName || '').split(/\s/g);
return names.indexOf(name) !== -1;
};
/**

4
konva.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -1987,9 +1987,18 @@ export abstract class Node<Config extends NodeConfig = NodeConfig> {
* node.name('red');
* node.hasName('red'); // return true
* node.hasName('selected'); // return false
* node.hasName(''); // return false
*/
hasName(name) {
var names = (this.name() || '').split(/\s/g);
if (!name) {
return false;
}
const fullName = this.name();
if (!fullName) {
return false;
}
// if name is '' the "names" will be [''], so I added extra check above
var names = (fullName || '').split(/\s/g);
return names.indexOf(name) !== -1;
}
/**

View File

@ -1242,6 +1242,8 @@ suite('Node', function() {
assert.equal(circle.hasName('myCircle'), true);
assert.equal(circle.hasName('foo'), true);
assert.equal(circle.hasName('boo'), false);
// should return false for empty name
assert.equal(layer.hasName(''), false);
assert.equal(stage.findOne('.foo'), circle);
// removing name