A pending send dims its own upload meter, and a failed send can't be discarded #272

Closed
opened 2026-10-07 20:42:54 -04:00 by Salastil · 1 comment
Owner
  • Pending fades the whole row to 0.55 opacity (app.css:1352-1354). .message-row.pending .upload-meter { opacity: 1 } (app.css:1417-1419) cannot undo a parent's opacity, so the upload progress ring is dimmed too, contrary to its comment.
  • A failed message turns its body pink (app.css:1356-1358) and offers "Failed to send — retry" (MessageRow.tsx:1017-1026), but there is no way to delete/discard it - no such method in state/store.ts. It stays until the app restarts.

Discord greys only the text of a pending message and offers Retry / Delete on a failed one.

Fix: dim only the text/body of pending rows; add store.discardFailed(clientId) and a Delete action beside Retry.

Part of the v1.0 UI pass.

- Pending fades the whole row to 0.55 opacity (app.css:1352-1354). `.message-row.pending .upload-meter { opacity: 1 }` (app.css:1417-1419) cannot undo a parent's opacity, so the upload progress ring is dimmed too, contrary to its comment. - A failed message turns its body pink (app.css:1356-1358) and offers "Failed to send — retry" (MessageRow.tsx:1017-1026), but there is no way to delete/discard it - no such method in `state/store.ts`. It stays until the app restarts. Discord greys only the text of a pending message and offers Retry / Delete on a failed one. **Fix:** dim only the text/body of pending rows; add `store.discardFailed(clientId)` and a Delete action beside Retry. _Part of the v1.0 UI pass._
Salastil added this to the v1.0 milestone 2026-10-07 20:42:54 -04:00
Salastil added the bug label 2026-10-07 20:42:54 -04:00
Author
Owner

Finished: 6a82c32.

A message that failed to send, after this change (before, there was only the retry link, and no way to get rid of the line):

failed send

  • Delete sits beside Failed to send - retry and removes the line locally; nothing is sent (store.discardFailed). Checked in the test copy by sending to a conversation that does not exist: the row failed, the button was there, and clicking it removed the row and its text.
  • A pending message dims only what was said (body, byline, media, reply quote), not the whole row, so the upload progress ring is no longer the faintest thing on it - its own opacity: 1 rule could never undo the parent's.
Finished: [6a82c32](https://git.salastil.com/Salastil/moho/commit/6a82c3261c4c925e17f4a1f57999c96e7ab91c3e). A message that failed to send, after this change (before, there was only the retry link, and no way to get rid of the line): ![failed send](https://git.salastil.com/attachments/e3352e41-84cb-425b-aae3-03db964d8949) - **Delete** sits beside *Failed to send - retry* and removes the line locally; nothing is sent (`store.discardFailed`). Checked in the test copy by sending to a conversation that does not exist: the row failed, the button was there, and clicking it removed the row and its text. - **A pending message dims only what was said** (body, byline, media, reply quote), not the whole row, so the upload progress ring is no longer the faintest thing on it - its own `opacity: 1` rule could never undo the parent's.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#272