Skip to content

feat(message): show grouped-message timestamps and clickable edit history - #1969

Draft
Th-Underscore wants to merge 21 commits into
SableClient:devfrom
Th-Underscore:feat/message-edit-timestamps
Draft

feat(message): show grouped-message timestamps and clickable edit history#1969
Th-Underscore wants to merge 21 commits into
SableClient:devfrom
Th-Underscore:feat/message-edit-timestamps

Conversation

@Th-Underscore

Copy link
Copy Markdown

Note: #1942 adds an always-on timestamps setting; this PR takes a complementary hover-only approach and will be rebased on top of dev after that merges.

Description

Two related timeline polish items:

  • Hover timestamps on grouped messages. Consecutive messages from the same sender are collapsed into one block; hovering the block now shows the send time of each message as a small footnote in the left gutter (timeHourMinute, matching the existing "reacted with" underscript styling). The most recent message already shows its time - this surfaces the hidden ones.
  • Interactive "(edited)" indicator. Hovering (edited) shows a tooltip with the edit timestamp(s) (newest last, via getEventEdits). Clicking it now opens the message's version history - the exact same modal as right-click -> "Version History". Keyboard accessible (Enter/Space); propagation is stopped so surrounding message handlers don't fire.

Purely cosmetic interaction layer; no data changes. Related to #1942 (which shows timestamps in the message header) - this takes a lighter-weight approach that only surfaces times on hover, keeping the timeline uncluttered.

Tested on the desktop app, Ubuntu 24.04.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation - .changeset
  • My changes generate no new warnings

AI disclosure:

  • Partially AI assisted (clarify which code was AI assisted and briefly explain what it does).
  • Fully AI generated (explain what all the generated code does in moderate detail).

I designed and directed the features and tested them in the GUI; the code itself was AI-generated.

The timestamp footnote reuses the reaction underscript's typography scale and renders from the same collapse-grouping pass the timeline already computes. Edit timestamps thread through an editTimestamps prop from RenderMessageContent into the text renderers so MessageEditedContent can build tooltip strings. Click-to-history reuses the context menu's setModal({ type: ModalType.EditHistory, ... }) call verbatim rather than reimplementing it, gated on room && mEvent being present so non-timeline render sites stay inert.

@Th-Underscore
Th-Underscore force-pushed the feat/message-edit-timestamps branch from e432aed to 70e2ea3 Compare August 27, 2026 03:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants