code.gitea.io/gitea@v1.22.3/web_src/js/features/comp/ConfirmModal.js (about)

     1  import $ from 'jquery';
     2  import {svg} from '../../svg.js';
     3  import {htmlEscape} from 'escape-goat';
     4  import {createElementFromHTML} from '../../utils/dom.js';
     5  
     6  const {i18n} = window.config;
     7  
     8  export function confirmModal(content, {confirmButtonColor = 'primary'} = {}) {
     9    return new Promise((resolve) => {
    10      const modal = createElementFromHTML(`
    11        <div class="ui g-modal-confirm modal">
    12          <div class="content">${htmlEscape(content)}</div>
    13          <div class="actions">
    14            <button class="ui cancel button">${svg('octicon-x')} ${htmlEscape(i18n.modal_cancel)}</button>
    15            <button class="ui ${confirmButtonColor} ok button">${svg('octicon-check')} ${htmlEscape(i18n.modal_confirm)}</button>
    16          </div>
    17        </div>
    18      `);
    19      document.body.append(modal);
    20      const $modal = $(modal);
    21      $modal.modal({
    22        onApprove() {
    23          resolve(true);
    24        },
    25        onHidden() {
    26          $modal.remove();
    27          resolve(false);
    28        },
    29      }).modal('show');
    30    });
    31  }