'use client';
import { api } from '$/lib/trpc/react';
export const CacheUpdateSubscriber = () => {
const apiUtils = api.useUtils();
api.location.onCacheUpdate.useSubscription(undefined, {
onData: (newData) => {
apiUtils.location.findLocationsInCache.setData(undefined, (oldData) => {
if (oldData === undefined) return [];
if (!newData?.length) return oldData;
const dataMap = new Map(oldData.map((item) => [item.id, item]));
for (const item of newData) {
dataMap.set(item.id, item);
}
return Array.from(dataMap.values());
});
},
});
return null;
};
'use client';
import { api } from '$/lib/trpc/react';
export const CacheUpdateSubscriber = () => {
const apiUtils = api.useUtils();
api.location.onCacheUpdate.useSubscription(undefined, {
onData: (newData) => {
apiUtils.location.findLocationsInCache.setData(undefined, (oldData) => {
if (oldData === undefined) return [];
if (!newData?.length) return oldData;
const dataMap = new Map(oldData.map((item) => [item.id, item]));
for (const item of newData) {
dataMap.set(item.id, item);
}
return Array.from(dataMap.values());
});
},
});
return null;
};