25 lines
627 B
TypeScript
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
|