import { baseApi } from "@/lib/store/apis/baseApi"; import { useAppDispatch } from "@/lib/store/hooks"; import { useEffect } from "react"; import { useWebSocket } from "./useWebSocket"; /** * Hook that subscribes to WebSocket messages for real-time cache updates. * * Handles store_update messages to invalidate RTK Query cache tags (triggers refetch). */ export function useStoreSync() { const { subscribe } = useWebSocket(); const dispatch = useAppDispatch(); useEffect(() => { const unsubTagSync = subscribe("store_update", (data) => { if (data.tags && Array.isArray(data.tags)) { dispatch(baseApi.util.invalidateTags(data.tags)); } }); return () => { unsubTagSync(); }; }, [subscribe, dispatch]); }