Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@fdaciuk/react-ff

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fdaciuk/react-ff

Components to create Feature Flags with React.js

  • 0.0.12
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5
decreased by-50%
Maintainers
1
Weekly downloads
 
Created
Source

React Feature Flag

Welcome to React Feature Flag 👋

Version Documentation Maintenance License: MIT Twitter: fdaciuk

Type safe Components to create Feature Flags (or Feature Toggle) with React.js

Install

yarn add @fdaciuk/react-ff

Usage

First of all, we have to create our componentes using createFeatureFlag function. Create a new file (e.g. src/feature-flag.tsx) with this content:

import { createFeatureFlag } from '@fdaciuk/react-ff'

export type Flags = 
  | 'NEW_HEADER'
  | 'NEW_FOOTER'

const { FF, FFProvider } = createFeatureFlag<Flags>()
export { FF, FFProvider }

Now, on top of your app, import FFProvider from src/feature-flag.tsx, and pass all the flags your app will use, following the shape:

const flags = {
  NEW_HEADER: true,
  NEW_FOOTER: false,
}

In the above example, the user has access to something that should be rendered by the flag NEW_HEADER, but not by the flag NEW_FOOTER.

Usage of FFProvider:

function App () {
  const flags = {
    NEW_HEADER: true,
    NEW_FOOTER: false,
  }

  return (
    <FFProvider flags={flags}>
      <TheRestOfMyApp />
    </FFProvider>
  )
}

Now, anywhere on your app, you can use the FF component to make the feature flag (or feature toggle):

function TheRestOfMyApp () {
  return (
    <>
      <FF flag='NEW_HEADER' feature={<NewHeader />}>
        <OldHeader />
      </FF>

      <FF flag='NEW_FOOTER' feature={<NewFooter />} />
    </>
  )
}

function NewHeader () {
  return (
    <header>New header</header>
  )
}

function OldHeader () {
  return (
    <header>Old header</header>
  )
}

function NewFooter () {
  return (
    <footer>New footer</footer>
  )
}

The flag prop is type safe, and will only accept flags from type Flags, passed for createFeatureFlag function.

The children is optional. You can pass a children when you want to render a fallback component, whether flag is disabled (false).

Author

👤 Fernando Daciuk - @fdaciuk

Credits

Logo by @vmarcosp ♥️

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page. You can also take a look at the contributing guide.

Show your support

Give a ⭐️ if this project helped you!

📝 License

Copyright © 2021 Fernando Daciuk - @fdaciuk.
This project is MIT licensed.

Keywords

FAQs

Package last updated on 09 Mar 2022

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc