import { useMemo } from 'react';
import { PostHogProvider } from 'posthog-js/react';

//
// Export PostHog hooks.
//
export {
  useActiveFeatureFlags,
  useFeatureFlagEnabled,
  useFeatureFlagPayload,
  useFeatureFlagVariantKey,
  usePostHog,
} from 'posthog-js/react';

const { PUBLIC_POSTHOG_KEY, PUBLIC_POSTHOG_HOST } = process.env;

export const withPostHog = App => {
  if (!PUBLIC_POSTHOG_KEY) {
    return App;
  }

  return useMemo(
    () => () => (
      <PostHogProvider
        apiKey={PUBLIC_POSTHOG_KEY}
        options={{ api_host: PUBLIC_POSTHOG_HOST }}
      >
        <App />
      </PostHogProvider>
    ),
    [App],
  );
};
