Skip to content

Commit 34c8a10

Browse files
committed
Fix no-unknown-property check on SVG attributes (fixes #718)
1 parent 095968c commit 34c8a10

File tree

2 files changed

+6
-22
lines changed

2 files changed

+6
-22
lines changed

lib/rules/no-unknown-property.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
*/
55
'use strict';
66

7-
var versionUtil = require('../util/version');
8-
97
// ------------------------------------------------------------------------------
108
// Constants
119
// ------------------------------------------------------------------------------
@@ -94,16 +92,14 @@ function isTagName(node) {
9492

9593
/**
9694
* Get the standard name of the attribute.
97-
* @param {Object} context The current rule context.
9895
* @param {String} name - Name of the attribute.
9996
* @returns {String} The standard name of the attribute.
10097
*/
101-
function getStandardName(context, name) {
98+
function getStandardName(name) {
10299
if (DOM_ATTRIBUTE_NAMES[name]) {
103100
return DOM_ATTRIBUTE_NAMES[name];
104101
}
105-
// Also check for SVG attribute for React <15
106-
if (!versionUtil.test(context, '15.0.0') && SVGDOM_ATTRIBUTE_NAMES[name]) {
102+
if (SVGDOM_ATTRIBUTE_NAMES[name]) {
107103
return SVGDOM_ATTRIBUTE_NAMES[name];
108104
}
109105
var i;
@@ -150,7 +146,7 @@ module.exports = {
150146
JSXAttribute: function(node) {
151147
var ignoreNames = getIgnoreConfig();
152148
var name = sourceCode.getText(node.name);
153-
var standardName = getStandardName(context, name);
149+
var standardName = getStandardName(name);
154150
if (!isTagName(node) || !standardName || ignoreNames.indexOf(name) >= 0) {
155151
return;
156152
}

tests/lib/rules/no-unknown-property.js

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,7 @@ ruleTester.run('no-unknown-property', rule, {
3636
{code: '<div data-foo="bar"></div>;', parserOptions: parserOptions},
3737
{code: '<div class="foo" is="my-elem"></div>;', parserOptions: parserOptions},
3838
{code: '<div {...this.props} class="foo" is="my-elem"></div>;', parserOptions: parserOptions},
39-
{code: '<atom-panel class="foo"></atom-panel>;', parserOptions: parserOptions},
40-
{code: '<use xlink:href="bar" />;', parserOptions: parserOptions},
41-
{code: '<rect clip-path="bar" />;', parserOptions: parserOptions}, {
39+
{code: '<atom-panel class="foo"></atom-panel>;', parserOptions: parserOptions}, {
4240
code: '<div class="bar"></div>;',
4341
options: [{ignore: ['class']}],
4442
parserOptions: parserOptions
@@ -83,21 +81,11 @@ ruleTester.run('no-unknown-property', rule, {
8381
code: '<use xlink:href="bar" />;',
8482
output: '<use xlinkHref="bar" />;',
8583
errors: [{message: 'Unknown property \'xlink:href\' found, use \'xlinkHref\' instead'}],
86-
parserOptions: parserOptions,
87-
settings: {
88-
react: {
89-
version: '0.14.0'
90-
}
91-
}
84+
parserOptions: parserOptions
9285
}, {
9386
code: '<rect clip-path="bar" />;',
9487
output: '<rect clipPath="bar" />;',
9588
errors: [{message: 'Unknown property \'clip-path\' found, use \'clipPath\' instead'}],
96-
parserOptions: parserOptions,
97-
settings: {
98-
react: {
99-
version: '0.14.0'
100-
}
101-
}
89+
parserOptions: parserOptions
10290
}]
10391
});

0 commit comments

Comments
 (0)