UI2: замена для alert() и confirm() на основе $.waDialog Выполнено

8

Штатные системные окошки, которые открываются при вызове соответствующих функций js alert() и confirm() выглядят страшно.

Чтобы всё в системе было единообразно приходится вместо этих функций делать что-то похожее на $.waDialog. Причем нужны эти действия, например, подтверждение удаления, во многих проектах. И у каждого разработчика такие окошки, хоть немного, но отличаются. Было бы здорово, если бы во фреймворке были готовые инструменты для отображения этих простых диалогов. Заголовок, контент, кнопка (или две кнопки) и колбэк для случая, если нажат OK.

Я, правда, как человек ленивый, вообще Sweetalert2 ( https://sweetalert2.github.io/ ) чаще всего использую, но был бы рад встроенным во фреймворк инструментам.

Может это можно в $.waDialog встроить?

$.waDialog.alert({ title: 'Внимание', message: 'Система будет перезагружена', style: 'danger' }).then(()=>reboot());

$.waDialog.confirm({ title: 'Удалить всех человеков?', message: 'Восстановление удаленного невозможно!', style: 'danger' }).then(()=>killEmAll());

3 комментария

  • +1
    Константин Шевский Константин Шевский 28 апреля 2021 20:26 #

    И если confirm будет возвращать Promise - кайф!

    resolve - клик на "ок"

    reject - отмена

    Правда, тогда надо всех обязывать ловить исключения, чтобы наверх не всплывали. Или у нас там вообще какой-то $.Deferred?

    • +1
      Константин Шевский Константин Шевский 28 апреля 2021 20:29 #

      Как вариант решения - всегда resolve с передачей boolean аргумента:


      $.waDialog.confirm()
        .then((result) => {
          if (result) {
            return console.log('Confirmed');
          }
      
          console.log('Canceled');
        })

    • +1

      Готово! Реализовано в виде $.waDialog.alert() и $.waDialog.confirm() — см. документацию и примеры в приложении UI в статье про waDialog.

      Все доступно в ветке webasyst2 на Гитхабе.

      Спасибо за классное предложение!

      Добавить комментарий

      Чтобы добавить комментарий, зарегистрируйтесь или войдите