@optic7409/resolvo-analytics
Version:
Simplified analytics client library for Next.js with automatic SSR handling, one-line integration, and comprehensive tracking
28 lines (27 loc) • 992 B
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { createContext, useContext, useEffect, useState } from 'react';
import { AnalyticsClient } from '../../core/AnalyticsClient';
export const AnalyticsContext = createContext({
client: null,
isReady: false
});
export function AnalyticsProvider({ config, children }) {
const [client, setClient] = useState(null);
const [isReady, setIsReady] = useState(false);
useEffect(() => {
const analyticsClient = new AnalyticsClient(config);
setClient(analyticsClient);
setIsReady(true);
return () => {
analyticsClient.destroy();
};
}, [config]);
return (_jsx(AnalyticsContext.Provider, { value: { client, isReady }, children: children }));
}
export function useAnalyticsContext() {
const context = useContext(AnalyticsContext);
if (!context) {
throw new Error('useAnalyticsContext must be used within an AnalyticsProvider');
}
return context;
}