Skip to content

Commit f135cc2

Browse files
committed
feat: fix sheet() and add stories
1 parent f2d4bd2 commit f135cc2

File tree

3 files changed

+51
-4
lines changed

3 files changed

+51
-4
lines changed

.storybook/.babelrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"presets": [ ["env", {"modules": false} ]]
2+
"presets": [ ["env", {"modules": false} ]]
33
}

.storybook/sheet.stories.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import {createElement as h} from 'react';
2+
import {storiesOf} from '@storybook/react';
3+
const {action} = require('@storybook/addon-actions');
4+
const {linkTo} = require('@storybook/addon-links');
5+
const {create} = require('../lib');
6+
const {addonSheet} = require('../addon/sheet');
7+
8+
const renderer = create(h);
9+
addonSheet(renderer);
10+
const {sheet} = renderer;
11+
12+
const styles = sheet({
13+
tomato: {
14+
bd: '1px solid tomato',
15+
},
16+
yellow: {
17+
bd: '1px solid yellow',
18+
},
19+
}, 'hello');
20+
21+
22+
const styles2 = renderer.sheet({
23+
tomato: {
24+
bd: '1px solid tomato',
25+
},
26+
yellow: {
27+
bd: '1px solid yellow',
28+
},
29+
});
30+
31+
storiesOf('sheet()', module)
32+
.add('Default', () =>
33+
h('div', null,
34+
h('div', {className: styles.tomato}, 'Red'),
35+
h('div', {className: styles.yellow}, 'Yellow'),
36+
)
37+
)
38+
.add('No block name', () =>
39+
h('div', null,
40+
h('div', {className: styles2.tomato}, 'Red'),
41+
h('div', {className: styles2.yellow}, 'Yellow'),
42+
)
43+
)

addon/sheet.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,27 @@ exports.addonSheet = function (renderer) {
1010
block = hash(map);
1111
}
1212

13-
for (var elementModifier in map) {
13+
function onElementModifiler (elementModifier) {
1414
var styles = map[elementModifier];
1515

1616
Object.defineProperty(result, elementModifier, {
1717
configurable: true,
1818
get: function () {
19-
var classNames = this.rule(styles, block + '-' + elementModifier);
19+
var classNames = renderer.rule(styles, block + '-' + elementModifier);
2020

2121
Object.defineProperty(result, elementModifier, {
22-
value: classNames,
22+
value: classNames
2323
});
2424

2525
return classNames;
2626
},
2727
});
2828
}
2929

30+
for (var elementModifier in map) {
31+
onElementModifiler(elementModifier);
32+
}
33+
3034
return result;
3135
};
3236
};

0 commit comments

Comments
 (0)