import {
QueryClient,
HydrationBoundary,
dehydrate,
} from '@tanstack/react-query';
import { EventsList } from './EventsList';
import { getEvents } from '@/lib/actions/polymarket';
import { LIMIT } from '@/lib/constants';
export async function EventsWrapper() {
// Fetch the data directly on the server FIRST (before any time operations)
// This satisfies the Cache Component requirement of accessing data before Date.now()
let initialData = null;
let error = null;
try {
initialData = await getEvents(LIMIT, 0);
} catch (err) {
error = err;
console.error('Server-side fetch failed:', err);
}
// NOW create QueryClient after data fetch
const queryClient = new QueryClient();
if (initialData) {
// Set the initial data in the query cache
queryClient.setQueryData(['events', { limit: LIMIT }], {
pages: [initialData],
pageParams: [0],
});
}
const dehydratedState = dehydrate(queryClient);
return (
<HydrationBoundary state={dehydratedState}>
<EventsList />
</HydrationBoundary>
);
}
import {
QueryClient,
HydrationBoundary,
dehydrate,
} from '@tanstack/react-query';
import { EventsList } from './EventsList';
import { getEvents } from '@/lib/actions/polymarket';
import { LIMIT } from '@/lib/constants';
export async function EventsWrapper() {
// Fetch the data directly on the server FIRST (before any time operations)
// This satisfies the Cache Component requirement of accessing data before Date.now()
let initialData = null;
let error = null;
try {
initialData = await getEvents(LIMIT, 0);
} catch (err) {
error = err;
console.error('Server-side fetch failed:', err);
}
// NOW create QueryClient after data fetch
const queryClient = new QueryClient();
if (initialData) {
// Set the initial data in the query cache
queryClient.setQueryData(['events', { limit: LIMIT }], {
pages: [initialData],
pageParams: [0],
});
}
const dehydratedState = dehydrate(queryClient);
return (
<HydrationBoundary state={dehydratedState}>
<EventsList />
</HydrationBoundary>
);
}