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:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user