export function useEvaluateFlag()

in packages/react/src/index.tsx [108:128]


export function useEvaluateFlag<T extends Value>(
  path: string,
  defaultValue: T,
  // eslint-disable-next-line react-hooks/rules-of-hooks
  confidence = useConfidence(),
): FlagEvaluation<T> {
  const evaluation = confidence.evaluateFlag(path, defaultValue);
  const [, setState] = useState(() => Value.serialize(confidence.getContext()));
  useEffect(() => {
    return confidence.subscribe(() => {
      setState(Value.serialize(confidence.getContext()));
    });
  });
  if ('then' in evaluation) {
    if (isServer) {
      throw Object.assign(new Error('Flags are not fetched in SSR'), { digest: 'BAILOUT_TO_CLIENT_SIDE_RENDERING' });
    }
    throw evaluation;
  }
  return evaluation;
}