import { createContext, useContext, type ReactNode } from "react"; import type { IAnalytics } from "../analytics.interface"; const AnalyticsContext = createContext(null); export class AnalyticsContextError extends Error { constructor() { super("useAnalytics() must be called within an ."); this.name = "AnalyticsContextError"; } } export function AnalyticsProvider({ value, children, }: { value: IAnalytics; children: ReactNode; }) { return ( {children} ); } export function useAnalytics(): IAnalytics { const analytics = useContext(AnalyticsContext); if (analytics === null) { throw new AnalyticsContextError(); } return analytics; }