UNPKG

@lskjs/bots-base

Version:

LSK.js plugin for @lskjs/bots module for telegram, slack, discord, whatsapp, twitter, instagram and vk bots creation

73 lines (69 loc) 2.25 kB
import { createKeyboard } from '../createKeyboard'; export const renderForm = ({ path, action, field, form, repliedMessageId }) => { const { fields } = form; if (action === 'init') { const text = fields.map((name) => `— ${form.controls[name].title}`).join('\n'); return [ `${form.title}\n\nℹ️ Форма [необходимо заполнить]:\n${text}`, createKeyboard({ type: 'inline', buttons: [ { title: `➡️ Начать`, value: `${path}?action=start&repliedMessageId=${repliedMessageId}`, }, { title: `❌ Отмена`, value: `${path}?action=cancel&repliedMessageId=${repliedMessageId}`, }, ], }), ]; } const text = fields .map((name) => { const { title } = form.controls[name]; const value = field === name ? '[✍️ заполняется]' : form.getValue(name) || '[не заполнено]'; return `— ${title}: ${value}`; }) .join('\n'); if (action === 'set') { return [ `${form.title}\n\nℹ️ Форма [в процессе заполнения]:\n${text}`, createKeyboard({ type: 'inline', buttons: [ { title: `🔄 Заполнить заново`, value: `${path}?action=start&repliedMessageId=${repliedMessageId}`, }, { title: `❌ Отмена`, value: `${path}?action=cancel&repliedMessageId=${repliedMessageId}`, }, ], }), ]; } return [ `${form.title}\n\nℹ️ Форма [ожидает подтверждения]:\n${text}`, createKeyboard({ type: 'inline', buttons: [ { title: `✅ Подтвердить`, value: `${path}?action=submit&repliedMessageId=${repliedMessageId}`, }, { title: `🔄 Заполнить заново`, value: `${path}?action=start&repliedMessageId=${repliedMessageId}`, }, { title: `❌ Отмена`, value: `${path}?action=cancel&repliedMessageId=${repliedMessageId}`, }, ], }), ]; }; export default renderForm;