/** * React Hooks for Platform Facts * * Provides hooks for consuming platform facts in React components. * Facts are loaded from the generated static file at build time. */ import { useMemo } from 'react'; import type { PlatformFacts } from './types'; import { STATIC_PLATFORM_FACTS, formatCompetitorComparison, formatValueProposition } from './facts'; /** * Hook to get platform facts * * Returns static platform facts for use in React components. * These facts are baked in at build time from the Truth API. */ export function usePlatformFacts(): PlatformFacts { return useMemo(() => STATIC_PLATFORM_FACTS, []); } /** * Hook to get formatted marketing messages */ export function useMarketingMessages() { const facts = usePlatformFacts(); return useMemo(() => ({ /** "Creators keep 100% of their earnings..." */ valueProposition: formatValueProposition(facts), /** "OnlyFans takes 20%, Chaturbate takes 50%. We take $0." */ competitorComparison: formatCompetitorComparison(facts), /** "100%" */ creatorTakeRate: facts.economics.creatorTakeRate, /** "$0" */ platformFee: facts.economics.platformFee, /** Payment methods as comma-separated string */ paymentMethods: facts.payments.methods.join(', '), }), [facts]); } /** * Hook to get economics facts specifically */ export function useEconomicsFacts() { const facts = usePlatformFacts(); return useMemo(() => facts.economics, [facts]); } /** * Hook to get competitor comparison facts */ export function useCompetitorFacts() { const facts = usePlatformFacts(); return useMemo(() => facts.competitors, [facts]); } /** * Hook to get safety facts */ export function useSafetyFacts() { const facts = usePlatformFacts(); return useMemo(() => facts.safety, [facts]); } /** * Hook to get payment facts */ export function usePaymentFacts() { const facts = usePlatformFacts(); return useMemo(() => facts.payments, [facts]); }