UNPKG

@flagship.io/react-native-sdk

Version:
70 lines (69 loc) 3.07 kB
'use client'; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { Flagship, useFlagship as useFs } from '@flagship.io/react-sdk'; import { useCallback, useMemo } from 'react'; import { Dimensions, PixelRatio, Platform } from 'react-native'; const DEVICE_CATEGORY_MAP = { ios: 'iphone', android: 'android', macos: 'darwin', windows: 'win32', web: 'browser', }; const createPageView = (visitorId, screenName) => { var _a; const viewport = Dimensions.get('window'); const screen = Dimensions.get('screen'); const config = Flagship.getConfig(); return { visitorId: visitorId, customerAccountId: (_a = config === null || config === void 0 ? void 0 : config.envId) !== null && _a !== void 0 ? _a : '', currentUrl: screenName, hasAdBlocker: false, screenDepth: "24", screenSize: `${screen.width},${screen.height};`, doNotTrack: 'unspecified', fonts: '[]', hasFakeBrowserInfos: false, hasFakeLanguageInfos: false, hasFakeOsInfos: false, hasFakeResolutionInfos: false, userLanguage: 'en', deviceCategory: DEVICE_CATEGORY_MAP[Platform.OS] || 'unknown', pixelRatio: PixelRatio.get(), viewportSize: `[${viewport.width},${viewport.height}]`, touchSupport: "[5, true, true]", userAgent: 'React Native', documentReferer: '', eventCategory: "click tunnel auto", timezoneOffset: new Date().getTimezoneOffset(), }; }; export const useFlagship = () => { const fs = useFs(); const sendEaiPageViewAsync = useCallback((screenName) => __awaiter(void 0, void 0, void 0, function* () { if (!fs.context) { return; } const pageView = createPageView(fs.visitorId, screenName); const visitor = Flagship.getVisitor(); visitor.sendEaiPageView(pageView); }), [fs.context]); const collectEAIEventsAsync = useCallback((screenName) => __awaiter(void 0, void 0, void 0, function* () { if (!fs.context) { return; } const pageView = createPageView(fs.visitorId, screenName); return fs.collectEAIEventsAsync(pageView); }), [fs.collectEAIEventsAsync, fs.context]); return useMemo(() => (Object.assign(Object.assign({}, fs), { collectEAIEventsAsync, sendEaiPageViewAsync })), [fs, collectEAIEventsAsync, sendEaiPageViewAsync]); };