hololake-system-architecture/product-source/hololake-platform/src/hooks/useFeatureFlag.ts

22 lines
681 B
TypeScript

/**
* Feature flag hook backed by PostHog + release channels.
*
* Flags are resolved in order:
* 1. localStorage override (`ff_<name>`) — for dev/QA testing
* 2. PostHog feature flags (evaluated by release channel)
* 3. Alpha channel always returns true (sees all features)
*/
import { isFeatureEnabled } from '../lib/telemetry'
export type FeatureFlagName = 'example_flag'
export function useFeatureFlag(flag: FeatureFlagName): boolean {
try {
const override = localStorage.getItem(`ff_${flag}`)
if (override !== null) return override === 'true'
} catch {
// localStorage may be unavailable in some contexts
}
return isFeatureEnabled(flag)
}