Files
web/stores/tracking.ts
Linus Flood 54f094af86 Tracking WIP
2024-09-27 08:46:12 +02:00

25 lines
627 B
TypeScript

"use client"
import { create } from "zustand"
interface TrackingStoreState {
hasRun: boolean
setHasRun: () => void
initialStartTime: number
setInitialPageLoadTime: (time: number) => void
getPageLoadTime: () => number
}
const useTrackingStore = create<TrackingStoreState>((set, get) => ({
hasRun: false,
initialStartTime: Date.now(),
setInitialPageLoadTime: (time) => set({ initialStartTime: time }),
setHasRun: () => set(() => ({ hasRun: true })),
getPageLoadTime: () => {
const { initialStartTime } = get()
return (Date.now() - initialStartTime) / 1000
},
}))
export default useTrackingStore