import * as React from 'react'; import { formatDate, hasExpired } from '../../shared/account-expiry'; import { messages } from '../../shared/gettext'; import { AccountContainer, AccountFooter, AccountOutOfTime, AccountRow, AccountRowLabel, AccountRows, AccountRowValue, StyledBuyCreditButton, StyledContainer, StyledRedeemVoucherButton, } from './AccountStyles'; import AccountTokenLabel from './AccountTokenLabel'; import * as AppButton from './AppButton'; import { AriaDescribed, AriaDescription, AriaDescriptionGroup } from './AriaGroup'; import { Layout } from './Layout'; import { ModalContainer } from './Modal'; import { BackBarItem, NavigationBar, NavigationItems, TitleBarItem } from './NavigationBar'; import SettingsHeader, { HeaderTitle } from './SettingsHeader'; import { AccountToken } from '../../shared/daemon-rpc-types'; interface IProps { accountToken?: AccountToken; accountExpiry?: string; expiryLocale: string; isOffline: boolean; onLogout: () => void; onClose: () => void; onBuyMore: () => Promise; updateAccountData: () => void; } export default class Account extends React.Component { public componentDidMount() { this.props.updateAccountData(); } public render() { return ( { // TRANSLATORS: Back button in navigation bar messages.pgettext('navigation-bar', 'Settings') } { // TRANSLATORS: Title label in navigation bar messages.pgettext('account-view', 'Account') } {messages.pgettext('account-view', 'Account')} {messages.pgettext('account-view', 'Account number')} {messages.pgettext('account-view', 'Paid until')} {messages.gettext('Buy more credit')} {messages.pgettext('account-view', 'Log out')} ); } } function FormattedAccountExpiry(props: { expiry?: string; locale: string }) { if (props.expiry) { if (hasExpired(props.expiry)) { return ( {messages.pgettext('account-view', 'OUT OF TIME')} ); } else { return {formatDate(props.expiry, props.locale)}; } } else { return ( {messages.pgettext('account-view', 'Currently unavailable')} ); } }