diff --git a/frontend/src/components/EmailRow.jsx b/frontend/src/components/EmailRow.jsx
index eb00ca8..868d0da 100644
--- a/frontend/src/components/EmailRow.jsx
+++ b/frontend/src/components/EmailRow.jsx
@@ -1,5 +1,6 @@
import { useState } from 'react';
import { EmailApi } from '../api/client.js';
+import { Checkbox } from './ui/checkbox.jsx';
const fmtDate = (iso) => {
const d = new Date(iso);
@@ -16,7 +17,7 @@ const fmtSize = (b) => {
return `${(b / 1048576).toFixed(1)} MB`;
};
-export default function EmailRow({ email: initial, onRemove, selected, onToggleSelect, focused }) {
+export default function EmailRow({ email: initial, onRemove, selected, onToggleSelect, focused, onOpen }) {
const [email, setEmail] = useState(initial);
const [acting, setActing] = useState(false);
@@ -69,12 +70,16 @@ export default function EmailRow({ email: initial, onRemove, selected, onToggleS
return (
onOpen ? onOpen(email) : openInGmail()}
+ title={onOpen ? 'Open' : 'Open in Gmail'}
>
{onToggleSelect && (
| e.stopPropagation()}>
- onToggleSelect(email.id)} />
+ onToggleSelect(email.id)}
+ aria-label={selected ? 'Deselect email' : 'Select email'}
+ />
|
)}
{email.isUnread && } |
@@ -83,7 +88,7 @@ export default function EmailRow({ email: initial, onRemove, selected, onToggleS
{email.subject || '(no subject)'}
- {email.snippet && — {email.snippet}}
+ {email.snippet && {email.snippet}}
|
{email.hasAttachments && 📎}
@@ -113,6 +118,11 @@ export default function EmailRow({ email: initial, onRemove, selected, onToggleS
disabled={email._unsubDone}
>{email._unsubDone ? '✓' : '✉✕'}
)}
+
|