state._selectedUids holds whatever the server returns for em.uid (string or number); the bulk action looped Array.from(...) and did strict === against state._libEmails entries. When the types disagreed, the find() returned undefined, the in-memory is_answered flip never happened, and the post-loop _renderGrid() painted the cards back into their original not-done state — looking like 'mark done' did nothing even though the server-side call had succeeded. - Compare via String() on both sides so the in-memory state actually flips. - Surface HTTP failure from mark-answered/mark-read so the existing failedReadSync toast can fire if the calls don't go through. |
||
|---|---|---|
| .. | ||
| fonts | ||
| js | ||
| lib | ||
| app.js | ||
| index.html | ||
| login.html | ||
| manifest.json | ||
| style.css | ||
| sw.js | ||