Merge pull request #853 from buster-so/nate/many-updates

Remove cache from root and put in on redirect routes
This commit is contained in:
Nate Kelley 2025-09-10 19:43:40 -06:00 committed by GitHub
commit 34f14359af
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 36 additions and 19 deletions

View File

@ -1,4 +1,5 @@
import { redirect } from '@tanstack/react-router';
import { preventBrowserCacheHeaders } from '@/middleware/shared-headers';
export const beforeLoad = ({
params,
@ -17,3 +18,7 @@ export const beforeLoad = ({
statusCode: 301,
});
};
export const head = () => ({
meta: [...preventBrowserCacheHeaders],
});

View File

@ -1,4 +1,5 @@
import { redirect } from '@tanstack/react-router';
import { preventBrowserCacheHeaders } from '@/middleware/shared-headers';
export const beforeLoad = ({
params,
@ -17,3 +18,7 @@ export const beforeLoad = ({
statusCode: 301,
});
};
export const head = () => ({
meta: [...preventBrowserCacheHeaders],
});

View File

@ -0,0 +1,5 @@
export const preventBrowserCacheHeaders = [
{ 'http-equiv': 'Cache-Control', content: 'no-cache, no-store, must-revalidate' },
{ 'http-equiv': 'Pragma', content: 'no-cache' },
{ 'http-equiv': 'Expires', content: '0' },
];

View File

@ -6,12 +6,16 @@ import { prefetchGetMyUserInfo } from '@/api/buster_rest/users/queryRequests';
import { getAppLayout } from '@/api/server-functions/getAppLayout';
import { AppProviders } from '@/context/Providers';
import { getSupabaseSession, getSupabaseUser } from '@/integrations/supabase/getSupabaseUserClient';
import { preventBrowserCacheHeaders } from '@/middleware/shared-headers';
import type { LayoutSize } from '../components/ui/layouts/AppLayout';
const PRIMARY_APP_LAYOUT_ID = 'primary-sidebar';
const DEFAULT_LAYOUT: LayoutSize = ['230px', 'auto'];
export const Route = createFileRoute('/app')({
head: () => ({
meta: [...preventBrowserCacheHeaders],
}),
context: ({ context }) => ({ ...context, getAppLayout }),
beforeLoad: async () => {
console.log('beforeLoad app route');

View File

@ -1,6 +1,10 @@
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',

View File

@ -1,6 +1,7 @@
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 }) => {
@ -31,6 +32,7 @@ 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,

View File

@ -1,6 +1,10 @@
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',

View File

@ -1,6 +1,10 @@
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 });
},

View File

@ -1,28 +1,12 @@
import { createFileRoute, redirect } from '@tanstack/react-router';
import * as React from 'react';
import { isServer } from '@/lib/window';
import { preventBrowserCacheHeaders } from '@/middleware/shared-headers';
export const Route = createFileRoute('/')({
head: () => ({
meta: [
{ 'http-equiv': 'refresh', content: '0; url=/app/home' },
{ 'http-equiv': 'Cache-Control', content: 'no-cache, no-store, must-revalidate' },
{ 'http-equiv': 'Pragma', content: 'no-cache' },
{ 'http-equiv': 'Expires', content: '0' },
],
meta: [...preventBrowserCacheHeaders],
}),
beforeLoad: async () => {
// Only redirect on client-side to avoid SSR issues during cold starts
if (!isServer) {
throw redirect({ to: '/app/home', replace: true });
}
},
loader: async () => {
// Server-side: Return data indicating a redirect is needed
if (isServer) {
return { shouldRedirect: true, redirectTo: '/app/home' };
}
return {};
throw redirect({ to: '/app/home', replace: true });
},
component: () => null,
});