+ {/* Conversation column */}
+
+ {activeSessionId && (
+
+ )}
-
- {/* Top workflow bar */}
-
-
-
-
-
- {/* Center: chat + steer input */}
-
-
- {activeSessionId && }
+
+
+ {activeSessionId ? (
+ <>
+
+
+ >
+ ) : (
+
+ )}
+
+
+ {activeSessionId && (
+
+ )}
- {/* Right artifact sidebar — collapsible */}
- {sidebarOpen && (
-
- )}
+ {/* Right session rail — symmetric to the portal's left sidebar */}
+
+
+
+
+ );
+}
+
+function EmptyState() {
+ return (
+
+
+ ThothII
+
+
+ Interroga il tuo data warehouse in linguaggio naturale. Crea una nuova
+ domanda dal pannello a destra per avviare una sessione guidata.
+
);
}
diff --git a/frontend/src/shell/NavSessions.tsx b/frontend/src/shell/NavSessions.tsx
index ac413d91..0512ae4b 100644
--- a/frontend/src/shell/NavSessions.tsx
+++ b/frontend/src/shell/NavSessions.tsx
@@ -23,24 +23,58 @@ export function NavSessions({ activeSessionId, onSessionSelect }: Props) {
onSessionSelect(id);
}
+ if (sessions.length === 0) {
+ return (
+
+ Nessuna sessione. Inizia con Nuova domanda.
+
+ );
+ }
+
return (
-
- {sessions.map((s) => (
- -
-
-
- ))}
+
+ {sessions.map((s) => {
+ const active = s.id === activeSessionId;
+ return (
+ -
+
+
+ );
+ })}
);
}
diff --git a/frontend/src/shell/NewSessionDialog.tsx b/frontend/src/shell/NewSessionDialog.tsx
index fd26e834..a21752f5 100644
--- a/frontend/src/shell/NewSessionDialog.tsx
+++ b/frontend/src/shell/NewSessionDialog.tsx
@@ -55,7 +55,7 @@ export function NewSessionDialog({ onCreated }: Props) {