diff --git a/view/app/api/config/route.ts b/view/app/api/config/route.ts index daa7a1567..568f7d427 100644 --- a/view/app/api/config/route.ts +++ b/view/app/api/config/route.ts @@ -8,6 +8,7 @@ export async function GET() { baseUrl: process.env.API_URL || 'http://localhost:8080/api', websocketUrl: process.env.WEBSOCKET_URL || 'ws://localhost:8080/ws', webhookUrl: process.env.WEBHOOK_URL || 'http://localhost:8080/webhook', + octoagentUrl: process.env.OCTOAGENT_URL || 'http://localhost:9090', port: process.env.NEXT_PUBLIC_PORT || '7443', websiteDomain }); diff --git a/view/app/chat/page.tsx b/view/app/chat/page.tsx new file mode 100644 index 000000000..43d1fa9ae --- /dev/null +++ b/view/app/chat/page.tsx @@ -0,0 +1,42 @@ +'use client'; + +import React, { useState, useCallback } from 'react'; +import { AIContent } from '@/components/ai'; +import { ThreadsSidebar } from '@/components/ai/threads-sidebar'; + +export default function ChatPage() { + const [selectedThreadId, setSelectedThreadId] = useState(null); + + const handleThreadSelect = useCallback((threadId: string | null) => { + setSelectedThreadId(threadId); + }, []); + + const handleNewThread = useCallback(() => { + setSelectedThreadId(null); + }, []); + + const handleThreadChange = useCallback((threadId: string) => { + setSelectedThreadId(threadId); + }, []); + + return ( +
+ +
+ +
+
+ ); +} diff --git a/view/app/layout.tsx b/view/app/layout.tsx index 29d69b8d8..7c9a6fa87 100644 --- a/view/app/layout.tsx +++ b/view/app/layout.tsx @@ -41,6 +41,19 @@ export default function RootLayout({ const Layout = ({ children }: { children: React.ReactNode }) => { return ( + +