diff --git a/apps/web/src/api/buster_rest/metrics/getMetricQueryRequests.ts b/apps/web/src/api/buster_rest/metrics/getMetricQueryRequests.ts index ab2af9862..4e95b8c4f 100644 --- a/apps/web/src/api/buster_rest/metrics/getMetricQueryRequests.ts +++ b/apps/web/src/api/buster_rest/metrics/getMetricQueryRequests.ts @@ -91,13 +91,14 @@ export const useGetMetric = ( } return false; }, + enabled: (params?.enabled ?? true) && !!id, select: undefined, ...params, }); return useQuery({ ...metricsQueryKeys.metricsGetMetric(id || '', selectedVersionNumber), - enabled: !!latestVersionNumber && isFetchedInitial && !isErrorInitial, + enabled: !!id && !!latestVersionNumber && isFetchedInitial && !isErrorInitial, queryFn: () => getMetricQueryFn({ id, version: selectedVersionNumber, password, queryClient }), select: params?.select, }); @@ -120,7 +121,7 @@ export const prefetchGetMetric = async ( const queryKey = metricsQueryKeys.metricsGetMetric(id, version_number || 'LATEST')?.queryKey; const existingData = queryClient.getQueryData(queryKey); - if (!existingData) { + if (!existingData && id) { await queryClient.prefetchQuery({ ...metricsQueryKeys.metricsGetMetric(id, version_number || 'LATEST'), queryFn: () => @@ -208,7 +209,7 @@ export const prefetchGetMetricDataClient = async ( ) => { const options = metricsQueryKeys.metricsGetData(id, version_number); const existingData = queryClient.getQueryData(options.queryKey); - if (!existingData) { + if (!existingData && id) { await queryClient.prefetchQuery({ ...options, queryFn: () => getMetricData({ id, version_number }), diff --git a/apps/web/src/context/BusterAssets/metric-server/metricIndexServerAssetContext.tsx b/apps/web/src/context/BusterAssets/metric-server/metricIndexServerAssetContext.tsx index f6b6073bc..6a7bb511e 100644 --- a/apps/web/src/context/BusterAssets/metric-server/metricIndexServerAssetContext.tsx +++ b/apps/web/src/context/BusterAssets/metric-server/metricIndexServerAssetContext.tsx @@ -1,5 +1,4 @@ import { redirect } from '@tanstack/react-router'; -import { preventBrowserCacheHeaders } from '@/middleware/shared-headers'; export const beforeLoad = ({ params, @@ -18,7 +17,3 @@ export const beforeLoad = ({ statusCode: 301, }); }; - -export const head = () => ({ - meta: [...preventBrowserCacheHeaders], -}); diff --git a/apps/web/src/context/BusterAssets/report-server/reportIndexServerAssetContext.tsx b/apps/web/src/context/BusterAssets/report-server/reportIndexServerAssetContext.tsx index cf9cd124e..10b4f4736 100644 --- a/apps/web/src/context/BusterAssets/report-server/reportIndexServerAssetContext.tsx +++ b/apps/web/src/context/BusterAssets/report-server/reportIndexServerAssetContext.tsx @@ -1,5 +1,4 @@ import { redirect } from '@tanstack/react-router'; -import { preventBrowserCacheHeaders } from '@/middleware/shared-headers'; export const beforeLoad = ({ params, @@ -18,7 +17,3 @@ export const beforeLoad = ({ statusCode: 301, }); }; - -export const head = () => ({ - meta: [...preventBrowserCacheHeaders], -}); diff --git a/apps/web/src/middleware/shared-headers.ts b/apps/web/src/middleware/shared-headers.ts index fe2575f72..05e60b64d 100644 --- a/apps/web/src/middleware/shared-headers.ts +++ b/apps/web/src/middleware/shared-headers.ts @@ -3,9 +3,3 @@ export const htmlCacheHeaders = [ { httpEquiv: 'Cache-Control', content: 'public, max-age=300, must-revalidate' }, // 5 minutes { httpEquiv: 'Pragma', content: 'cache' }, ]; - -// Use less aggressive caching to work better with Cloudflare -export const preventBrowserCacheHeaders = [ - { httpEquiv: 'Cache-Control', content: 'public, max-age=0, must-revalidate' }, - { httpEquiv: 'Pragma', content: 'no-cache' }, -]; diff --git a/apps/web/src/routes/__root.tsx b/apps/web/src/routes/__root.tsx index c95460edd..03921aaac 100644 --- a/apps/web/src/routes/__root.tsx +++ b/apps/web/src/routes/__root.tsx @@ -1,7 +1,5 @@ import { createRootRouteWithContext, HeadContent, Scripts } from '@tanstack/react-router'; -import { ErrorBoundary } from 'react-error-boundary'; import { RootProviders } from '@/context/Providers'; -import { preventBrowserCacheHeaders } from '@/middleware/shared-headers'; import shareImage from '../assets/png/default_preview.png'; import favicon from '../assets/png/favicon.ico'; import { TanstackDevtools } from '../integrations/tanstack-dev-tools/tanstack-devtools'; @@ -32,7 +30,6 @@ export const Route = createRootRouteWithContext()({ { name: 'og:type', content: 'website' }, { name: 'og:locale', content: 'en_US' }, { name: 'og:site_name', content: 'Buster' }, - ...preventBrowserCacheHeaders, ], links: [ { rel: 'stylesheet', href: appCss }, diff --git a/apps/web/src/routes/app.tsx b/apps/web/src/routes/app.tsx index db450790a..af2c4fa84 100644 --- a/apps/web/src/routes/app.tsx +++ b/apps/web/src/routes/app.tsx @@ -3,14 +3,8 @@ import { prefetchGetMyUserInfo } from '@/api/buster_rest/users/queryRequests'; import { getAppLayout } from '@/api/server-functions/getAppLayout'; import { AppProviders } from '@/context/Providers'; import { getSupabaseSession } from '@/integrations/supabase/getSupabaseUserClient'; -import { preventBrowserCacheHeaders } from '@/middleware/shared-headers'; export const Route = createFileRoute('/app')({ - head: () => { - return { - meta: [...preventBrowserCacheHeaders], - }; - }, context: ({ context }) => ({ ...context, getAppLayout }), beforeLoad: async () => { try { diff --git a/apps/web/src/routes/app/_app/datasets.$datasetId.permissions.index.tsx b/apps/web/src/routes/app/_app/datasets.$datasetId.permissions.index.tsx index 519705391..48b4b6b92 100644 --- a/apps/web/src/routes/app/_app/datasets.$datasetId.permissions.index.tsx +++ b/apps/web/src/routes/app/_app/datasets.$datasetId.permissions.index.tsx @@ -1,10 +1,6 @@ import { createFileRoute, redirect } from '@tanstack/react-router'; -import { preventBrowserCacheHeaders } from '@/middleware/shared-headers'; export const Route = createFileRoute('/app/_app/datasets/$datasetId/permissions/')({ - head: () => ({ - meta: [...preventBrowserCacheHeaders], - }), beforeLoad: async ({ params }) => { throw redirect({ to: '/app/datasets/$datasetId/permissions/overview', diff --git a/apps/web/src/routes/app/_app/datasets.$datasetId.tsx b/apps/web/src/routes/app/_app/datasets.$datasetId.tsx index e231af6b5..a236bbe97 100644 --- a/apps/web/src/routes/app/_app/datasets.$datasetId.tsx +++ b/apps/web/src/routes/app/_app/datasets.$datasetId.tsx @@ -1,7 +1,6 @@ import { createFileRoute, matchByPath, Outlet, redirect } from '@tanstack/react-router'; import { prefetchGetDatasetMetadata } from '@/api/buster_rest/datasets/queryRequests'; import { DatasetsIndividualLayout } from '@/controllers/DatasetsControllers/DatasetsIndividualLayout/DatasetsLayout'; -import { preventBrowserCacheHeaders } from '@/middleware/shared-headers'; export const Route = createFileRoute('/app/_app/datasets/$datasetId')({ beforeLoad: async ({ params, location }) => { @@ -32,7 +31,6 @@ export const Route = createFileRoute('/app/_app/datasets/$datasetId')({ { name: 'description', content: 'Explore and analyze your dataset' }, { name: 'og:title', content: 'Dataset' }, { name: 'og:description', content: 'Explore and analyze your dataset' }, - ...preventBrowserCacheHeaders, ], }), component: RouteComponent, diff --git a/apps/web/src/routes/app/_settings/settings.index.tsx b/apps/web/src/routes/app/_settings/settings.index.tsx index 03f700e59..57bc65b38 100644 --- a/apps/web/src/routes/app/_settings/settings.index.tsx +++ b/apps/web/src/routes/app/_settings/settings.index.tsx @@ -1,10 +1,6 @@ import { createFileRoute, redirect } from '@tanstack/react-router'; -import { preventBrowserCacheHeaders } from '@/middleware/shared-headers'; export const Route = createFileRoute('/app/_settings/settings/')({ - head: () => ({ - meta: [...preventBrowserCacheHeaders], - }), beforeLoad: async () => { throw redirect({ to: '/app/settings/profile', diff --git a/apps/web/src/routes/app/index.tsx b/apps/web/src/routes/app/index.tsx index e0967cf2c..a5cf81e42 100644 --- a/apps/web/src/routes/app/index.tsx +++ b/apps/web/src/routes/app/index.tsx @@ -1,10 +1,6 @@ import { createFileRoute, redirect } from '@tanstack/react-router'; -import { preventBrowserCacheHeaders } from '@/middleware/shared-headers'; export const Route = createFileRoute('/app/')({ - head: () => ({ - meta: [...preventBrowserCacheHeaders], - }), beforeLoad: async () => { throw redirect({ to: '/app/home', replace: true, statusCode: 307 }); }, diff --git a/apps/web/src/routes/index.tsx b/apps/web/src/routes/index.tsx index a77f882d2..626294962 100644 --- a/apps/web/src/routes/index.tsx +++ b/apps/web/src/routes/index.tsx @@ -1,10 +1,6 @@ import { createFileRoute, redirect } from '@tanstack/react-router'; -import { preventBrowserCacheHeaders } from '@/middleware/shared-headers'; export const Route = createFileRoute('/')({ - head: () => ({ - meta: [...preventBrowserCacheHeaders], - }), beforeLoad: async () => { throw redirect({ to: '/app/home', replace: true }); }, diff --git a/apps/web/vite.config.ts b/apps/web/vite.config.ts index dd1cb4631..23bca7af7 100644 --- a/apps/web/vite.config.ts +++ b/apps/web/vite.config.ts @@ -31,9 +31,7 @@ const config = defineConfig(({ command, mode }) => { }) : undefined, ], - worker: { - format: 'es', - }, + worker: { format: 'es' }, build: { chunkSizeWarningLimit: 1250, minify: isProduction ? 'esbuild' : false,