89fd333702
Add client-logging SDK, expanded event taxonomy, API observability, admin domain events UI, and move SENTRY_DSN to HQ system settings with @sentry/node bootstrap after config preload. Co-authored-by: Cursor <cursoragent@cursor.com>
27 lines
747 B
TypeScript
27 lines
747 B
TypeScript
import { createStoreTracker } from '@dukang/client-logging';
|
|
import { apiBase } from './api';
|
|
|
|
const tracker = createStoreTracker({
|
|
apiBase,
|
|
clientApp: 'SHOP_H5',
|
|
getToken: () => localStorage.getItem('shopAccessToken'),
|
|
getStoreId: () => {
|
|
try {
|
|
const raw = localStorage.getItem('shopSession');
|
|
if (!raw) return null;
|
|
const parsed = JSON.parse(raw) as { storeId?: string };
|
|
return parsed.storeId ?? null;
|
|
} catch {
|
|
return null;
|
|
}
|
|
},
|
|
});
|
|
|
|
export function trackStore(eventName: string, params?: Record<string, unknown>) {
|
|
tracker.track(eventName, params);
|
|
}
|
|
|
|
export function trackStorePageView(eventName: string, params?: Record<string, unknown>) {
|
|
tracker.trackPageView(eventName, params);
|
|
}
|