Skip to content

Commit 01f854b

Browse files
committed
Docs
1 parent 64c2bdd commit 01f854b

File tree

3 files changed

+27
-7
lines changed

3 files changed

+27
-7
lines changed

src/index.js

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
import linkClass from './linkClass';
22

33
/**
4-
* @param {ReactClass} Target
5-
* @param {Object} styles {localClassName: 'generatedClassName'}
4+
* @param {ReactClass} Component
5+
* @param {Object} styles CSS modules class map.
6+
* @param {Object} options {@link https://github.com/gajus/react-css-modules#options}
67
* @return {ReactClass}
78
*/
8-
export default (Target, styles) => {
9-
return class extends Target {
9+
export default (Component, styles, options = {}) => {
10+
return class extends Component {
1011
render () {
11-
return linkClass(super.render(), styles);
12+
if (options.allowMultiple !== false) {
13+
options.allowMultiple = true;
14+
}
15+
16+
if (options.includeOriginal !== false) {
17+
options.includeOriginal = true;
18+
}
19+
20+
return linkClass(super.render(), styles, options);
1221
}
1322
}
1423
};

src/linkClass.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ let linkClass;
44

55
/**
66
* @param {ReactElement} element
7-
* @param {Object} styles
7+
* @param {Object} styles CSS modules class map.
8+
* @param {Object} options {@link https://github.com/gajus/react-css-modules#options}
89
* @return {ReactElement}
910
*/
10-
linkClass = (element, styles = {}) => {
11+
linkClass = (element, styles = {}, options = {}) => {
1112
let newProps,
1213
newClassName,
1314
newChildren,

test/linkClass.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,4 +125,14 @@ describe('linkClass', () => {
125125
expect(nodeList.firstChild.className).to.equal('foo');
126126
});
127127
});
128+
129+
describe('when options.allowMultiple is false', () => {
130+
describe('when it finds multiple CSS class names in a className', () => {
131+
it('throws an error', () => {
132+
expect(() => {
133+
linkClass(<div className='foo bar'></div>, {}, {allowMultiple: false});
134+
}).to.throw(Error);
135+
});
136+
});
137+
});
128138
});

0 commit comments

Comments
 (0)