import Taro from '@tarojs/taro'; import { createUserTracker, getSessionId } from '@dukang/client-logging'; import { API_BASE, CLIENT_APP, getToken } from './api'; function currentPagePath(): string | undefined { try { const pages = Taro.getCurrentPages(); const cur = pages[pages.length - 1] as { route?: string; $taroPath?: string } | undefined; return cur?.$taroPath || cur?.route || undefined; } catch { return undefined; } } const tracker = createUserTracker({ apiBase: API_BASE, clientApp: CLIENT_APP, getToken, getPagePath: currentPagePath, postJson: ({ url, headers, body }) => { void Taro.request({ url, method: 'POST', header: headers, data: body }).catch(() => {}); }, }); export { getSessionId }; export function track(eventName: string, params?: Record) { tracker.track(eventName, params); } export function trackPageView(eventName: string, params?: Record) { tracker.trackPageView(eventName, params); } export function initUserAnalytics() { tracker.trackSessionStart(); }