Skip to content

Chat sample: UI polish (uploads, emojis, typing, read-receipts) #103

@pathosDev

Description

@pathosDev

Followup from the chat sample (`examples/chat/`). A grab-bag of
nice-to-have client-facing features that aren't in v1.

Items

  • File uploads: object-storage-backed. Frontend posts a binary
    WS frame; server stores in `FilesystemObjectStorageBackend` (or
    S3) and broadcasts a `{ type: 'attachment', url, filename }`
    message.
  • Emojis: client-side picker (e.g. `emoji-mart`); server is
    agnostic — text payload carries the unicode char.
  • Typing indicators: ephemeral `{ type: 'typing', room }` →
    broadcast `{ type: 'user-typing', room, username }`; auto-times-out
    after 3 s. Not persisted.
  • Read receipts: track per-user "last seen sequence" in DD-LWWMap
    (`read-up-to.` → roomName → seq). UI shows ✓✓ next
    to seen messages.

These can land as separate sub-PRs once any of them is needed.

Source: `examples/chat/` README → "Out of scope" section.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority: lowNice-to-have / niche / demand-driven

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions