add group attachments and sidebar toggle

This commit is contained in:
2026-10-01 08:25:52 +07:00
parent 61aa7c4a70
commit 857795a92e
9 changed files with 467 additions and 54 deletions
+11 -5
View File
@@ -591,11 +591,17 @@ before they reach the consumer, so a replay cannot double-hydrate.
from a result. The panel has a read-only details dialog, a header `Manage` menu
(edit metadata, invite link, members and roles) shown to admins, a message menu
with reactions and admin pin/delete, a pins strip, a fork banner, and leave.
Opening a group also fills the sidebar with the group itself — avatar, banner
and the collapsible `Admins`/`Members` lists — with a back button in the title
bar, the same shape the sidebar used for a community before the migration.
What a given account may actually do is the relay's call; the client shows the
refusal verbatim.
Opening a group also fills the sidebar with the group itself — banner (the
`39000` `banner` tag, falling back to its `picture`), avatar and name, and the
collapsible `Admins`/`Members` lists. Members are clickable and open a profile
dialog. The panel header shows the group's `about` instead of its name, plus a
button that shows or hides the sidebar's group information. What a given account
may actually do is the relay's call; the client shows the refusal verbatim.
- **The composer uploads to the configured blossom server.** `GroupPanel`'s
paperclip uploads one file at a time, unencrypted, and appends its URL to the
message on send — the same plain-attachment path the chat composer uses when a
message is already being typed. The server comes from
`AppSettings::get_file_server`; the upload itself is `state::upload`.
- **Remote deletions are not folded in.** A `9005` from another admin never reaches the
standing REQ, so only our own accepted deletes evict the row.
- **The LiveKit response shape is a guess.** The NIP names no fields, so