Skip to content

Commit 4b00b42

Browse files
committed
V3. Reading Christopher Chedeau presentation on CSS in JS made me rethik my decision of using localClassName convention. styleName it is.
1 parent ba67d36 commit 4b00b42

File tree

4 files changed

+33
-33
lines changed

4 files changed

+33
-33
lines changed

dist/linkClass.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,25 +25,25 @@ linkClass = function (element) {
2525
var appendClassName = undefined,
2626
childrenCount = undefined,
2727
clonedElement = undefined,
28-
localClassNames = undefined,
28+
styleNames = undefined,
2929
newChildren = undefined,
3030
newProps = undefined;
3131

32-
localClassNames = element.props.localClassName;
32+
styleNames = element.props.styleName;
3333

34-
if (localClassNames) {
35-
localClassNames = localClassNames.split(' ');
34+
if (styleNames) {
35+
styleNames = styleNames.split(' ');
3636

37-
if (options.allowMultiple === false && localClassNames.length > 1) {
38-
throw new Error('ReactElement localClassName property defines multiple module names ("' + element.props.localClassName + '").');
37+
if (options.allowMultiple === false && styleNames.length > 1) {
38+
throw new Error('ReactElement styleName property defines multiple module names ("' + element.props.styleName + '").');
3939
}
4040

41-
appendClassName = localClassNames.map(function (localClassName) {
42-
if (styles[localClassName]) {
43-
return styles[localClassName];
41+
appendClassName = styleNames.map(function (styleName) {
42+
if (styles[styleName]) {
43+
return styles[styleName];
4444
} else {
4545
if (options.errorWhenNotFound === true) {
46-
throw new Error('"' + localClassName + '" CSS module is undefined.');
46+
throw new Error('"' + styleName + '" CSS module is undefined.');
4747
}
4848

4949
return '';

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"css",
1313
"modules"
1414
],
15-
"version": "2.0.0",
15+
"version": "3.0.0",
1616
"author": {
1717
"name": "Gajus Kuizinas",
1818
"email": "gk@anuary.com",

src/linkClass.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,25 @@ linkClass = (element, styles = {}, options = {}) => {
1212
let appendClassName,
1313
childrenCount,
1414
clonedElement,
15-
localClassNames,
15+
styleNames,
1616
newChildren,
1717
newProps;
1818

19-
localClassNames = element.props.localClassName;
19+
styleNames = element.props.styleName;
2020

21-
if (localClassNames) {
22-
localClassNames = localClassNames.split(' ');
21+
if (styleNames) {
22+
styleNames = styleNames.split(' ');
2323

24-
if (options.allowMultiple === false && localClassNames.length > 1) {
25-
throw new Error(`ReactElement localClassName property defines multiple module names ("${element.props.localClassName}").`);
24+
if (options.allowMultiple === false && styleNames.length > 1) {
25+
throw new Error(`ReactElement styleName property defines multiple module names ("${element.props.styleName}").`);
2626
}
2727

28-
appendClassName = localClassNames.map((localClassName) => {
29-
if (styles[localClassName]) {
30-
return styles[localClassName];
28+
appendClassName = styleNames.map((styleName) => {
29+
if (styles[styleName]) {
30+
return styles[styleName];
3131
} else {
3232
if (options.errorWhenNotFound === true) {
33-
throw new Error(`"${localClassName}" CSS module is undefined.`);
33+
throw new Error(`"${styleName}" CSS module is undefined.`);
3434
}
3535

3636
return '';

test/linkClass.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import jsdom from 'jsdom';
88
import linkClass from './../dist/linkClass';
99

1010
describe('linkClass', () => {
11-
context('when ReactElement does not define localClassName', () => {
11+
context('when ReactElement does not define styleName', () => {
1212
it('does not affect element properties', () => {
1313
expect(linkClass(<div></div>)).to.deep.equal(<div></div>);
1414
});
@@ -33,12 +33,12 @@ describe('linkClass', () => {
3333
});
3434
});
3535

36-
context('when localClassName matches an existing CSS module', () => {
36+
context('when styleName matches an existing CSS module', () => {
3737
context('when ReactElement does not have an existing className', () => {
3838
it('uses the generated class name to set the className property', () => {
3939
let subject;
4040

41-
subject = <div localClassName='foo'></div>;
41+
subject = <div styleName='foo'></div>;
4242

4343
subject = linkClass(subject, {
4444
foo: 'foo-1'
@@ -51,7 +51,7 @@ describe('linkClass', () => {
5151
it('appends the generated class name to the className property', () => {
5252
let subject;
5353

54-
subject = <div className='foo' localClassName='bar'></div>;
54+
subject = <div className='foo' styleName='bar'></div>;
5555

5656
subject = linkClass(subject, {
5757
bar: 'bar-1'
@@ -67,15 +67,15 @@ describe('linkClass', () => {
6767
context('when false', () => {
6868
it('throws an error', () => {
6969
expect(() => {
70-
linkClass(<div localClassName='foo bar'></div>, {}, {allowMultiple: false});
71-
}).to.throw(Error, 'ReactElement localClassName property defines multiple module names ("foo bar").');
70+
linkClass(<div styleName='foo bar'></div>, {}, {allowMultiple: false});
71+
}).to.throw(Error, 'ReactElement styleName property defines multiple module names ("foo bar").');
7272
});
7373
});
7474
context('when true', () => {
7575
it('appends a generated class name for every referenced CSS module', () => {
7676
let subject;
7777

78-
subject = <div localClassName='foo bar'></div>;
78+
subject = <div styleName='foo bar'></div>;
7979

8080
subject = linkClass(subject, {
8181
foo: 'foo-1',
@@ -89,12 +89,12 @@ describe('linkClass', () => {
8989
});
9090

9191
describe('options.errorWhenNotFound', () => {
92-
context('when localClassName does not match an existing CSS module', () => {
92+
context('when styleName does not match an existing CSS module', () => {
9393
context('when false', () => {
9494
it('ignores the missing CSS module', () => {
9595
let subject;
9696

97-
subject = <div localClassName='foo'></div>;
97+
subject = <div styleName='foo'></div>;
9898

9999
subject = linkClass(subject, {}, {errorWhenNotFound: false});
100100

@@ -104,7 +104,7 @@ describe('linkClass', () => {
104104
context('when is true', () => {
105105
it('throws an error', () => {
106106
expect(() => {
107-
linkClass(<div localClassName='foo'></div>, {}, {errorWhenNotFound: true});
107+
linkClass(<div styleName='foo'></div>, {}, {errorWhenNotFound: true});
108108
}).to.throw(Error, '"foo" CSS module is undefined.');
109109
});
110110
});
@@ -130,11 +130,11 @@ describe('linkClass', () => {
130130

131131
Foo = class extends React.Component {
132132
render () {
133-
return <div localClassName='foo'>Hello</div>;
133+
return <div styleName='foo'>Hello</div>;
134134
}
135135
};
136136

137-
nodeList = TestUtils.renderIntoDocument(linkClass(<div localClassName='foo'><Foo /></div>, {foo: 'foo-1'}));
137+
nodeList = TestUtils.renderIntoDocument(linkClass(<div styleName='foo'><Foo /></div>, {foo: 'foo-1'}));
138138
});
139139
it('processes ReactElement nodes', () => {
140140
expect(nodeList.className).to.equal('foo-1');

0 commit comments

Comments
 (0)