Skip to content

Commit 5197e66

Browse files
committed
fix: support array-as-value after prefixing
1 parent 005dd68 commit 5197e66

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

.storybook/inline-style-prefixer.stories.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,13 @@ addonPrefixer(renderer);
1212
const {rule} = renderer;
1313

1414
const className1 = rule({
15-
alignItems: 'center'
15+
display: 'flex',
16+
alignItems: 'center',
17+
boxShadow: '0 0 5px red',
18+
'text-shadow': '2px 2px #ff0000',
1619
});
1720

1821
storiesOf('Addons/inline-style-prefixer', module)
19-
.add('Default', () =>
20-
h('div', {className: className1}, 'Hello world')
21-
)
22+
.add('Default', () =>
23+
h('div', {className: className1}, 'Hello world')
24+
)

addon/inline-style-prefixer.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,26 @@ var matchCallback = function (match) {
1111
exports.addon = function (renderer) {
1212
var decl = renderer.decl;
1313

14-
renderer.toCamel = function (prop) {
14+
renderer.camel = function (prop) {
1515
return prop.replace(CAMEL_REGEX, matchCallback);
1616
};
1717

1818
renderer.prefix = function (prop, value) {
1919
var obj = {};
20-
obj[renderer.toCamel(prop)] = value;
20+
obj[renderer.camel(prop)] = value;
2121
obj = prefixAll(obj);
2222

2323
var str = '';
2424

2525
for (var propPrefixed in obj) {
26-
str += propPrefixed + ':' + obj[propPrefixed] + ';';
26+
value = obj[propPrefixed];
27+
propPrefixed = renderer.kebab(propPrefixed);
28+
29+
if (value instanceof Array) {
30+
str += propPrefixed + ':' + value.join(';' + propPrefixed + ':') + ';';
31+
} else {
32+
str += propPrefixed + ':' + value + ';';
33+
}
2734
}
2835

2936
return str;

index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ exports.create = function (config) {
2020
client: typeof window === 'object',
2121
assign: assign,
2222
stringify: JSON.stringify,
23-
toKebab: function (prop) {
23+
kebab: function (prop) {
2424
return prop.replace(KEBAB_REGEX, '-$&').toLowerCase();
2525
},
2626
decl: function (key, value) {
27-
key = renderer.toKebab(key);
27+
key = renderer.kebab(key);
2828
return key + ':' + value + ';';
2929
},
3030
hash: function (obj) {

0 commit comments

Comments
 (0)