import { memo, useMemo } from '../../../lib/teact/teact'; import { getActions } from '../../../global'; import type { TabState } from '../../../global/types'; import buildClassName from '../../../util/buildClassName'; import { formatDateTimeToString } from '../../../util/dates/dateFormat'; import { formatStarsAsIcon, formatStarsAsText } from '../../../util/localization/format'; import useCurrentOrPrev from '../../../hooks/useCurrentOrPrev'; import useLang from '../../../hooks/useLang'; import useLastCallback from '../../../hooks/useLastCallback'; import PremiumProgress from '../../common/PremiumProgress'; import Button from '../../ui/Button'; import TableInfoModal, { type TableData } from '../common/TableInfoModal'; import styles from './StarGiftPriceDecreaseInfoModal.module.scss'; export type OwnProps = { modal: TabState['starGiftPriceDecreaseInfoModal']; }; const StarGiftPriceDecreaseInfoModal = ({ modal }: OwnProps) => { const { closeStarGiftPriceDecreaseInfoModal } = getActions(); const lang = useLang(); const isOpen = Boolean(modal); const renderingModal = useCurrentOrPrev(modal); const handleClose = useLastCallback(() => { closeStarGiftPriceDecreaseInfoModal(); }); const tableData = useMemo(() => { if (!renderingModal) return undefined; const { prices } = renderingModal; return prices.map((price): TableData[number] => [ formatDateTimeToString(price.date * 1000, lang.code, true, undefined, true), formatStarsAsIcon(lang, price.upgradeStars, { containerClassName: styles.starIconContainer }), ]); }, [lang, renderingModal]); const footer = useMemo(() => { if (!isOpen) return undefined; return (
{lang('UpgradeCostDrops')}
{lang('StarGiftUpgradeCostModalTitle')}
{lang('StarGiftUpgradeCostHint')}