diff --git a/web/src/ui/composer/MessageComposer.css b/web/src/ui/composer/MessageComposer.css index f6e83b9..2032301 100644 --- a/web/src/ui/composer/MessageComposer.css +++ b/web/src/ui/composer/MessageComposer.css @@ -14,6 +14,11 @@ div.message-composer { text-wrap: auto !important; } + &.tombstoned { + min-height: unset; + padding: .5rem; + } + > div.input-area { display: flex; align-items: center; diff --git a/web/src/ui/composer/MessageComposer.tsx b/web/src/ui/composer/MessageComposer.tsx index abecb6d..75a5712 100644 --- a/web/src/ui/composer/MessageComposer.tsx +++ b/web/src/ui/composer/MessageComposer.tsx @@ -38,6 +38,7 @@ import type { import { PartialEmoji, emojiToMarkdown } from "@/util/emoji" import { isMobileDevice } from "@/util/ismobile.ts" import { escapeMarkdown } from "@/util/markdown.ts" +import { getServerName } from "@/util/validation.ts" import ClientContext from "../ClientContext.ts" import EmojiPicker from "../emojipicker/EmojiPicker.tsx" import GIFPicker from "../emojipicker/GIFPicker.tsx" @@ -592,25 +593,27 @@ const MessageComposer = () => { const hasReplacement = content.replacement_room?.startsWith("!") ?? false let link: JSX.Element | null = null if (hasReplacement) { + const via = getServerName(tombstoneEvent.sender) const handleNavigate = (e: React.MouseEvent) => { e.preventDefault() - if (content.replacement_room) { - window.mainScreenContext.setActiveRoom(content.replacement_room) - } + window.mainScreenContext.setActiveRoom(content.replacement_room, { + via: [via], + }) } - const via = tombstoneEvent.sender.split(":", 1)[1] - const url = `matrix:roomid/${content.replacement_room.slice(1)}?action=join&via=${via}` + const url = `matrix:roomid/${content.replacement_room.slice(1)}?via=${via}` link = - Join the new one here. + Join the new one here + } let body = content.body if (!body) { body = hasReplacement ? "This room has been replaced." : "This room has been shut down." } + if (!body.endsWith(".")) { + body += "." + } return
-

- {body} {link} -

+ {body} {link}
} return <>