import type { FC } from '../../../lib/teact/teact'; import React, { memo } from '../../../lib/teact/teact'; import { getActions, withGlobal } from '../../../global'; import type { ApiMessage } from '../../../api/types'; import { IS_TOUCH_ENV } from '../../../util/environment'; import { selectChatMessage, selectCurrentMessageList } from '../../../global/selectors'; import useMouseInside from '../../../hooks/useMouseInside'; import Menu from '../../ui/Menu'; import Button from '../../ui/Button'; import './BotKeyboardMenu.scss'; export type OwnProps = { isOpen: boolean; messageId: number; onClose: NoneToVoidFunction; }; type StateProps = { message?: ApiMessage; }; const BotKeyboardMenu: FC = ({ isOpen, message, onClose, }) => { const { clickBotInlineButton } = getActions(); const [handleMouseEnter, handleMouseLeave] = useMouseInside(isOpen, onClose); const { isKeyboardSingleUse } = message || {}; if (!message || !message.keyboardButtons) { return undefined; } return (
{message.keyboardButtons.map((row) => (
{row.map((button) => ( ))}
))}
); }; export default memo(withGlobal( (global, { messageId }): StateProps => { const { chatId } = selectCurrentMessageList(global) || {}; if (!chatId) { return {}; } return { message: selectChatMessage(global, chatId, messageId) }; }, )(BotKeyboardMenu));