
Research
Security News
Lazarus Strikes npm Again with New Wave of Malicious Packages
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
@paralleldrive/react-feature-toggles
Advanced tools
This is version 2, it contains many breaking changes from version 1.
React Feature Toggles attempts to satisfy the following requirements:
npm install --save @paralleldrive/react-feature-toggles
import { FAQComponent } from '../features/faq';
import { NotFoundComponent } from '../features/404-page';
import { FeatureToggles, Feature } from '@paralleldrive/react-feature-toggles';
const features = ['faq', 'foo', 'bar'];
const MyApp = () => {
return (
<FeatureToggles features={features}>
<Feature
name="faq"
inactiveComponent={NotFoundComponent}
activeComponent={FAQComponent}
/>
</FeatureToggles>
);
};
FeatureToggles
is a provider component.
props
import { FeatureToggles } from '@paralleldrive/react*feature-toggles';
const features = ['foo', 'bar', 'baz', 'cat'];
const MyApp = () => {
return <FeatureToggles features={features}>{...stuff}</FeatureToggles>;
};
Feature
is a consumer component.
If the feature is enabled then the activeComponent will render else it renders the inactiveComponent.
Feature takes these props
import { FeatureToggles, Feature } from '@paralleldrive/react-feature-toggles';
const MyApp = () => {
return (
<FeatureToggles>
<Feature
name="faq"
inactiveComponent={NotFoundComponent}
activeComponent={FAQComponent}
/>
<Feature
name="help"
inactiveComponent={NotFoundComponent}
activeComponent={HelpComponent}
/>
</FeatureToggles>
);
};
Alternatively, you can use Feature
as a render prop component. Do this by passing a function as the children to the Feature
component. Note: This will only work if an activeComponent
is not provided.
import { FeatureToggles, Feature } from '@paralleldrive/react-feature-toggles';
import { isActiveFeatureName } from '@paralleldrive/feature-toggles';
const MyApp = () => {
return (
<FeatureToggles>
<Feature>
{({ features }) =>
isActiveFeatureName('bacon', features)
? 'The bacon feature is active'
: 'Bacon is inactive'
}
</Feature>
</FeatureToggles>
);
};
({ features = [...String] } = {}) => Component => Component
You can use withFeatureToggles
to compose your page functionality.
import MyPage from '../feautures/my-page';
import { withFeatureToggles } from '@paralleldrive/react-feature-toggles';
const features = ['foo', 'bar', 'baz', 'cat'];
export default = compose(
withFeatureToggles({ features }),
// ... other page HOC imports
hoc1,
hoc2,
);
Depending on your requirements, you might need something slightly different than the default withFeatureToggles
. The default withFeatureToggles
should serve as a good example to create your own.
(inactiveComponent: Component) => (name: String) => (activeComponent: Component) => Component
configureFeature
is a higher order component that allows you to configure a Feature
component.
import { FeatureToggles } from '@paralleldrive/react-feature-toggles';
const NotFoundPage = () => <div>404</div>;
const ChatPage = () => <div>Chat</div>;
const featureOr404 = configureFeature(NotFoundPage);
const Chat = featureOr404('chat')(ChatPage);
const features = ['foo', 'bar', 'chat'];
const myPage = () => (
<FeatureToggles features={features}>
<Chat />
</FeatureToggles>
);
In v2, query logic has been moved out of the provider component. You should now handle this logic before passing features to FeatureToggles
import { FeatureToggles } from '@paralleldrive/react-feature-toggles';
import {
getCurrentActiveFeatureNames
} from '@paralleldrive/feature-toggles';
import parse from 'url-parse';
const url = 'https://domain.com/foo?ft=foo,bar';
const query = parse(url, true);
const initialFeatures = [
{ name: 'foo', isActive: true },
{ name: 'bar', isActive: false },
{ name: 'baz', isActive: false }
];
const features = getCurrentActiveFeatureNames({
initialFeatures,
req: { query }
});
const MyApp = () => {
return <FeatureToggles features={features}>{...stuff}</FeatureToggles>;
};
FAQs
React Feature Toggles
We found that @paralleldrive/react-feature-toggles demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.
Security News
Opengrep continues building momentum with the alpha release of its Playground tool, demonstrating the project's rapid evolution just two months after its initial launch.