diff --git a/desktop/src/components/layout/Sidebar.tsx b/desktop/src/components/layout/Sidebar.tsx index 29257c64..0939a8ad 100644 --- a/desktop/src/components/layout/Sidebar.tsx +++ b/desktop/src/components/layout/Sidebar.tsx @@ -1,5 +1,5 @@ import { useEffect, useState, useCallback, useMemo, useRef } from 'react' -import { Folder, FolderOpen, MoreHorizontal, Pin, PinOff, RefreshCw, RotateCcw, SquarePen, Trash2, Upload, X } from 'lucide-react' +import { Download, Folder, FolderOpen, MoreHorizontal, Pin, PinOff, RefreshCw, RotateCcw, SquarePen, Trash2, Upload, X } from 'lucide-react' import { useSessionStore } from '../../stores/sessionStore' import { useUIStore } from '../../stores/uiStore' import { useTranslation } from '../../i18n' @@ -631,6 +631,19 @@ export function Sidebar({ isMobile = false, onRequestClose }: SidebarProps) { setPendingBatchDeleteSessionIds(null) }, [exitBatchMode]) + const handleBatchExport = useCallback(async () => { + const ids = [...selectedSessionIds] + if (ids.length === 0) return + let successCount = 0 + for (const sessionId of ids) { + await handleExportSession(sessionId) + successCount++ + } + if (successCount > 0) { + handleExitBatchMode() + } + }, [handleExportSession, handleExitBatchMode, selectedSessionIds]) + const requestBatchDelete = useCallback((ids: string[]) => { if (ids.length === 0) return setPendingBatchDeleteSessionIds([...new Set(ids)]) @@ -920,7 +933,7 @@ export function Sidebar({ isMobile = false, onRequestClose }: SidebarProps) { close -
+
+