fix: archive session

This commit is contained in:
weishu
2026-01-03 10:31:54 +08:00
parent d87250aff2
commit bc602ff5ea
7 changed files with 51 additions and 5 deletions
+19 -1
View File
@@ -22,6 +22,7 @@ function toModelMode(mode: ModelMode): ModelModeValue {
export function useSessionActions(api: ApiClient | null, sessionId: string | null): {
abortSession: () => Promise<void>
archiveSession: () => Promise<void>
switchSession: () => Promise<void>
setPermissionMode: (mode: PermissionMode) => Promise<void>
setModelMode: (mode: ModelMode) => Promise<void>
@@ -47,6 +48,16 @@ export function useSessionActions(api: ApiClient | null, sessionId: string | nul
onSuccess: () => void invalidateSession(),
})
const archiveMutation = useMutation({
mutationFn: async () => {
if (!api || !sessionId) {
throw new Error('Session unavailable')
}
await api.archiveSession(sessionId)
},
onSuccess: () => void invalidateSession(),
})
const switchMutation = useMutation({
mutationFn: async () => {
if (!api || !sessionId) {
@@ -104,11 +115,18 @@ export function useSessionActions(api: ApiClient | null, sessionId: string | nul
return {
abortSession: abortMutation.mutateAsync,
archiveSession: archiveMutation.mutateAsync,
switchSession: switchMutation.mutateAsync,
setPermissionMode: permissionMutation.mutateAsync,
setModelMode: modelMutation.mutateAsync,
renameSession: renameMutation.mutateAsync,
deleteSession: deleteMutation.mutateAsync,
isPending: abortMutation.isPending || switchMutation.isPending || permissionMutation.isPending || modelMutation.isPending || renameMutation.isPending || deleteMutation.isPending,
isPending: abortMutation.isPending
|| archiveMutation.isPending
|| switchMutation.isPending
|| permissionMutation.isPending
|| modelMutation.isPending
|| renameMutation.isPending
|| deleteMutation.isPending,
}
}