+ {/* ββ Header ββ */}
+
+
+
+
+
+ BotKonzept Assistent
+
+
+ Online
+
+
+
+
+ {/* ββ Nachrichtenbereich ββ */}
+
+ {messages.map((msg) =>
+ msg.role === 'bot' ? (
+
+ {msg.text}
+
+ ) : (
+
+ {msg.text}
+
+ ),
+ )}
+
+ {/* Typing-Indikator */}
+ {isLoading && (
+
+
+
+
+
+ )}
+
+ {/* Fehlermeldung */}
+ {error && (
+
+ )}
+
+ {/* Scroll-Anker */}
+
+
+
+ {/* ββ Eingabe ββ */}
+
+ setInput(e.target.value)}
+ onKeyDown={handleKeyDown}
+ placeholder="Nachricht eingeben..."
+ disabled={isLoading}
+ className="flex-1 px-4 py-3 border border-gray-300 rounded-full text-[0.9375rem] outline-none focus:border-primary transition-colors disabled:opacity-50"
+ />
+
+
+
+ )
+}
diff --git a/landing-react/src/hooks/useChatSession.ts b/landing-react/src/hooks/useChatSession.ts
new file mode 100644
index 0000000..2ceeaae
--- /dev/null
+++ b/landing-react/src/hooks/useChatSession.ts
@@ -0,0 +1,19 @@
+import { useState } from 'react'
+
+const STORAGE_KEY = 'bk_chat_session_id'
+
+/**
+ * Gibt eine stabile Session-ID zurΓΌck.
+ * Beim ersten Aufruf wird eine neue UUID erzeugt und in localStorage gespeichert.
+ * Bei jedem weiteren Seitenaufruf wird dieselbe ID wiederverwendet.
+ */
+export function useChatSession(): string {
+ const [sessionId] = useState