/* global $, document */ // Функция для создания модального окна function createModal(options) { // Если модальное окно уже существует, удаляем его $('.modal-overlay').remove(); // Опции по умолчанию const defaultOptions = { title: 'Сообщение', content: '', closeText: 'Закрыть', onClose: null, showCancel: false, cancelText: 'Отмена', confirmText: 'Подтвердить', onConfirm: null, onCancel: null, size: 'normal', // 'normal', 'large', 'small' customClass: '', autoClose: false, // Автоматическое закрытие по таймеру autoCloseTime: 2000 // Время до автоматического закрытия (2 секунды) }; // Объединяем пользовательские опции с опциями по умолчанию const settings = $.extend({}, defaultOptions, options); // Создаем структуру модального окна const $modalOverlay = $('
', { class: 'modal-overlay' }); const $modal = $('
', { class: `modal ${settings.customClass}` }); // Устанавливаем ширину в зависимости от размера if (settings.size === 'large') { $modal.css('max-width', '700px'); } else if (settings.size === 'small') { $modal.css('max-width', '400px'); } // Создаем заголовок const $modalHeader = $('
', { class: 'modal-header' }); const $modalTitle = $('

', { text: settings.title }); const $modalClose = $('

`; const modal = createModal({ title: title || 'QR-код для доступа', content: content, size: 'large' }); // Добавляем обработчик для кнопки копирования modal.$modal.find('.btn-copy-link').on('click', function() { const input = modal.$modal.find('.qr-link-input'); input.select(); document.execCommand('copy'); // Показываем уведомление о копировании const $button = $(this); const originalText = $button.text(); $button.text('Скопировано!'); $button.addClass('copied'); setTimeout(function() { $button.text(originalText); $button.removeClass('copied'); }, 1500); }); return modal; }