diff --git a/apps/dashboard/src/app/router.tsx b/apps/dashboard/src/app/router.tsx
index ea0e8ac..83e1335 100644
--- a/apps/dashboard/src/app/router.tsx
+++ b/apps/dashboard/src/app/router.tsx
@@ -2,6 +2,8 @@ import { createBrowserRouter, type RouteObject } from 'react-router-dom';
import { AppShell } from './app-shell.js';
import { OverviewPage } from '../features/overview/overview-page.js';
import { PlaceholderPage } from '../features/placeholder-page.js';
+import { ConversationRoute } from '../features/conversations/conversation-route.js';
+import { MediaPage } from '../features/media/media-page.js';
export function createDashboardRoutes(): RouteObject[] {
return [
@@ -10,8 +12,9 @@ export function createDashboardRoutes(): RouteObject[] {
element: ,
children: [
{ index: true, element: },
- { path: 'conversations', element: },
- { path: 'media', element: },
+ { path: 'conversations', element: },
+ { path: 'conversations/:conversationId', element: },
+ { path: 'media', element: },
{ path: 'performance', element: },
{ path: 'operations', element: },
{ path: 'settings', element: },
diff --git a/apps/dashboard/src/features/conversations/conversation-route.tsx b/apps/dashboard/src/features/conversations/conversation-route.tsx
new file mode 100644
index 0000000..7d14e08
--- /dev/null
+++ b/apps/dashboard/src/features/conversations/conversation-route.tsx
@@ -0,0 +1,22 @@
+import { useNavigate, useParams } from 'react-router-dom';
+import { ConversationsPage } from './conversations-page.js';
+
+export function ConversationRoute() {
+ const navigate = useNavigate();
+ const { conversationId } = useParams<{ conversationId: string }>();
+
+ function selectConversation(nextConversationId: string | null) {
+ void navigate(
+ nextConversationId
+ ? `/conversations/${encodeURIComponent(nextConversationId)}`
+ : '/conversations',
+ );
+ }
+
+ return (
+
+ );
+}