"use client" import { create } from "zustand" interface TrackingStoreState { initialStartTime: number setInitialPageLoadTime: (time: number) => void getPageLoadTime: () => number currentPath: string | null previousPath: string | null currentLang: string | null previousLang: string | null updateRouteInfo: (path: string, lang: string) => void hasPathOrLangChanged: () => boolean } const useTrackingStore = create((set, get) => ({ initialStartTime: Date.now(), setInitialPageLoadTime: (time) => set({ initialStartTime: time }), getPageLoadTime: () => { const { initialStartTime } = get() return (Date.now() - initialStartTime) / 1000 }, currentPath: null, previousPath: null, currentLang: null, previousLang: null, updateRouteInfo: (path, lang) => set((state) => { if (!path || !lang) return state if (!state.currentPath || !state.currentLang) { return { currentPath: path, currentLang: lang, previousPath: null, previousLang: null, } } return { previousPath: state.currentPath, previousLang: state.currentLang, currentPath: path, currentLang: lang, } }), hasPathOrLangChanged: () => { const { currentPath, previousPath, currentLang, previousLang } = get() if (!previousPath || !previousLang) return false return currentPath !== previousPath || currentLang !== previousLang }, })) export default useTrackingStore