feat: show per-relay publish status on outgoing messages #290
Reference in New Issue
Block a user
Delete Branch "userAdityaa/flotilla:feat/per-relay-message-delivery-status"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Outgoing messages in DMs and rooms now show a delivery status row (sending, delivered, partial, failed) with colored icons and neutral text. Tapping a completed status opens a per-relay breakdown with errors and per-relay retry. Desktop chat views get bottom padding so the last message and status row clear the compose bar.
Closes #56.
Screenshots
This is a regression of a lot of behavior that is subtle but deliberate. Biggest thing is that there should be no success messages — only pending and failure. So the restructure of ThunkStatus etc is unnecessary, this issue is pretty much just about changing how failure renders to show more information.
d2f2263676to39a58910f8Yeah, I felt the same about not including all of those. However, from the discussion here, my understanding was that we had agreed to show those status messages, so I went ahead and implemented them. I've reverted those changes now, and currently only the pending and failed states are shown.
Makes sense, I didn't even notice that change in the mockup.
@@ -125,6 +122,9 @@<Content showEntire {event} /></div></TapTarget>{#if isOwn && thunk}This check is redundant, there will never be a thunk for an event not by the current author.
@@ -128,3 +128,2 @@<RoomItemContent {url} event={$innerEvent ?? event} />{#if thunk}<ThunkFailure showToastOnRetry {thunk} class="mt-2 text-sm" />{#if event.pubkey === $pubkey && thunk}This check is redundant, there will never be a thunk for an event not by the current author.
@@ -16,0 +31,4 @@const successUrls = $derived(getThunkUrlsWithStatus(PublishStatus.Success, $thunk))const failedUrls = $derived([...getFailedThunkUrls($thunk),...getThunkUrlsWithStatus(PublishStatus.Aborted, $thunk),This isn't necessary, if a thunk is aborted the event is removed from the repo and will not appear.
@@ -25,0 +70,4 @@return}}Why inline this instead of pass retry through?
39a58910f8tofb3d9f3923@@ -471,3 +471,3 @@onscroll={onScroll}class={cx("flex-col-reverse pb-0! pt-4","flex-col-reverse pb-0! pt-4 md:pb-8!",This breaks on small screens
@@ -319,3 +319,3 @@</SpaceBar><PageContent bind:element onscroll={onScroll} class="flex flex-col-reverse pt-4 pb-0!"><PageContent bind:element onscroll={onScroll} class="flex flex-col-reverse pt-4 pb-0! md:pb-8!">This breaks on small screens
fb3d9f3923tocaf3f620e4@@ -67,4 +67,1 @@{#if thunk}<ThunkFailure showToastOnRetry {thunk} class="mt-1" />{/if}I think moving this may be causing the problem in the screenshot below.
Looks good, just one more thing
@@ -128,3 +128,3 @@<RoomItemContent {url} event={$innerEvent ?? event} />{#if thunk}<ThunkFailure showToastOnRetry {thunk} class="mt-2 text-sm" /><ThunkFailure showToastOnRetry {thunk} class="mt-1 flex justify-end" />Or maybe this
caf3f620e4to7365fb7a357365fb7a35to6255dc2d396255dc2d39to32cf909d45