import type { FC } from '../../../lib/teact/teact'; import { memo, useCallback, useEffect, useMemo, useState, } from '../../../lib/teact/teact'; import { getActions } from '../../../global'; import type { TabState } from '../../../global/types'; import { MINI_APP_TOS_URL } from '../../../config'; import renderText from '../../common/helpers/renderText'; import useOldLang from '../../../hooks/useOldLang'; import Checkbox from '../../ui/Checkbox'; import ConfirmDialog from '../../ui/ConfirmDialog'; export type OwnProps = { modal: TabState['requestedAttachBotInstall']; }; const AttachBotInstallModal: FC = ({ modal, }) => { const { confirmAttachBotInstall, cancelAttachBotInstall } = getActions(); const bot = modal?.bot; const [isTosAccepted, setIsTosAccepted] = useState(false); const lang = useOldLang(); const handleConfirm = useCallback(() => { confirmAttachBotInstall({ isWriteAllowed: Boolean(bot?.shouldRequestWriteAccess), }); }, [confirmAttachBotInstall, bot]); // Reset on re-open useEffect(() => { if (bot) { setIsTosAccepted(false); } }, [bot]); const tosLabel = useMemo(() => { const base = lang('lng_mini_apps_disclaimer_button'); const split = base.split('{link}'); const linkText = lang('lng_mini_apps_disclaimer_link'); return [ split[0], {linkText}, split[1], ]; }, [lang]); return ( {renderText(lang('lng_mini_apps_disclaimer_text', bot?.shortName), ['simple_markdown'])} {renderText(lang('WebBot.Account.Desclaimer.Desc', bot?.shortName), ['simple_markdown'])} ); }; export default memo(AttachBotInstallModal);