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
-
+
+