feat: bulk actions for email lists
Select multiple rows (checkbox per row) in FolderView, SearchResults, and the Senders email panel. A toolbar appears with mark read/unread, star, archive, and trash, applied to the whole selection via CleanupService.ExecuteAsync (already scoped to UserId). Shared via useSelection hook and BulkToolbar component to avoid duplicating selection state across the three list views. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -51,6 +51,21 @@ export const CleanupApi = {
|
||||
execute: (req) => api.post('/cleanup/execute', req).then((r) => r.data)
|
||||
};
|
||||
|
||||
// Bulk actions over an explicit set of email IDs (selection-driven, always confirmed —
|
||||
// the user already opted in by selecting rows and clicking the action).
|
||||
// Numeric values must match CleanupActionType in Domain/Enums/Enums.cs (no string
|
||||
// enum converter is configured on the API, so plain numbers are required here).
|
||||
const CLEANUP_ACTION = { Archive: 0, Trash: 1, MarkRead: 5, MarkUnread: 6, Star: 7, Unstar: 8 };
|
||||
|
||||
export const BulkApi = {
|
||||
markRead: (ids) => CleanupApi.execute({ action: CLEANUP_ACTION.MarkRead, emailIds: ids, confirmed: true }),
|
||||
markUnread: (ids) => CleanupApi.execute({ action: CLEANUP_ACTION.MarkUnread, emailIds: ids, confirmed: true }),
|
||||
star: (ids) => CleanupApi.execute({ action: CLEANUP_ACTION.Star, emailIds: ids, confirmed: true }),
|
||||
unstar: (ids) => CleanupApi.execute({ action: CLEANUP_ACTION.Unstar, emailIds: ids, confirmed: true }),
|
||||
archive: (ids) => CleanupApi.execute({ action: CLEANUP_ACTION.Archive, emailIds: ids, confirmed: true }),
|
||||
trash: (ids) => CleanupApi.execute({ action: CLEANUP_ACTION.Trash, emailIds: ids, confirmed: true }),
|
||||
};
|
||||
|
||||
export const UnsubscribeApi = {
|
||||
detect: () => api.post('/unsubscribe/detect'),
|
||||
safeList: () => api.get('/unsubscribe/safe-list').then((r) => r.data),
|
||||
|
||||
Reference in New Issue
Block a user