RocketChat / RocketChat/EmbeddedChat
[FEATURE] feat: Auto-save message drafts per room
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 165
- Forks
- 381
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 1
Description
As an EmbeddedChat developer
I need to:
Have my in-progress message automatically saved as a draft when I navigate away from a room or close the chat, and have it restored when I return to that room.
So That:
I never lose text I was composing mid-thought, and I can confidently switch between rooms without finishing every message before moving on.
Acceptance Criteria
- Unsent text in the message composer is automatically persisted as a draft for the active room whenever the user navigates away, switches rooms, or closes the widget.
- When the user returns to a room that has a saved draft, the composer is pre-populated with the draft text.
- Drafts survive a full page reload.
- A visible 'Draft' label appears in the composer (or near the room entry in any room list) when a draft exists for that room, so the user knows at a glance.
- Sending a message clears the draft for that room.
- The user can manually discard a draft (e.g. clearing the composer dismisses it).
- Draft saving respects the currently configured room/channel so drafts are never mixed across rooms.
- The feature works correctly in both single-room and multi-room (sidebar) configurations.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or tests are named in the issue. Start by locating the message composer and room navigation, switching, and close entry points, then inspect any existing client-side persistence. Done means drafts remain separated by room across navigation and reload, appear visibly, restore correctly, and clear on send or manual discard.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, react
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100