Files
stats/apps/start/src/routes/_app.$organizationId.$projectId_.chat.tsx
Carl-Gerhard Lindesvärd 81a7e5d62e feat: dashboard v2, esm, upgrades (#211)
* esm

* wip

* wip

* wip

* wip

* wip

* wip

* subscription notice

* wip

* wip

* wip

* fix envs

* fix: update docker build

* fix

* esm/types

* delete dashboard :D

* add patches to dockerfiles

* update packages + catalogs + ts

* wip

* remove native libs

* ts

* improvements

* fix redirects and fetching session

* try fix favicon

* fixes

* fix

* order and resize reportds within a dashboard

* improvements

* wip

* added userjot to dashboard

* fix

* add op

* wip

* different cache key

* improve date picker

* fix table

* event details loading

* redo onboarding completely

* fix login

* fix

* fix

* extend session, billing and improve bars

* fix

* reduce price on 10M
2025-10-16 12:27:44 +02:00

55 lines
1.3 KiB
TypeScript

import Chat from '@/components/chat/chat';
import FullPageLoadingState from '@/components/full-page-loading-state';
import { useTRPC } from '@/integrations/trpc/react';
import { PAGE_TITLES, createProjectTitle } from '@/utils/title';
import { keepPreviousData, useSuspenseQuery } from '@tanstack/react-query';
import { createFileRoute } from '@tanstack/react-router';
import type { UIMessage } from 'ai';
export const Route = createFileRoute('/_app/$organizationId/$projectId_/chat')({
component: Component,
pendingComponent: FullPageLoadingState,
head: () => {
return {
meta: [
{
title: createProjectTitle(PAGE_TITLES.CHAT),
},
],
};
},
});
function Component() {
const { organizationId, projectId } = Route.useParams();
const trpc = useTRPC();
const { data } = useSuspenseQuery(
trpc.chat.get.queryOptions(
{
projectId,
},
{
placeholderData: keepPreviousData,
},
),
);
const { data: organization } = useSuspenseQuery(
trpc.organization.get.queryOptions({
organizationId,
}),
);
const messages = ((data?.messages as unknown as UIMessage[]) || []).slice(
-10,
);
return (
<Chat
projectId={projectId}
initialMessages={messages}
organization={organization}
/>
);
}