import type { FC } from '../../../lib/teact/teact'; import React, { memo, useEffect } from '../../../lib/teact/teact'; import { getActions, withGlobal } from '../../../global'; import { SettingsScreens } from '../../../types'; import type { ApiUser } from '../../../api/types'; import { selectIsPremiumPurchaseBlocked, selectUser } 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; currentUser?: ApiUser; lastSyncTime?: number; canBuyPremium?: boolean; }; const SettingsMain: FC = ({ isActive, onScreenSelect, onReset, currentUser, sessionCount, lastSyncTime, canBuyPremium, }) => { const { loadProfilePhotos, loadAuthorizations, openPremiumModal, } = getActions(); const lang = useLang(); const profileId = currentUser?.id; useEffect(() => { if (profileId && lastSyncTime) { loadProfilePhotos({ profileId }); } }, [lastSyncTime, profileId, loadProfilePhotos]); useHistoryBack({ isActive, onBack: onReset, }); useEffect(() => { if (lastSyncTime) { loadAuthorizations(); } }, [lastSyncTime, loadAuthorizations]); return (
{currentUser && ( )} {currentUser && ( )} onScreenSelect(SettingsScreens.General)} > {lang('Telegram.GeneralSettingsViewController')} 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, lastSyncTime } = global; return { sessionCount: global.activeSessions.orderedHashes.length, currentUser: currentUserId ? selectUser(global, currentUserId) : undefined, lastSyncTime, canBuyPremium: !selectIsPremiumPurchaseBlocked(global), }; }, )(SettingsMain));