feat: inline unsubscribe button on email rows

- ✉✕ button appears on rows where the email has a List-Unsubscribe header
- One-click POST / HTTP GET executed automatically; shows ✓ on success
- mailto: targets open the user mail client (we never auto-send email)
- POST /email/{id}/unsubscribe: detects sender, then processes — UserId scoped
- EmailSummaryDto gains IsStarred, HasListUnsubscribe, SupportsOneClick fields
- Both SearchService and CleanupService updated to populate new DTO fields

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
cesnimda
2026-06-30 20:22:28 +02:00
parent 80c2167b89
commit 2c9b402b08
7 changed files with 72 additions and 4 deletions
+1
View File
@@ -105,6 +105,7 @@ export const EmailApi = {
unstar: (id) => api.post(`/email/${id}/unstar`),
trash: (id) => api.post(`/email/${id}/trash`),
untrash: (id) => api.post(`/email/${id}/untrash`),
unsubscribe:(id) => api.post(`/email/${id}/unsubscribe`).then((r) => r.data),
};
export const ExportApi = {