Telegram github commits and releases
4.44K subscribers
601 files
21K links
Broadcast from the most important Telegram clients' repositories
Download Telegram
morethanwords/tweb/master • 57c9af1 • 17 files, +79/-48
refactor: read app settings via useAppSettings store, drop rootScope.settings

Migrate every settings access off the `rootScope.settings` getter onto the
reactive `useAppSettings()` store, making the Solid store the single source of
truth (the old getter could read stale values — e.g. the sent-message-sound
toggle).

- Remove the `rootScope.settings` field and the `Object.defineProperty` shim
in apiManagerProxy that aliased it to `unwrap(appSettings)`.
- Consumers now read via `const [appSettings] = useAppSettings()`
(animationIntersector, dialogsContextMenu, liteMode, themeController,
appImManager, isSendShortcutPressed, sidebarLeft, background tabs, …).
- Writers persist with `unwrap(appSettings)`; bootstrap uses
`setAppSettingsSilent()`.
- Expose `useAppSettings` on `MOUNT_CLASS_TO` for debugging.

Also: folders-sidebar active badge uses primary color / white text, and
slider title flexes to fill with fixed text-super + emoji baseline alignment.

morethanwords/tweb/master • e05c7bf • 3 files, +71/-14
refactor: chat scrolls edge-to-edge; fix right-sidebar peek past iOS safe-area

Chat scroll area:
- The .bubbles scroll container now spans the full middle zone — from the left
card's edge to the page edge (or the docked right column's inner edge) — so the
chat scrolls edge-to-edge and the scrollbar sits at the very edge. Was capped to
100% − right-column with a -.5rem inset. Messages stay centred at --chat-width
via the inner's max-width + margin:auto.
- inset-inline is now a symmetric value mirroring #column-center's translateX
centring formulas, countering that shift to reach the real edges: the page edge
when the right column is closed/floating, the docked right column's inner edge
when it's shown. Drop the width: calc(100% − --right-column-width) override and
expand the centring comments to match.

iOS safe-area:
- Add a --safe-area-inset-inline-end var (0px no-env() fallback; in the @supports
block min(16px, env(safe-area-inset-right)), mirrored to safe-area-inset-left
on :root.is-rtl). Set on :root to match --reflect's specificity; value goes
through #{} interpolation so Sass doesn't emit the min() literally.
- Fold it into the closed right-sidebar transform so the card + box-shadow slide
fully past the real screen edge and no longer peek through the safe-area strip
on landscape iPhones (0 on desktop, so the desktop offset is unchanged).

morethanwords/tweb/master • 9a4c1af • 177 files, +304/-304
Build

#webk
🫡2👍1
morethanwords/tweb/master • e9ea7d0 • 1 files, +4/-0
Ignore clicks on pinned gifts when profile avatar is expanded

The pinned-gifts layer paints on top of the avatar and was only hidden
via opacity:0 when the header is expanded, which leaves it catching
clicks meant for the avatar underneath. Make it pointer-events:none in
the expanded state so clicks fall through to the avatar handler.

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

morethanwords/tweb/master • 0b2e4a5 • 1 files, +9/-2
Fix player menus invisible in fullscreen

Playback-rate / quality / live menus open via ButtonMenuToggle, which
portals the menu to document.body. While the player wrapper is the
fullscreen element the browser paints only its subtree (top layer), so a
menu in document.body never shows. Mount the menu inside the fullscreen
element when the trigger lives there; falls back to the overlay root
otherwise.

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

morethanwords/tweb/master • bc0fe18 • 3 files, +27/-19
Chat preview: apply per-chat theme to outgoing bubbles + fix bubble width

A preview Chat sets isPreview, so Chat.handleBackgrounds() short-circuits and
applyContainerTheme() never runs — the per-chat theme's outgoing-bubble vars
(--message-out-*) were missing on the container, so outgoing bubbles fell back
to the global :root palette ("theme only partially applied"). Apply the
resolved theme to the preview's chat container, re-firing on day/night toggle,
mirroring Chat._handleBackgrounds.

Also scope the bubbles scroll-area negative inset-inline rule to #column-center
so it no longer widens the preview popup's bubbles, and drop the now-redundant
inset-inline: 0 override in _chatPreview.scss.

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

morethanwords/tweb/master • 2010d64 • 3 files, +56/-0
Close global search and left-sidebar tabs when switching folders

Switching a chat folder now dismisses an open global search and closes any
stacked left-sidebar tabs, mirroring closeEverythingInside. Tabs close the
natural way (as if via the back arrow), so a tab that needs confirmation
still asks; if the user declines, the folder switch is cancelled. Both folder
UIs (the horizontal tabs and the vertical folders sidebar) funnel through
selectFolderByIndex, so a single hook covers both.

Adds SidebarSlider.closeAllTabsNaturally (close tabs top-down honoring each
tab's isConfirmationNeededOnClose) and AppSidebarLeft.closeEverythingInsideNaturally.

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

#webk
🫡3