diff --git a/posthog-react-native/src/hooks/useFeatureFlag.ts b/posthog-react-native/src/hooks/useFeatureFlag.ts index 589cef8c..a9179782 100644 --- a/posthog-react-native/src/hooks/useFeatureFlag.ts +++ b/posthog-react-native/src/hooks/useFeatureFlag.ts @@ -1,5 +1,6 @@ import { useEffect, useState } from 'react' import { usePostHog } from './usePostHog' +import { JsonType } from 'posthog-core/src' export function useFeatureFlag(flag: string): string | boolean | undefined { const posthog = usePostHog() @@ -18,3 +19,24 @@ export function useFeatureFlag(flag: string): string | boolean | undefined { return featureFlag } + +export type FeatureFlagWithPayload = [boolean | string | undefined, JsonType | undefined]; + +export function useFeatureFlagWithPayload(flag: string): FeatureFlagWithPayload { + const posthog = usePostHog() + + const [featureFlag, setFeatureFlag] = useState([undefined, undefined]) + + useEffect(() => { + if (!posthog) { + return + } + + setFeatureFlag([posthog.getFeatureFlag(flag), posthog.getFeatureFlagPayload(flag)]) + return posthog.onFeatureFlags(() => { + setFeatureFlag([posthog.getFeatureFlag(flag), posthog.getFeatureFlagPayload(flag)]) + }) + }, [posthog, flag]) + + return featureFlag; +}