import React, { memo, useEffect } from '../../../lib/teact/teact'; import { getActions, withGlobal } from '../../../global'; import type { FC } from '../../../lib/teact/teact'; import { SettingsScreens } from '../../../types'; import { selectIsPremiumPurchaseBlocked } from '../../../global/selectors'; import useLang from '../../../hooks/useLang'; import useHistoryBack from '../../../hooks/useHistoryBack'; import ListItem from '../../ui/ListItem'; import ProfileInfo from '../../common/ProfileInfo'; import ChatExtra from '../../common/ChatExtra'; import PremiumIcon from '../../common/PremiumIcon'; type OwnProps = { isActive?: boolean; onScreenSelect: (screen: SettingsScreens) => void; onReset: () => void; }; type StateProps = { sessionCount: number; currentUserId?: string; canBuyPremium?: boolean; }; const SettingsMain: FC = ({ isActive, onScreenSelect, onReset, currentUserId, sessionCount, canBuyPremium, }) => { const { loadProfilePhotos, loadAuthorizations, openPremiumModal, } = getActions(); const lang = useLang(); useEffect(() => { if (currentUserId) { loadProfilePhotos({ profileId: currentUserId }); } }, [currentUserId, loadProfilePhotos]); useHistoryBack({ isActive, onBack: onReset, }); useEffect(() => { loadAuthorizations(); }, []); return (
{currentUserId && ( )} {currentUserId && ( )} onScreenSelect(SettingsScreens.General)} > {lang('Telegram.GeneralSettingsViewController')} onScreenSelect(SettingsScreens.Performance)} > {lang('Animations and Performance')} onScreenSelect(SettingsScreens.Notifications)} > {lang('Notifications')} onScreenSelect(SettingsScreens.DataStorage)} > {lang('DataSettings')} onScreenSelect(SettingsScreens.Privacy)} > {lang('PrivacySettings')} onScreenSelect(SettingsScreens.Folders)} > {lang('Filters')} onScreenSelect(SettingsScreens.ActiveSessions)} > {lang('SessionsTitle')} {sessionCount > 0 && ({sessionCount})} onScreenSelect(SettingsScreens.Language)} > {lang('Language')} {lang.langName} onScreenSelect(SettingsScreens.Stickers)} > {lang('StickersName')} {canBuyPremium && ( } className="settings-main-menu-premium" // eslint-disable-next-line react/jsx-no-bind onClick={() => openPremiumModal()} > {lang('TelegramPremium')} )}
); }; export default memo(withGlobal( (global): StateProps => { const { currentUserId } = global; return { sessionCount: global.activeSessions.orderedHashes.length, currentUserId, canBuyPremium: !selectIsPremiumPurchaseBlocked(global), }; }, )(SettingsMain));