SweetAlert предоставляет широкий спектр возможностей для создания красивых и интерактивных окон уведомлений. Одним из наиболее важных типов сообщений является warning (предупреждение). Это сообщения, которые информируют пользователя о возможных последствиях, прежде чем он выполнит важное действие. В отличие от информационных или успешных сообщений, warning-сообщения акцентируют внимание на важности дальнейших шагов, предупреждая пользователя о потенциальных рисках.
Для создания warning-окна используется свойство
icon в конфигурации SweetAlert. Значение этого свойства для
предупреждающего сообщения устанавливается в строку
'warning'.
Пример базового warning-сообщения:
Swal.fire({
icon: 'warning',
title: 'Вы уверены?',
text: 'Вы не сможете отменить это действие!',
})
В этом примере задаются:
icon: 'warning' — это указывает, что тип окна будет
предупреждающим.title — заголовок окна.text — описание, которое сообщает пользователю о
последствиях его действий.SweetAlert позволяет детально настроить внешний вид и поведение warning-сообщений с помощью различных параметров. Рассмотрим наиболее часто используемые:
title и text Эти параметры позволяют задать текстовые элементы окна. title отображается крупным шрифтом в верхней части модального окна, а text — более мелким, под заголовком.
showCancelButton Добавляет кнопку отмены, которая дает пользователю возможность отклонить действие. Это полезно в случаях, когда предупреждение связано с необратимыми действиями, например, удалением данных.
Пример с кнопкой отмены:
Swal.fire({
icon: 'warning',
title: 'Вы уверены?',
text: 'Удаление невозможно отменить.',
showCancelButton: true,
confirmButtonText: 'Удалить',
cancelButtonText: 'Отмена'
})confirmButtonText и cancelButtonText Эти параметры задают текст для кнопок подтверждения и отмены соответственно. Это позволяет изменить стандартные надписи на кнопках, например, на более понятные или соответствующие контексту.
reverseButtons По умолчанию кнопки подтверждения
и отмены располагаются в следующем порядке: подтверждение слева, отмена
справа. При установке reverseButtons: true, этот порядок
меняется.
Пример:
Swal.fire({
icon: 'warning',
title: 'Вы хотите выйти?',
showCancelButton: true,
confirmButtonText: 'Выйти',
cancelButtonText: 'Отмена',
reverseButtons: true
})footer В SweetAlert 2.x добавлена возможность
вставлять дополнительный контент внизу окна, используя параметр
footer. Это может быть полезно для отображения
дополнительной информации или ссылок, например, на политику
конфиденциальности.
Пример использования:
Swal.fire({
icon: 'warning',
title: 'Удалить файл?',
text: 'Вы уверены, что хотите удалить этот файл навсегда?',
footer: '<a href="/terms">Условия удаления</a>'
})Для warning-сообщений часто требуется дождаться действия
пользователя, прежде чем продолжить выполнение программы. Это можно
реализовать с помощью методов, таких как then(), который
позволяет обработать результаты взаимодействия с модальным окном.
Результат будет содержать информацию о том, какую кнопку нажал
пользователь.
Пример:
Swal.fire({
icon: 'warning',
title: 'Удалить элемент?',
text: 'Вы уверены, что хотите удалить этот элемент?',
showCancelButton: true,
confirmButtonText: 'Удалить',
cancelButtonText: 'Отмена'
}).then((result) => {
if (result.isConfirmed) {
// Логика удаления элемента
console.log('Элемент удален');
} else if (result.dismiss === Swal.DismissReason.cancel) {
// Логика отмены действия
console.log('Удаление отменено');
}
})
В этом примере result.isConfirmed указывает, была ли
нажата кнопка подтверждения, а result.dismiss указывает
причину закрытия окна (например, нажатие кнопки отмены).
Кроме стандартного использования статического текста в заголовке и описании, возможно динамическое изменение содержимого в зависимости от контекста. Это удобно, когда необходимо показать предупреждение, в котором часть информации меняется в зависимости от действий пользователя.
Пример динамического текста:
const fileName = "report.pdf";
Swal.fire({
icon: 'warning',
title: `Вы уверены, что хотите удалить ${fileName}?`,
text: 'Это действие невозможно отменить.'
});
В этом случае переменная fileName используется для
динамического изменения текста в сообщении.
SweetAlert предлагает различные способы улучшения визуального восприятия warning-сообщений:
Custom animations Можно добавить анимацию для
окна предупреждения, чтобы оно появлялось или исчезало с определенным
эффектом. Для этого используется параметр showClass и
hideClass.
Пример анимации:
Swal.fire({
icon: 'warning',
title: 'Будьте осторожны!',
text: 'Это предупреждающее сообщение.',
showClass: {
popup: 'animated fadeInDown'
},
hideClass: {
popup: 'animated fadeOutUp'
}
})Custom styling С помощью CSS можно дополнительно настроить стили модальных окон. Например, можно изменить цвет фона, шрифт или добавить другие визуальные эффекты.
Пример с кастомными стилями:
Swal.fire({
icon: 'warning',
title: 'Предупреждение',
text: 'Пожалуйста, прочитайте это сообщение.',
customClass: {
popup: 'custom-popup-style'
}
})
Внешний CSS:
.custom-popup-style {
background-color: #fff3cd;
color: #856404;
border: 2px solid #ffeeba;
}Одной из самых частых ситуаций, где используется warning-сообщение, является подтверждение важных действий, таких как удаление данных, отправка необратимых запросов или другие критичные операции.
Пример использования предупреждения перед выполнением важного действия:
Swal.fire({
icon: 'warning',
title: 'Удалить аккаунт?',
text: 'Это действие нельзя отменить. Вы уверены?',
showCancelButton: true,
confirmButtonText: 'Да, удалить',
cancelButtonText: 'Отмена'
}).then((result) => {
if (result.isConfirmed) {
deleteAccount(); // Функция для удаления аккаунта
}
})
Этот подход помогает защитить пользователей от случайных действий, которые могут иметь серьезные последствия.
Warning-сообщения в SweetAlert — это мощный инструмент для интерактивного взаимодействия с пользователем. Они позволяют не только предупредить о возможных рисках, но и обеспечить контроль над действиями пользователя, минимизируя вероятность ошибок. С помощью различных настроек и параметров можно адаптировать поведение и внешний вид этих сообщений под любые задачи.