UNPKG

umbot

Version:

Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф

90 lines (89 loc) 3.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initButton = initButton; exports.getImage = getImage; const button_1 = require("../button"); const utils_1 = require("../../utils"); /** * Инициализация кнопки. * @param button * @param buttonInst */ function initButton(button, buttonInst) { if (typeof button === 'string') { buttonInst.addBtn(button); } else { const title = button.title || button.text || null; const url = button.url || null; const payload = button.payload || null; buttonInst.addBtn(title, url, payload); } } /** * Инициализация изображения. * Устанавливает основные параметры изображения и проверяет их корректность. * * Процесс работы: * 1. Проверяет тип изображения (токен или путь): * - Если isToken=true, использует image как токен * - Иначе проверяет валидность URL или файла * 2. Устанавливает заголовок и описание: * - Если заголовок пустой, возвращает false * - Если описание пустое, устанавливает пробел * 3. Добавляет кнопки, если они есть: * - Поддерживает строковые кнопки * - Поддерживает объекты кнопок * * @param {AppContext} [appContext] - Контекст приложения * @param {string | null} image - Путь к изображению или токен * @param {string} title - Заголовок изображения * @param {string} [desc=' '] - Описание изображения * @param {TButton | null} [button=null] - Кнопки для изображения * @param {boolean} isToken - Флаг, говорящий о том, что явно передается токен * @returns {IImageType | null} объект если инициализация успешна, null в противном случае * * @example * ```ts * // Инициализация с URL * getImage( * 'http://localhost/image.jpg', * 'Заголовок', * 'Описание', * { title: 'Кнопка', url: 'http://localhost' }, * appContext * ); * * // Инициализация с простой кнопкой * getImage( * 'http://localhost/image.jpg', * 'Заголовок', * 'Описание', * 'Текст кнопки', * appContext * ); * ``` */ function getImage(appContext, image, title, desc = ' ', button = null, isToken = false) { const res = { imageToken: image, imageDir: null, title: '', desc: '', params: {}, }; if (!isToken && image && (utils_1.Text.isUrl(image) || (0, utils_1.isFileSync)(image))) { res.imageDir = image; res.imageToken = null; } if (image || title) { res.title = title || ''; res.desc = desc || ''; if (button) { res.button = new button_1.Buttons(appContext); initButton(button, res.button); } return res; } return null; }