npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-experiment

v2.1.0

Published

A React component to load Toggles experiments and render active or inactive children.

Downloads

398

Readme

@toggles/react-experiment

A React component to load Toggles experiments and render active or inactive children.

Install

Install with npm.

$ npm i @toggles/experiments @toggles/react-experiment

Please note the peer dependency, @toggles/experiments, which will allow you to load experiments from the Toggles API.

Usage

Please visit the Toggles app online. There, you can create an account and an experiment, configure specific users who should see the experiment, or specify a percent of users who should see the experiment.

Once this is complete, you can add an experiment provider to your app:

import React from 'react'
import Experiment from '@toggles/react-experiment'

const MyApp = () => <div>
  <Experiment.Provider
    apiKey="KEY"
    context={{uniqueId: "[email protected]"}}
    rapidAPIKey="KEY"
  >
    <SomeComponent />
  </Experiment.Provider>
</div>

The apiKey prop will be the API key from the settings tab in the Toggles app.

Next, copy an experiment id from an experiment card in the Toggles app. Add the following component, with that experiment id, in your app:

import React from 'react'
import Experiment from '@toggles/react-experiment'

export const AlwaysBlue = () => <div>
  <Experiment
    alwaysRenderInactive={false}
    experimentId="ID">
    <Experiment.Active>
      <span red>JK, I'm red!</span>
    </Experiment.Active>
    <Experiment.Inactive>
      <span blue>I'm blue! Huzzah!</span>
    </Experiment.Inactive>
  </Experiment>
</div>

export default AlwaysBlue

NOTE: No children passed to the Experiment component besides Active or Inactive will be rendered.

If you need access to raw experiments, you may use the withExperiments connector:

import React from 'react'
import {withExperiments} from '@toggles/react-experiment'

export const AlwaysBlue = withExperiments({experiments}) => {
  return <div>
    {experiment['ID'].active ? 'JK, I’m red!' : 'I’m blue! Huzzah!'}
  </div>
})

export default AlwaysBlue

Experiments will be made available with name, description, uuid, and active/inactive state for the provided context. For more information on using experiment contexts, please see @toggles/experiments

Props

Experiment.Provider

| Name | Type | Description | Default | | --------------------------- | ------------- | ---------------------------------------------- | ----------------------------- | | apiKey | string | Toggles API Key | | | apiUrl | string | API Url: use a RapidAPI host if using RapidAPI | "https://api.toggles.co" | | context | object|string | Context used to uniquely identify a user | | | rapidAPIKey | string | RapidAPI Key | |

context is either of type shape, which supports a single property, uniqueId, or a string. This property represents identifying information about a user and may be used to blacklist or whitelist active experiment users.

NOTE: If you pass a RapidAPI Key it will be used with preference to the Toggles API Key.

Experiment.Provider

| Name | Type | Description | Default | | --------------------------- | ------------- | ---------------------------------------------- | ----------------------------- | | alwaysRenderInactive | bool | Should inactive render before API response | false | | experimentId | string | A Toggles experiment id | |

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

License

Copyright © 2019 [] Licensed under the MIT license.


This file was generated by readme-generator on June 21, 2019.