UNPKG

visitory-sdk

Version:

Feature flags and analytics SDK for Visitory

42 lines (41 loc) 1.52 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { createContext, useContext, useEffect, useState } from 'react'; const VisitoryContext = createContext(null); export function useVisitory() { const context = useContext(VisitoryContext); if (!context) { throw new Error('useVisitory must be used within a VisitoryProvider'); } return context; } export function VisitoryProvider({ children, config, }) { const [isInitialized, setIsInitialized] = useState(false); const logEvent = async (eventName, properties) => { try { const response = await fetch('https://qualified-hound-398.convex.site/api/analytics/track', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ apiKey: config.apiKey, eventName, properties, userId: config.userId, projectId: config.projectId, }), }); if (!response.ok) { throw new Error(`Failed to track event: ${response.statusText}`); } } catch (error) { console.error('Error tracking event:', error); } }; useEffect(() => { // Initialize analytics setIsInitialized(true); }, []); return (_jsx(VisitoryContext.Provider, { value: { logEvent, isInitialized }, children: children })); }