## Planning - **Milestone:** Phase 3 - **Priority:** P2 - **Size:** M - **Estimate:** 3 SP ## Goal **Share** content into Matrix and out of Decentra — distinct from in-app **Forward** (#105). ## Background — Forward vs Share (Element) - **Forward** (#105): existing Matrix event → another room. - **Share** (this issue): bring **external or link-based** content into Matrix, or share **out** via OS/browser: - Inbound: Element `/#/share?format=text&msg=…` composes a new message via room picker ([PR #29874](https://github.com/element-hq/element-web/pull/29874)). - Outbound: copy message permalink / matrix.to, Web Share API where available. - Room invite / "share room" links (QR, link copy) may overlap space invite UX — scope carefully. ## Scope (phased — ship incrementally) ### P1 — Copy link - [ ] Copy link to message (matrix.to or client permalink if supported). - [ ] Copy matrix.to user/room links where already used in onboarding. ### P2 — Web Share API (optional) - [ ] Share message text/link via `navigator.share` when supported. ### P3 — Inbound share route (optional) - [ ] `/share` route: accept `msg` (+ optional `format`), open room picker, send new message. ## Out of scope - Forward existing event to another room → #105. ## Branch `feature/message-share` ## Acceptance Criteria - [ ] At least P1 delivered: user can copy a shareable message link from UI. - [ ] Document which Element share flows are implemented vs deferred. - [ ] i18n EN/DE for share actions. ## Test Checklist - [ ] Copy link produces valid URL; manual open works where homeserver allows. - [ ] Optional: `/share` route with logged-in user sends to chosen room. ## Notes - Reuse room-picker pattern from #105 where possible. ## Epic Sub-issue of #3 (Phase 3).
Planning
Goal
Share content into Matrix and out of Decentra — distinct from in-app Forward (#105).
Background — Forward vs Share (Element)
/#/share?format=text&msg=…composes a new message via room picker (PR #29874).Scope (phased — ship incrementally)
P1 — Copy link
P2 — Web Share API (optional)
navigator.sharewhen supported.P3 — Inbound share route (optional)
/shareroute: acceptmsg(+ optionalformat), open room picker, send new message.Out of scope
Branch
feature/message-shareAcceptance Criteria
Test Checklist
/shareroute with logged-in user sends to chosen room.Notes
Epic
Sub-issue of #3 (Phase 3).