import{DatadogProvider}from'@datadog/openfeature-browser';constprovider=newDatadogProvider({// Required
// applicationId is a unique identifier to distinguish multiple frontend applications.
// This should match the app ID you provide to your RUM SDK.
applicationId:'<APPLICATION_ID>',// Required
clientToken:'<CLIENT_TOKEN>',site:'',env:'<ENV_NAME>',});
import{useBooleanFlagValue}from'@openfeature/react-sdk';import{Suspense}from'react';functionContent(){// Display a loading message if the component uses feature flags and the provider is not ready
return(<Suspensefallback={"Loading..."}><WelcomeMessage/></Suspense>);}functionWelcomeMessage(){constshowNewMessage=useBooleanFlagValue('show-new-welcome-message',false,{suspend:true});return(<>{showNewMessage?(<p>Welcome!You'reseeingthenewexperience.</p>):(<p>Welcomeback!</p>)}</>);}
import{useStringFlagDetails}from'@openfeature/react-sdk';functionPaywallLayout(){constdetails=useStringFlagDetails('paywall_layout','control');console.log(details.value);// Evaluated value (for example: "A", "B", or "control")
console.log(details.variant);// Variant name, if applicable
console.log(details.reason);// Description of why this value was chosen
return<Layoutvariant={details.value}/>;}
import{Suspense}from'react';import{DatadogProvider}from'@datadog/openfeature-browser';import{OpenFeatureProvider,OpenFeature,useBooleanFlagValue}from'@openfeature/react-sdk';// Initialize the Datadog provider
constprovider=newDatadogProvider({applicationId:'<APPLICATION_ID>',clientToken:'<CLIENT_TOKEN>',site:'',env:'<ENV_NAME>',});// Set the evaluation context
constevaluationContext={targetingKey:'user-123',user_id:'123',user_role:'admin',};OpenFeature.setProvider(provider,evaluationContext);// Wrap your app with the OpenFeatureProvider and Suspense for loading state
functionApp(){return(<Suspensefallback={<Loading/>}><OpenFeatureProvidersuspendUntilReady><Page/></OpenFeatureProvider></Suspense>);}// Use feature flags in your components
functionPage(){constshowNewFeature=useBooleanFlagValue('new_feature',false);return(<div>{showNewFeature?<NewFeature/>:<ExistingFeature/>}</div>);}