@bem-react/core
Advanced tools
Comparing version 1.6.5 to 1.6.6
@@ -43,2 +43,9 @@ 'use strict'; | ||
var isStarMatched = function (key) { return mod[key] === '*' && Boolean(props[key]); }; | ||
{ | ||
setDisplayName(BemMod, { | ||
wrapper: WithBemMod, | ||
wrapped: entity(), | ||
value: mod, | ||
}); | ||
} | ||
if (Object.keys(mod).every(function (key) { return isMatched(key) || isStarMatched(key); })) { | ||
@@ -56,13 +63,11 @@ var modifierClassName = entity(Object.keys(mod).reduce(function (acc, key) { | ||
var nextProps = Object.assign({}, props, { className: nextClassName }); | ||
{ | ||
setDisplayName(BemMod, { | ||
wrapper: WithBemMod, | ||
wrapped: entity(), | ||
value: mod, | ||
isApplied: true, | ||
}); | ||
} | ||
if (enhance !== undefined) { | ||
if (ModifiedComponent === undefined) { | ||
ModifiedComponent = enhance(WrappedComponent); | ||
{ | ||
setDisplayName(ModifiedComponent, { | ||
wrapper: 'WithBemModEnhance', | ||
wrapped: WrappedComponent, | ||
}); | ||
} | ||
} | ||
@@ -75,9 +80,2 @@ } | ||
} | ||
{ | ||
setDisplayName(BemMod, { | ||
wrapper: WithBemMod, | ||
wrapped: entity(), | ||
value: mod, | ||
}); | ||
} | ||
return React.createElement(WrappedComponent, __assign({}, props)); | ||
@@ -92,16 +90,12 @@ }; | ||
} | ||
function setDisplayName(Component, displayNameData) { | ||
var value = JSON.stringify(displayNameData.value) | ||
.replace(/\{|\}|\"|\[|\]/g, '') | ||
.replace(/,/g, ' | '); | ||
var wrapperName = getDisplayName(displayNameData.wrapper); | ||
var wrappedName = typeof displayNameData.wrapped === 'string' | ||
? displayNameData.wrapped | ||
: getDisplayName(displayNameData.wrapped); | ||
// Wrapper(WrappedComponent)[applied values][is applied] | ||
function setDisplayName(Component, meta) { | ||
var wrapperName = getDisplayName(meta.wrapper); | ||
var wrappedName = getDisplayName(meta.wrapped); | ||
Component.displayName = wrapperName + "(" + wrappedName + ")"; | ||
if (value) { | ||
if (meta.value !== undefined) { | ||
var value = JSON.stringify(meta.value) | ||
.replace(/\{|\}|\"|\[|\]/g, '') | ||
.replace(/,/g, ' | '); | ||
Component.displayName += "[" + value + "]"; | ||
} | ||
Component.displayName += displayNameData.isApplied ? '[enabled]' : '[disabled]'; | ||
} | ||
@@ -108,0 +102,0 @@ /* tslint:enable:max-line-length */ |
@@ -6,2 +6,10 @@ # Change Log | ||
## [1.6.6](https://github.com/bem/bem-react/tree/master/packages/core/compare/@bem-react/core@1.6.5...@bem-react/core@1.6.6) (2019-05-13) | ||
**Note:** Version bump only for package @bem-react/core | ||
## [1.6.5](https://github.com/bem/bem-react/tree/master/packages/core/compare/@bem-react/core@1.6.4...@bem-react/core@1.6.5) (2019-04-22) | ||
@@ -8,0 +16,0 @@ |
{ | ||
"name": "@bem-react/core", | ||
"version": "1.6.5", | ||
"version": "1.6.6", | ||
"description": "BEM React Core", | ||
@@ -53,3 +53,3 @@ "homepage": "https://github.com/bem/bem-react", | ||
}, | ||
"gitHead": "f542664df66df1874065280f8ff52f74cb2663a4" | ||
"gitHead": "470f39b5a854c910dec8e5e6255d2a1de45e918f" | ||
} |
@@ -1,2 +0,2 @@ | ||
# core · [](https://www.npmjs.com/package/@bem-react/core) [](https://bundlephobia.com/result?p=@bem-react/core) | ||
# @bem-react/core · [](https://www.npmjs.com/package/@bem-react/core) [](https://bundlephobia.com/result?p=@bem-react/core) | ||
@@ -7,3 +7,5 @@ Core package helps organize and manage components with [BEM modifiers](https://en.bem.info/methodology/key-concepts/#modifier) in React. | ||
``` | ||
npm i -S @bem-react/core | ||
``` | ||
@@ -182,7 +184,7 @@ ## Usage | ||
```html | ||
<WithBemMod(Button)[theme:action][enabled] ...> | ||
<WithBemMod(Button)[type:link][enabled] ...className="Button Button_theme_action"> | ||
<WithBemMod(Button)[theme:action] ...> | ||
<WithBemMod(Button)[type:link] className="Button Button_theme_action" ...> | ||
<a className="Button Button_type_link Button_theme_action">Hello</a> | ||
</WithBemMod(Button)[type:link][enabled]> | ||
</WithBemMod(Button)[theme:action][enabled]> | ||
</WithBemMod(Button)[type:link]> | ||
</WithBemMod(Button)[theme:action]> | ||
``` |
189
36163
150