fix(workbench): complete profile and channel flows
This commit is contained in:
@@ -50,7 +50,7 @@ export function ProjectAi({
|
||||
setSelectedExpertID(null)
|
||||
setExpertQuery('')
|
||||
setExpertCategory('all')
|
||||
setPrompt('')
|
||||
setPrompt(readPromptDraft(projectId))
|
||||
setLoading(true)
|
||||
setLoadingExperts(true)
|
||||
setCreating(false)
|
||||
@@ -91,6 +91,15 @@ export function ProjectAi({
|
||||
}
|
||||
}, [onListExperts, onListSessions, projectId])
|
||||
|
||||
useEffect(() => {
|
||||
try {
|
||||
if (prompt) localStorage.setItem(promptDraftKey(projectId), prompt)
|
||||
else localStorage.removeItem(promptDraftKey(projectId))
|
||||
} catch {
|
||||
// Draft persistence is best effort; an unavailable browser store must not block chat.
|
||||
}
|
||||
}, [projectId, prompt])
|
||||
|
||||
const selectedSession = useMemo(
|
||||
() => sessions.find((session) => session.id === selectedSessionID) ?? null,
|
||||
[selectedSessionID, sessions],
|
||||
@@ -345,3 +354,15 @@ function sessionTitle(message: string) {
|
||||
const characters = Array.from(firstLine)
|
||||
return characters.length > 36 ? `${characters.slice(0, 36).join('')}…` : firstLine
|
||||
}
|
||||
|
||||
function promptDraftKey(projectId: string) {
|
||||
return `senlin:ai:prompt:${projectId}`
|
||||
}
|
||||
|
||||
function readPromptDraft(projectId: string) {
|
||||
try {
|
||||
return localStorage.getItem(promptDraftKey(projectId)) ?? ''
|
||||
} catch {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user