Feature Flags
// createFeatureFlaggedContainer.js
import React from 'react';
import { connect } from 'react-redux';
import { isFeatureEnabled } from './reducers'
export default function createFeatureFlaggedContainer({
featureName,
enabledComponent,
disabledComponent
}) {
function FeatureFlaggedContainer({ isEnabled, ...props }) {
const Component = isEnabled ? enabledComponent : disabledComponent;
if (Component) {
return <Component {...props} />;
}
// `disabledComponent` is optional property
return null;
}
// Having `displayName` is very useful for debugging.
FeatureFlaggedContainer.displayName = `FeatureFlaggedContainer(${ featureName })`;
return connect((store) => {
isEnabled: isFeatureEnabled(store, featureName)
})(FeatureFlaggedContainer);
}Related links:
Last updated