UNPKG

flopflip

Version:

A feature toggle wrapper to use LaunchDarkly with React Redux

35 lines (31 loc) 900 B
import { connect } from 'react-redux'; import { compose, withProps } from 'recompose'; import intersection from 'lodash.intersection'; import { STATE_SLICE } from './../store'; const filterFeatureToggles = ( availableFeatureToggles, requestedFeatureToggles ) => intersection( Object.keys(availableFeatureToggles), requestedFeatureToggles ).reduce( (featureToggles, featureToggle) => ({ [featureToggle]: availableFeatureToggles[featureToggle], }), {} ); export const injectFeatureToggles = requestedFeatureToggles => withProps(props => ({ featureToggles: filterFeatureToggles( props.availableFeatureToggles, requestedFeatureToggles ), })); export default requestedFeatureToggles => compose( connect(state => ({ availableFeatureToggles: state[STATE_SLICE].flags, })), injectFeatureToggles(requestedFeatureToggles) );