feat: persist chat session across page reloads

Session ID saved to localStorage (schaeffler-chat-session).
On mount, restores the last session and loads messages from DB.
"New Chat" clears the stored session.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-15 20:06:27 +01:00
parent 0dfadbfd56
commit 6f7c001376
+12 -1
View File
@@ -20,9 +20,20 @@ interface ChatPanelProps {
export default function ChatPanel({ open, onClose, contextType, contextId }: ChatPanelProps) {
const [messages, setMessages] = useState<ChatMessage[]>([])
const [sessionId, setSessionId] = useState<string | undefined>()
const [sessionId, setSessionId] = useState<string | undefined>(() => {
// Restore last session from localStorage
try { return localStorage.getItem('schaeffler-chat-session') || undefined } catch { return undefined }
})
const [input, setInput] = useState('')
const [showSessions, setShowSessions] = useState(false)
// Persist sessionId to localStorage
useEffect(() => {
try {
if (sessionId) localStorage.setItem('schaeffler-chat-session', sessionId)
else localStorage.removeItem('schaeffler-chat-session')
} catch { /* ignore */ }
}, [sessionId])
const messagesEndRef = useRef<HTMLDivElement>(null)
const inputRef = useRef<HTMLInputElement>(null)
const queryClient = useQueryClient()