featuretoggle-sdk-react
v1.0.11
Published
React adapter for [featuretoggle-sdk-typescript](https://www.npmjs.com/package/featuretoggle-sdk-typescript) — `FeatureToggleProvider`, `useFeature`, and `useFeatureToggle`.
Readme
featuretoggle-sdk-react
React adapter for featuretoggle-sdk-typescript — FeatureToggleProvider, useFeature, and useFeatureToggle.
Install
bun add featuretoggle-sdk-react featuretoggle-sdk-typescript reactPeers: react (≥18), featuretoggle-sdk-typescript (^1.0.11).
Quick start
import { FeatureToggleProvider, useFeature } from "featuretoggle-sdk-react";
function App() {
return (
<FeatureToggleProvider apiKey={import.meta.env.VITE_FT_API_KEY}>
<Checkout />
</FeatureToggleProvider>
);
}
function Checkout() {
const { enabled, loading } = useFeature("new-checkout");
if (loading) return null;
return enabled ? <NewCheckout /> : <LegacyCheckout />;
}Integration patterns
Full recipes in INTEGRATION.md:
| Pattern | See | |---------|-----| | Client-only SPA | INTEGRATION.md | | Bring-your-own client | INTEGRATION.md | | SSR seed (no flash) | INTEGRATION.md | | SSR props (component-level) | INTEGRATION.md | | Companion hook (bulk / refresh) | INTEGRATION.md | | Manual init | INTEGRATION.md |
Server loader patterns: featuretoggle-sdk-typescript INTEGRATION.md.
API
<FeatureToggleProvider>—apiKey, optionalclient,initialFeatures,initialEtag,autoInit(defaulttrue)useFeature(key)—{ enabled, value, loading, error }useFeatureToggle()—{ init, refresh, getFeatures, loading, error }
For stream: "off" or pollInterval, pass a custom client built with new FeatureToggle({ ... }) from featuretoggle-sdk-typescript — those options are not provider props yet.
Import FeatureResponse from featuretoggle-sdk-typescript — not re-exported from this package.
