TGViewer
Telegram github commits and releases Telegram github commits and releases @tgappsupdates · 4.47K subscribers
Post #21003 66
morethanwords/tweb/master • cc42eb7 • 1 files, +8/-7
Let the link preview be dismissed back to the reply plate

Quoting a message and then typing a link left the plate stuck on the web page:
neither Escape, nor the cross, nor "Remove preview" could get rid of it.

setTopInfo({type: 'webpage'}) only repaints the plate - helperType stays
'reply' - so onHelperCancel restores the previous helper by calling
helperFunc(). But willSendWebPage was dropped only AFTER that call, and
setTopInfo bails out early on `willSendWebPage && type === 'reply'`, so the
reply was never repainted: the plate kept showing a preview that was already
gone from the state. setCurrentHover got an undefined element along the way,
which also killed the hover menu holding "Remove preview" - hence "stuck".

Drop willSendWebPage before restoring the helper; lastUrl / noWebPage are
still restored afterwards, since setTopInfo's clearHelper resets them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

morethanwords/tweb/master • f30c242 • 3 files, +151/-26
Offer Reopen Topic in the chat actions plate

A closed forum topic gave a manager no way back: the input stayed writable
(canSendToPeer lets canManageTopic through) but reopening was buried in the
chat-list context menu. tdesktop puts a TopicReopenBar right in the bar stack
that already carries the peer-settings actions, so the same plate carries it
here.

dialogsStorage.canReopenTopic(peerId, threadId) composes the two halves of
tdesktop's state - the topic is closed, and we may manage it - into one sync
read, so the UI asks once instead of fetching the topic and then asking about
rights.

actions plate:
- the peer-settings actions and the reopen action are now independent halves
recombined by applyButtons(), which decides the visible list (reopen first)
and the hidden state synchronously - the peer-change path keeps committing
in one go, no flicker
- the close button renders only for the peer-settings half: tdesktop's reopen
bar has no cross, and hidePeerSettingsBar would be meaningless there.
Dismissing now clears only that half, so a still-closed topic keeps its
button
- a lone button with no close beside it spans the plate (is-single) instead of
sitting in the centred pill width that reserves an end slot for the cross
- state follows the topic live: dialogs_multiupdate carries the closed flag
(it arrives as a messageActionTopicEdit service message) and chat_update
covers rights changing under us, which is what tdesktop watches
adminRightsValue for
- gated to ChatType.Chat with a thread on a chat peer, so it can't surface in
the pinned/discussion/saved views

The topic check joins the existing acked getPeerSettings call, and it answers
from worker cache, so the chat-open batch stays uncached-round-trip free.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

#webk
  • 🫡 3
More from @tgappsupdates
  1. Sep 29, 2026morethanwords/tweb/master • 73ebb2f • 14 files, +187/-128 Keep reply bars and quote patter…
  2. Sep 29, 2026TelegramMessenger/tgcalls/development • 6d5ce90 • 1 files, +1/-0 Release zlib state when d…
  3. Sep 29, 2026Ajaxy/telegram-tt/master • 9e53c8e • 2 files, +50/-34 GramJS: Properly finish HTTP loops w…
  4. Sep 29, 2026Ajaxy/telegram-tt/master • 23c7c9f • 3 files, +4/-4 12.0.45 Ajaxy/telegram-tt/master • 27d…
  5. Sep 29, 2026telegramdesktop/tdesktop/msys64-ucrt64 • b933626 • 1 files, +7/-7 Update msys2 and use ucr…
  6. Sep 29, 2026telegramdesktop/tdesktop/msys64-ucrt64 • 6c83411 • 1 files, +8/-8 Update msys2 and use ucr…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →