import React, { memo, useMemo } from '../../../lib/teact/teact'; import { getActions, withGlobal } from '../../../global'; import type { TabState } from '../../../global/types'; import { selectUser } from '../../../global/selectors'; import { formatDateToString } from '../../../util/dates/dateFormat'; import { LOCAL_TGS_URLS } from '../../common/helpers/animatedAssets'; import formatUsername from '../../common/helpers/formatUsername'; import useLang from '../../../hooks/useLang'; import useLastCallback from '../../../hooks/useLastCallback'; import AnimatedIconWithPreview from '../../common/AnimatedIconWithPreview'; import Button from '../../ui/Button'; import Link from '../../ui/Link'; import TableAboutModal, { type TableAboutData } from '../common/TableAboutModal'; import styles from './FrozenAccountModal.module.scss'; export type OwnProps = { modal: TabState['isFrozenAccountModalOpen']; }; type StateProps = { freezeAppealUrl?: string; botFreezeAppealUsername?: string; freezeUntilDate?: number; }; const FrozenAccountModal = ({ modal, freezeUntilDate, freezeAppealUrl, botFreezeAppealUsername, }: OwnProps & StateProps) => { const { closeFrozenAccountModal, openUrl, } = getActions(); const lang = useLang(); const isOpen = Boolean(modal); const handleClose = useLastCallback(() => { closeFrozenAccountModal(); }); const handleAppeal = useLastCallback(() => { closeFrozenAccountModal(); if (freezeAppealUrl) { openUrl({ url: freezeAppealUrl }); } }); const header = useMemo(() => { return (