diff --git a/src/routeTree.gen.ts b/src/routeTree.gen.ts index f5fb14b..a17a742 100644 --- a/src/routeTree.gen.ts +++ b/src/routeTree.gen.ts @@ -16,6 +16,7 @@ import { Route as AboutImport } from './routes/about' import { Route as AuthenticatedImport } from './routes/_authenticated' import { Route as IndexImport } from './routes/index' import { Route as AuthenticatedCampaignsIndexImport } from './routes/_authenticated/campaigns.index' +import { Route as AuthenticatedDocumentDocumentIdImport } from './routes/_authenticated/document.$documentId' import { Route as AuthenticatedCampaignsCampaignIdImport } from './routes/_authenticated/campaigns.$campaignId' // Create/Update Routes @@ -50,6 +51,13 @@ const AuthenticatedCampaignsIndexRoute = getParentRoute: () => AuthenticatedRoute, } as any) +const AuthenticatedDocumentDocumentIdRoute = + AuthenticatedDocumentDocumentIdImport.update({ + id: '/document/$documentId', + path: '/document/$documentId', + getParentRoute: () => AuthenticatedRoute, + } as any) + const AuthenticatedCampaignsCampaignIdRoute = AuthenticatedCampaignsCampaignIdImport.update({ id: '/campaigns/$campaignId', @@ -96,6 +104,13 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof AuthenticatedCampaignsCampaignIdImport parentRoute: typeof AuthenticatedImport } + '/_authenticated/document/$documentId': { + id: '/_authenticated/document/$documentId' + path: '/document/$documentId' + fullPath: '/document/$documentId' + preLoaderRoute: typeof AuthenticatedDocumentDocumentIdImport + parentRoute: typeof AuthenticatedImport + } '/_authenticated/campaigns/': { id: '/_authenticated/campaigns/' path: '/campaigns' @@ -110,11 +125,13 @@ declare module '@tanstack/react-router' { interface AuthenticatedRouteChildren { AuthenticatedCampaignsCampaignIdRoute: typeof AuthenticatedCampaignsCampaignIdRoute + AuthenticatedDocumentDocumentIdRoute: typeof AuthenticatedDocumentDocumentIdRoute AuthenticatedCampaignsIndexRoute: typeof AuthenticatedCampaignsIndexRoute } const AuthenticatedRouteChildren: AuthenticatedRouteChildren = { AuthenticatedCampaignsCampaignIdRoute: AuthenticatedCampaignsCampaignIdRoute, + AuthenticatedDocumentDocumentIdRoute: AuthenticatedDocumentDocumentIdRoute, AuthenticatedCampaignsIndexRoute: AuthenticatedCampaignsIndexRoute, } @@ -128,6 +145,7 @@ export interface FileRoutesByFullPath { '/about': typeof AboutRoute '/login': typeof LoginRoute '/campaigns/$campaignId': typeof AuthenticatedCampaignsCampaignIdRoute + '/document/$documentId': typeof AuthenticatedDocumentDocumentIdRoute '/campaigns': typeof AuthenticatedCampaignsIndexRoute } @@ -137,6 +155,7 @@ export interface FileRoutesByTo { '/about': typeof AboutRoute '/login': typeof LoginRoute '/campaigns/$campaignId': typeof AuthenticatedCampaignsCampaignIdRoute + '/document/$documentId': typeof AuthenticatedDocumentDocumentIdRoute '/campaigns': typeof AuthenticatedCampaignsIndexRoute } @@ -147,6 +166,7 @@ export interface FileRoutesById { '/about': typeof AboutRoute '/login': typeof LoginRoute '/_authenticated/campaigns/$campaignId': typeof AuthenticatedCampaignsCampaignIdRoute + '/_authenticated/document/$documentId': typeof AuthenticatedDocumentDocumentIdRoute '/_authenticated/campaigns/': typeof AuthenticatedCampaignsIndexRoute } @@ -158,9 +178,17 @@ export interface FileRouteTypes { | '/about' | '/login' | '/campaigns/$campaignId' + | '/document/$documentId' | '/campaigns' fileRoutesByTo: FileRoutesByTo - to: '/' | '' | '/about' | '/login' | '/campaigns/$campaignId' | '/campaigns' + to: + | '/' + | '' + | '/about' + | '/login' + | '/campaigns/$campaignId' + | '/document/$documentId' + | '/campaigns' id: | '__root__' | '/' @@ -168,6 +196,7 @@ export interface FileRouteTypes { | '/about' | '/login' | '/_authenticated/campaigns/$campaignId' + | '/_authenticated/document/$documentId' | '/_authenticated/campaigns/' fileRoutesById: FileRoutesById } @@ -209,6 +238,7 @@ export const routeTree = rootRoute "filePath": "_authenticated.tsx", "children": [ "/_authenticated/campaigns/$campaignId", + "/_authenticated/document/$documentId", "/_authenticated/campaigns/" ] }, @@ -222,6 +252,10 @@ export const routeTree = rootRoute "filePath": "_authenticated/campaigns.$campaignId.tsx", "parent": "/_authenticated" }, + "/_authenticated/document/$documentId": { + "filePath": "_authenticated/document.$documentId.tsx", + "parent": "/_authenticated" + }, "/_authenticated/campaigns/": { "filePath": "_authenticated/campaigns.index.tsx", "parent": "/_authenticated" diff --git a/src/routes/_authenticated/campaigns.$campaignId.tsx b/src/routes/_authenticated/campaigns.$campaignId.tsx index 081a162..70f7700 100644 --- a/src/routes/_authenticated/campaigns.$campaignId.tsx +++ b/src/routes/_authenticated/campaigns.$campaignId.tsx @@ -5,13 +5,22 @@ import type { Campaign } from "@/lib/types"; export const Route = createFileRoute("/_authenticated/campaigns/$campaignId")({ loader: async ({ params }) => { const record = await pb.collection("campaigns").getOne(params.campaignId); - return { campaign: { id: record.id, name: record.name } as Campaign }; + // Fetch all documents for this campaign + const docs = await pb.collection("documents").getFullList({ + filter: `campaign = "${params.campaignId}"`, + }); + // Filter to only those with data.session + const sessions = docs.filter((doc: any) => doc.data && doc.data.session); + return { + campaign: { id: record.id, name: record.name } as Campaign, + sessions, + }; }, component: RouteComponent, }); function RouteComponent() { - const { campaign } = Route.useLoaderData(); + const { campaign, sessions } = Route.useLoaderData(); return (