From d82240b06cf17d4b82aae54d4a304830341affb7 Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Mon, 1 Jun 2026 01:16:15 +0200 Subject: [PATCH] Redesign: Follow Up (#6966) --- src/components/common/PrivateChatInfo.tsx | 6 ++-- src/components/gili/primitives/Switch.tsx | 1 + src/components/left/settings/Settings.scss | 30 +++++++++---------- .../left/settings/SettingsAcceptedGift.tsx | 18 ++++------- .../left/settings/SettingsActiveSession.tsx | 8 ++--- .../left/settings/SettingsActiveSessions.tsx | 6 ++-- .../left/settings/SettingsActiveWebsites.tsx | 6 ++-- .../left/settings/SettingsPasskeys.tsx | 6 ++-- .../settings/SettingsPrivacyVisibility.tsx | 7 ++--- .../middle/composer/MentionTooltip.scss | 2 +- .../middle/composer/MentionTooltip.tsx | 1 + src/components/right/RightColumn.tsx | 10 ++++++- .../right/management/ManageChannel.tsx | 7 ++--- .../right/management/ManageGroup.tsx | 8 ++--- .../right/management/ManageGroupMembers.tsx | 4 +-- .../management/ManageGroupPermissions.tsx | 7 ++--- .../right/management/Management.scss | 5 ++-- src/components/ui/ListItem.scss | 3 +- 18 files changed, 69 insertions(+), 66 deletions(-) diff --git a/src/components/common/PrivateChatInfo.tsx b/src/components/common/PrivateChatInfo.tsx index fd0b4ae2c..9d3bb27f8 100644 --- a/src/components/common/PrivateChatInfo.tsx +++ b/src/components/common/PrivateChatInfo.tsx @@ -59,6 +59,7 @@ type BaseOwnProps = { noVerified?: boolean; emojiStatusSize?: number; noStatusOrTyping?: boolean; + noUserStatus?: boolean; noRtl?: boolean; chatMemberOriginId?: string; chatMember?: ApiChatMember; @@ -109,6 +110,7 @@ const PrivateChatInfo = ({ withUpdatingStatus, emojiStatusSize, noStatusOrTyping, + noUserStatus, noEmojiStatus, noFake, noVerified, @@ -231,10 +233,10 @@ const PrivateChatInfo = ({ return undefined; } - const translatedStatus = getUserStatus(oldLang, user, userStatus); + const translatedStatus = noUserStatus ? undefined : getUserStatus(oldLang, user, userStatus); const mainUserNameClassName = buildClassName('handle', translatedStatus && 'withStatus'); return ( - + {mainUsername && {mainUsername}} {translatedStatus && {translatedStatus}} diff --git a/src/components/gili/primitives/Switch.tsx b/src/components/gili/primitives/Switch.tsx index 9610e9c82..c8d28b086 100644 --- a/src/components/gili/primitives/Switch.tsx +++ b/src/components/gili/primitives/Switch.tsx @@ -54,6 +54,7 @@ const Switch = ({ return ( {lang('PrivacyGiftLimitedEdition')} - {lang('PrivacyGiftUnlimited')} - {lang('PrivacyGiftUnique')} - {lang('PrivacyGiftPremiumSubscription')} - diff --git a/src/components/left/settings/SettingsActiveSession.tsx b/src/components/left/settings/SettingsActiveSession.tsx index fa5a40932..7cb4a9b9f 100644 --- a/src/components/left/settings/SettingsActiveSession.tsx +++ b/src/components/left/settings/SettingsActiveSession.tsx @@ -11,10 +11,10 @@ import getSessionIcon from './helpers/getSessionIcon'; import useCurrentOrPrev from '../../../hooks/useCurrentOrPrev'; import useLang from '../../../hooks/useLang'; +import Switch from '../../gili/primitives/Switch'; import Button from '../../ui/Button'; import ListItem from '../../ui/ListItem'; import Modal from '../../ui/Modal'; -import Switcher from '../../ui/Switcher'; import styles from './SettingsActiveSession.module.scss'; @@ -128,17 +128,15 @@ const SettingsActiveSession: FC = ({ {lang('SessionPreviewAcceptSecret')} - {lang('SessionPreviewAcceptCalls')} - diff --git a/src/components/left/settings/SettingsActiveSessions.tsx b/src/components/left/settings/SettingsActiveSessions.tsx index 86bf103ae..7c55a7b30 100644 --- a/src/components/left/settings/SettingsActiveSessions.tsx +++ b/src/components/left/settings/SettingsActiveSessions.tsx @@ -239,8 +239,10 @@ const SettingsActiveSessions: FC = ({ onClick={() => { handleOpenSessionModal(session.hash); }} >
- {formatPastTimeShort(oldLang, session.dateActive * 1000)} - {session.deviceModel} + + {session.deviceModel} + {formatPastTimeShort(oldLang, session.dateActive * 1000)} + {session.appName} {' '} diff --git a/src/components/left/settings/SettingsActiveWebsites.tsx b/src/components/left/settings/SettingsActiveWebsites.tsx index c42033f3d..8c9443bd2 100644 --- a/src/components/left/settings/SettingsActiveWebsites.tsx +++ b/src/components/left/settings/SettingsActiveWebsites.tsx @@ -114,8 +114,10 @@ const SettingsActiveWebsites: FC = ({ >
- {formatPastTimeShort(lang, session.dateActive * 1000)} - {bot && } +
+ {bot && } + {formatPastTimeShort(lang, session.dateActive * 1000)} +
{session.domain} , diff --git a/src/components/left/settings/SettingsPasskeys.tsx b/src/components/left/settings/SettingsPasskeys.tsx index 7ec59af2c..dc22971d4 100644 --- a/src/components/left/settings/SettingsPasskeys.tsx +++ b/src/components/left/settings/SettingsPasskeys.tsx @@ -112,8 +112,10 @@ const SettingsPasskeys = ({ )} >
- {formatDate(lang, secondsToDate(date))} - {name || lang('SettingsPasskeyFallbackTitle')} + + {name || lang('SettingsPasskeyFallbackTitle')} + {formatDate(lang, secondsToDate(date))} + {Boolean(lastUsageDate) && ( {lang('SettingsPasskeyUsedAt', { diff --git a/src/components/left/settings/SettingsPrivacyVisibility.tsx b/src/components/left/settings/SettingsPrivacyVisibility.tsx index d8ff8516b..c8df01021 100644 --- a/src/components/left/settings/SettingsPrivacyVisibility.tsx +++ b/src/components/left/settings/SettingsPrivacyVisibility.tsx @@ -15,9 +15,9 @@ import useOldLang from '../../../hooks/useOldLang'; import Icon from '../../common/icons/Icon'; import Island, { IslandDescription, IslandTitle } from '../../gili/layout/Island'; +import Switch from '../../gili/primitives/Switch'; import ListItem from '../../ui/ListItem'; import RadioGroup from '../../ui/RadioGroup'; -import Switcher from '../../ui/Switcher'; import PremiumStatusItem from './PremiumStatusItem'; import PrivacyLockedOption from './PrivacyLockedOption'; import SettingsAcceptedGift from './SettingsAcceptedGift'; @@ -100,11 +100,10 @@ const SettingsPrivacyVisibility: FC = ({ {lang('PrivacyDisplayGiftsButton')} - diff --git a/src/components/middle/composer/MentionTooltip.scss b/src/components/middle/composer/MentionTooltip.scss index cc1d01316..429cab0f3 100644 --- a/src/components/middle/composer/MentionTooltip.scss +++ b/src/components/middle/composer/MentionTooltip.scss @@ -2,7 +2,7 @@ z-index: -1; flex-direction: column; width: calc(100% - 4rem); - max-width: 20rem; + max-width: 25rem; .ListItem.chat-item-clickable { margin: 0; diff --git a/src/components/middle/composer/MentionTooltip.tsx b/src/components/middle/composer/MentionTooltip.tsx index 6cc4869dd..3c8cd02f4 100644 --- a/src/components/middle/composer/MentionTooltip.tsx +++ b/src/components/middle/composer/MentionTooltip.tsx @@ -107,6 +107,7 @@ const MentionTooltip: FC = ({ userId={id} avatarSize="small" withUsername + noUserStatus /> ))} diff --git a/src/components/right/RightColumn.tsx b/src/components/right/RightColumn.tsx index 77eba0632..57fda7f4e 100644 --- a/src/components/right/RightColumn.tsx +++ b/src/components/right/RightColumn.tsx @@ -164,6 +164,12 @@ const RightColumn: FC = ({ }); const [isAnimating, startAnimating, stopAnimating] = useFlag(); + const wasOpenRef = useRef(false); + const shouldSkipOpenTransition = isOpen && !wasOpenRef.current; + + useLayoutEffect(() => { + wasOpenRef.current = isOpen; + }, [isOpen]); useLayoutEffect(() => { const elements = containerRef.current?.querySelectorAll( @@ -437,7 +443,9 @@ const RightColumn: FC = ({ /> = ({ onClick={handleAutoTranslationChange} > {lang('AutomaticTranslation')} - )} diff --git a/src/components/right/management/ManageGroup.tsx b/src/components/right/management/ManageGroup.tsx index 778e8a027..cbc976e72 100644 --- a/src/components/right/management/ManageGroup.tsx +++ b/src/components/right/management/ManageGroup.tsx @@ -29,13 +29,13 @@ import useMedia from '../../../hooks/useMedia'; import useOldLang from '../../../hooks/useOldLang'; import Island, { IslandDescription } from '../../gili/layout/Island'; +import Switch from '../../gili/primitives/Switch'; import AvatarEditable from '../../ui/AvatarEditable'; import Checkbox from '../../ui/Checkbox'; import ConfirmDialog from '../../ui/ConfirmDialog'; import FloatingActionButton from '../../ui/FloatingActionButton'; import InputText from '../../ui/InputText'; import ListItem from '../../ui/ListItem'; -import Switcher from '../../ui/Switcher'; import TextArea from '../../ui/TextArea'; import './Management.scss'; @@ -425,11 +425,9 @@ const ManageGroup: FC = ({ <> {lang('ChannelTopics')} - {lang('ForumToggleDescription')} diff --git a/src/components/right/management/ManageGroupMembers.tsx b/src/components/right/management/ManageGroupMembers.tsx index 1fac33dfe..9ad496744 100644 --- a/src/components/right/management/ManageGroupMembers.tsx +++ b/src/components/right/management/ManageGroupMembers.tsx @@ -28,12 +28,12 @@ import useOldLang from '../../../hooks/useOldLang'; import NothingFound from '../../common/NothingFound'; import PrivateChatInfo from '../../common/PrivateChatInfo'; import Island, { IslandDescription } from '../../gili/layout/Island'; +import Switch from '../../gili/primitives/Switch'; import FloatingActionButton from '../../ui/FloatingActionButton'; import InfiniteScroll from '../../ui/InfiniteScroll'; import InputText from '../../ui/InputText'; import ListItem, { type MenuItemContextAction } from '../../ui/ListItem'; import Loading from '../../ui/Loading'; -import Switcher from '../../ui/Switcher'; import DeleteMemberModal from '../DeleteMemberModal'; type OwnProps = { @@ -216,7 +216,7 @@ const ManageGroupMembers: FC = ({ {oldLang('ChannelHideMembers')} - + diff --git a/src/components/right/management/ManageGroupPermissions.tsx b/src/components/right/management/ManageGroupPermissions.tsx index faa30463f..ba27d88bd 100644 --- a/src/components/right/management/ManageGroupPermissions.tsx +++ b/src/components/right/management/ManageGroupPermissions.tsx @@ -28,10 +28,10 @@ import useManagePermissions from '../hooks/useManagePermissions'; import PaidMessagePrice from '../../common/paidMessage/PaidMessagePrice'; import PrivateChatInfo from '../../common/PrivateChatInfo'; import Island, { IslandDescription, IslandTitle } from '../../gili/layout/Island'; +import Switch from '../../gili/primitives/Switch'; import PermissionCheckboxList from '../../main/PermissionCheckboxList'; import FloatingActionButton from '../../ui/FloatingActionButton'; import ListItem from '../../ui/ListItem'; -import Switcher from '../../ui/Switcher'; type OwnProps = { chatId: string; @@ -251,10 +251,9 @@ const ManageGroupPermissions: FC = ({ {lang('GroupMessagesChargePrice')} - diff --git a/src/components/right/management/Management.scss b/src/components/right/management/Management.scss index 4b528c2f1..2d3d5f4f3 100644 --- a/src/components/right/management/Management.scss +++ b/src/components/right/management/Management.scss @@ -67,7 +67,7 @@ } .invite-link { - padding: 0 1rem; + padding: 0; } .input-admin-title { @@ -205,7 +205,6 @@ .ManageInvite { .link-name { margin-bottom: 1rem; - padding: 0 1rem; } .expire-limit { @@ -326,6 +325,6 @@ } .settings-edit { - padding: 1.125rem !important; + padding: 0.125rem; padding-bottom: 0 !important; } diff --git a/src/components/ui/ListItem.scss b/src/components/ui/ListItem.scss index f42dea604..2f7128daf 100644 --- a/src/components/ui/ListItem.scss +++ b/src/components/ui/ListItem.scss @@ -95,7 +95,8 @@ color: var(--color-text-secondary); } - > .Switcher { + > .Switcher, + > .Switch { margin-inline-start: auto; }