Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/use-non-deprecated-methods.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@posthog/react": patch
"@posthog/nuxt": patch
---

refactor: use `getFeatureFlagResult` instead of deprecated `getFeatureFlagPayload` internally
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,18 @@ import type { JsonType } from 'posthog-js'
*/
export function useFeatureFlagPayload(flag: string) {
const posthog = usePostHog()
const featureFlagPayload = ref<JsonType | undefined>(posthog?.getFeatureFlagPayload?.(flag))
const featureFlagPayload = ref<JsonType | undefined>(posthog?.getFeatureFlagResult?.(flag, { send_event: false })?.payload)

let unsubscribe: (() => void) | undefined
onMounted(() => {
if (!posthog) return

// Set initial value in case it wasn't available during setup
featureFlagPayload.value = posthog.getFeatureFlagPayload(flag)
featureFlagPayload.value = posthog.getFeatureFlagResult(flag, { send_event: false })?.payload

// Update when feature flags are loaded
unsubscribe = posthog.onFeatureFlags?.(() => {
featureFlagPayload.value = posthog.getFeatureFlagPayload(flag)
featureFlagPayload.value = posthog.getFeatureFlagResult(flag, { send_event: false })?.payload
})
})

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,12 @@
isFeatureEnabled: (flag: string) => !!FEATURE_FLAG_STATUS[flag],
getFeatureFlag: (flag: string) => FEATURE_FLAG_STATUS[flag],
getFeatureFlagPayload: (flag: string) => FEATURE_FLAG_PAYLOADS[flag],
getFeatureFlagResult: (flag: string) => ({
key: flag,
enabled: !!FEATURE_FLAG_STATUS[flag],
variant: typeof FEATURE_FLAG_STATUS[flag] === 'string' ? FEATURE_FLAG_STATUS[flag] as string : undefined,

Check failure on line 54 in packages/react/src/components/__tests__/PostHogFeature.test.tsx

View workflow job for this annotation

GitHub Actions / Lint

Replace `·typeof·FEATURE_FLAG_STATUS[flag]·===·'string'·?·FEATURE_FLAG_STATUS[flag]·as·string` with `⏎····················typeof·FEATURE_FLAG_STATUS[flag]·===·'string'·?·(FEATURE_FLAG_STATUS[flag]·as·string)`
payload: FEATURE_FLAG_PAYLOADS[flag],
}),
onFeatureFlags: (callback: any) => {
const activeFlags: string[] = []
for (const flag in FEATURE_FLAG_STATUS) {
Expand Down
6 changes: 4 additions & 2 deletions packages/react/src/hooks/useFeatureFlagPayload.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ import { PostHogContext } from '../context'
export function useFeatureFlagPayload(flag: string): JsonType {
const { client, bootstrap } = useContext(PostHogContext)

const [featureFlagPayload, setFeatureFlagPayload] = useState<JsonType>(() => client.getFeatureFlagPayload(flag))
const [featureFlagPayload, setFeatureFlagPayload] = useState<JsonType>(
() => client.getFeatureFlagResult(flag, { send_event: false })?.payload
)

useEffect(() => {
return client.onFeatureFlags(() => {
setFeatureFlagPayload(client.getFeatureFlagPayload(flag))
setFeatureFlagPayload(client.getFeatureFlagResult(flag, { send_event: false })?.payload)
})
}, [client, flag])

Expand Down
Loading