const handleTimeChange = (newTime) => {
if (newTime === time) return; // do nothing if same
if (!keywordFilters?.length) {
setTime(newTime); // still update UI state if you want
return;
}
setTime(newTime);
const cacheKey = [
"liveSearch",
isAuth?.id,
{
keywords: [...keywordFilters].sort(),
time: newTime,
},
];
const cached = queryClient.getQueryData(cacheKey);
const state = queryClient.getQueryState(cacheKey);
if (cached && state?.status === "success" && !state.isInvalidated) {
// Use cached results
setResults(cached.results);
setKeywordFilters(cached.keywords);
setTime(cached.time);
} else {
// Trigger mutation if cache missing or stale
liveSearchMutation.mutate({
keywords: keywordFilters,
time: newTime,
limit: 15,
});
}
};
const handleTimeChange = (newTime) => {
if (newTime === time) return; // do nothing if same
if (!keywordFilters?.length) {
setTime(newTime); // still update UI state if you want
return;
}
setTime(newTime);
const cacheKey = [
"liveSearch",
isAuth?.id,
{
keywords: [...keywordFilters].sort(),
time: newTime,
},
];
const cached = queryClient.getQueryData(cacheKey);
const state = queryClient.getQueryState(cacheKey);
if (cached && state?.status === "success" && !state.isInvalidated) {
// Use cached results
setResults(cached.results);
setKeywordFilters(cached.keywords);
setTime(cached.time);
} else {
// Trigger mutation if cache missing or stale
liveSearchMutation.mutate({
keywords: keywordFilters,
time: newTime,
limit: 15,
});
}
};