import type { FC, TeactNode } from '../../../lib/teact/teact'; import React, { memo, useMemo } from '../../../lib/teact/teact'; import type { ApiKeyboardButton, ApiMessage } from '../../../api/types'; import type { ActionPayloads } from '../../../global/types'; import { RE_TME_LINK } from '../../../config'; import renderKeyboardButtonText from '../composer/helpers/renderKeyboardButtonText'; import useOldLang from '../../../hooks/useOldLang'; import Icon from '../../common/icons/Icon'; import Button from '../../ui/Button'; import './InlineButtons.scss'; type OwnProps = { message: ApiMessage; onClick: (payload: ActionPayloads['clickBotInlineButton']) => void; }; const InlineButtons: FC = ({ message, onClick }) => { const lang = useOldLang(); const renderIcon = (button: ApiKeyboardButton) => { const { type } = button; switch (type) { case 'url': { if (!RE_TME_LINK.test(button.url)) { return ; } break; } case 'urlAuth': return ; case 'buy': case 'receipt': return ; case 'switchBotInline': return ; case 'webView': case 'simpleWebView': return ; case 'copy': return ; } return undefined; }; const buttonTexts = useMemo(() => { const texts: TeactNode[][] = []; message.inlineButtons!.forEach((row) => { texts.push(row.map((button) => renderKeyboardButtonText(lang, button))); }); return texts; }, [lang, message.inlineButtons]); return (
{message.inlineButtons!.map((row, i) => (
{row.map((button, j) => ( ))}
))}
); }; export default memo(InlineButtons);