diff --git a/packages/ui/src/components/session/SessionSidebar.tsx b/packages/ui/src/components/session/SessionSidebar.tsx index d92659d8..acd52fad 100644 --- a/packages/ui/src/components/session/SessionSidebar.tsx +++ b/packages/ui/src/components/session/SessionSidebar.tsx @@ -827,6 +827,8 @@ const SessionSidebarComponent: React.FC = ({ const deleteSessions = useSessionUIStore((state) => state.deleteSessions); const archiveSession = useSessionUIStore((state) => state.archiveSession); const archiveSessions = useSessionUIStore((state) => state.archiveSessions); + const unarchiveSession = useSessionUIStore((state) => state.unarchiveSession); + const unarchiveSessions = useSessionUIStore((state) => state.unarchiveSessions); const { copiedSessionId, @@ -839,6 +841,7 @@ const SessionSidebarComponent: React.FC = ({ handleCopySessionId, handleUnshareSession, handleDeleteSession, + handleRestoreSession, confirmDeleteSession, } = useSessionActions({ mobileVariant, @@ -858,6 +861,7 @@ const SessionSidebarComponent: React.FC = ({ deleteSessions, archiveSession, archiveSessions, + unarchiveSession, childrenMap, showDeletionDialog, setDeleteSessionConfirm, @@ -916,6 +920,7 @@ const SessionSidebarComponent: React.FC = ({ const stableHandleCopySessionId = useStableRenderCallback(handleCopySessionId); const stableHandleUnshareSession = useStableRenderCallback(handleUnshareSession); const stableHandleDeleteSession = useStableRenderCallback(handleDeleteSession); + const stableHandleRestoreSession = useStableRenderCallback(handleRestoreSession); const stableCreateFolderAndStartRename = useStableRenderCallback(createFolderAndStartRename); const showMoreGroupSessions = React.useCallback((groupId: string, currentVisibleCount: number) => { @@ -1579,6 +1584,7 @@ const SessionSidebarComponent: React.FC = ({ createFolderAndStartRename={stableCreateFolderAndStartRename} openContextPanelTab={openContextPanelTab} handleDeleteSession={stableHandleDeleteSession} + handleRestoreSession={stableHandleRestoreSession} mobileVariant={mobileVariant} alwaysShowActions={alwaysShowSidebarActions} renderSessionNode={renderSessionNode} @@ -1752,6 +1758,7 @@ const SessionSidebarComponent: React.FC = ({ handleBulkCreateFolderAndMove, handleBulkRemoveFromFolder, handleBulkDelete, + handleBulkRestore, confirmBulkDelete, } = useSidebarBulkActions({ isInlineEditing, @@ -1762,6 +1769,7 @@ const SessionSidebarComponent: React.FC = ({ removeSessionsFromFolders, createFolderAndStartRename, archiveSessions, + unarchiveSessions, deleteSessions, setBulkDeleteConfirm, }); @@ -1909,6 +1917,7 @@ const SessionSidebarComponent: React.FC = ({ onCreateFolderAndMove={handleBulkCreateFolderAndMove} onRemoveFromFolder={handleBulkRemoveFromFolder} canRemoveFromFolder={bulkCanRemoveFromFolder} + onRestore={handleBulkRestore} onDelete={handleBulkDelete} onDone={handleExitSelectionMode} /> diff --git a/packages/ui/src/components/session/sidebar/BulkActionBar.tsx b/packages/ui/src/components/session/sidebar/BulkActionBar.tsx index f42e3b82..d58e7034 100644 --- a/packages/ui/src/components/session/sidebar/BulkActionBar.tsx +++ b/packages/ui/src/components/session/sidebar/BulkActionBar.tsx @@ -21,6 +21,7 @@ type Props = { onCreateFolderAndMove: () => void; onRemoveFromFolder: () => void; canRemoveFromFolder: boolean; + onRestore: () => void; onDelete: () => void; onDone: () => void; }; @@ -34,6 +35,7 @@ export const BulkActionBar: React.FC = ({ onCreateFolderAndMove, onRemoveFromFolder, canRemoveFromFolder, + onRestore, onDelete, onDone, }) => { @@ -98,6 +100,22 @@ export const BulkActionBar: React.FC = ({ ) : null} + {archivedBucket ? ( + + + + +

{t('sessions.sidebar.bulkActions.restore')}

+
+ ) : null} +