diff options
Diffstat (limited to 'openecomp-ui/src/sdc-app/features/featureToggle.js')
-rw-r--r-- | openecomp-ui/src/sdc-app/features/featureToggle.js | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/openecomp-ui/src/sdc-app/features/featureToggle.js b/openecomp-ui/src/sdc-app/features/featureToggle.js index 5e0df1448f..d33c76e523 100644 --- a/openecomp-ui/src/sdc-app/features/featureToggle.js +++ b/openecomp-ui/src/sdc-app/features/featureToggle.js @@ -14,47 +14,48 @@ * permissions and limitations under the License. */ - - /** +/** * Feature toggling decorator - * usage: - * + * usage: + * * @featureToggle('FeatureName') * class Example extends React.Component { * render() { * return (<div>test feature</div>); * } * } - * - * OR - * + * + * OR + * * const TestFeature = () => (<div>test feature</div>) * export default featureToggle('FeatureName')(TestFeature) - * + * */ import React from 'react'; import PropTypes from 'prop-types'; -import {connect} from 'react-redux'; +import { connect } from 'react-redux'; + +export const FeatureComponent = props => { + const { features = [], featureName, InnerComponent, ...otherProps } = props; + const AComp = InnerComponent.AComp ? InnerComponent.AComp : InnerComponent; -export const FeatureComponent = (props) => { - const {features = [], featureName, InnerComponent, ...otherProps} = props; - const AComp = InnerComponent.AComp ? InnerComponent.AComp : InnerComponent; - - return !!features.find(el => el.name === featureName && el.active) ? - <AComp {...otherProps}/> - : InnerComponent.BComp ? <InnerComponent.BComp {...otherProps}/> : null; + return !!features.find(el => el.name === featureName && el.active) ? ( + <AComp {...otherProps} /> + ) : InnerComponent.BComp ? ( + <InnerComponent.BComp {...otherProps} /> + ) : null; }; FeatureComponent.propTypes = { - features: PropTypes.array, - featureName: PropTypes.string.isRequired + features: PropTypes.array, + featureName: PropTypes.string.isRequired }; - export default function featureToggle(featureName) { - return (InnerComponent) => { - return connect(({features}) => {return {features, featureName, InnerComponent};})(FeatureComponent); - }; + return InnerComponent => { + return connect(({ features }) => { + return { features, featureName, InnerComponent }; + })(FeatureComponent); + }; } - |