import { doc, collection, setDoc } from 'firebase/firestore' import _ from 'lodash' import { db } from './init' import { ClickEvent, LatencyEvent, View } from '../../../common/tracking' import { listenForLogin, User } from './users' let user: User | null = null if (typeof window !== 'undefined') { listenForLogin((u) => (user = u)) } export async function trackView(contractId: string) { if (!user) return const ref = doc(collection(db, 'private-users', user.id, 'views')) const view: View = { contractId, timestamp: Date.now(), } return await setDoc(ref, view) } export async function trackClick(contractId: string) { if (!user) return const ref = doc(collection(db, 'private-users', user.id, 'events')) const clickEvent: ClickEvent = { type: 'click', contractId, timestamp: Date.now(), } return await setDoc(ref, clickEvent) } export async function trackLatency( type: 'feed' | 'portfolio', latency: number ) { if (!user) return const ref = doc(collection(db, 'private-users', user.id, 'latency')) const latencyEvent: LatencyEvent = { type, latency, timestamp: Date.now(), } return await setDoc(ref, latencyEvent) }