13 lines · 506 B
import { useEffect, useState } from "react";
import { featureFlag, onFeatureFlags } from "~/lib/analytics";

/** A PostHog feature flag; always `fallback` on instances without analytics or before flags load. */
export function useFeatureFlag(key: string, fallback = false): boolean {
  const [value, setValue] = useState(fallback);
  useEffect(() => {
    setValue(featureFlag(key, fallback));
    return onFeatureFlags(() => setValue(featureFlag(key, fallback)));
  }, [key, fallback]);
  return value;
}