import React, { memo, useMemo } from '../../../lib/teact/teact'; import { getActions, withGlobal } from '../../../global'; import { selectIsCurrentUserPremium, selectNewNoncontactPeersRequirePremium } from '../../../global/selectors'; import useHistoryBack from '../../../hooks/useHistoryBack'; import useLang from '../../../hooks/useLang'; import useLastCallback from '../../../hooks/useLastCallback'; import RadioGroup from '../../ui/RadioGroup'; import PremiumStatusItem from './PremiumStatusItem'; import PrivacyLockedOption from './PrivacyLockedOption'; type OwnProps = { isActive?: boolean; onReset: VoidFunction; }; type StateProps = { shouldNewNonContactPeersRequirePremium?: boolean; isCurrentUserPremium?: boolean; }; function PrivacyMessages({ isActive, onReset, shouldNewNonContactPeersRequirePremium, isCurrentUserPremium, }: OwnProps & StateProps) { const { updateGlobalPrivacySettings } = getActions(); const lang = useLang(); const options = useMemo(() => { return [ { value: 'everybody', label: lang('P2PEverybody') }, { value: 'contacts_and_premium', label: isCurrentUserPremium ? ( lang('PrivacyMessagesContactsAndPremium') ) : ( ), hidden: !isCurrentUserPremium, }, ]; }, [lang, isCurrentUserPremium]); const handleChange = useLastCallback((privacy: string) => { updateGlobalPrivacySettings({ shouldNewNonContactPeersRequirePremium: privacy === 'contacts_and_premium' }); }); useHistoryBack({ isActive, onBack: onReset, }); return ( <>

{lang('PrivacyMessagesTitle')}

{lang('Privacy.Messages.SectionFooter')}

{!isCurrentUserPremium && } ); } export default memo(withGlobal((global): StateProps => { return { shouldNewNonContactPeersRequirePremium: selectNewNoncontactPeersRequirePremium(global), isCurrentUserPremium: selectIsCurrentUserPremium(global), }; })(PrivacyMessages));