mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-12-01 06:16:09 +01:00
31 lines
837 B
JavaScript
31 lines
837 B
JavaScript
|
import $ from 'jquery';
|
||
|
import {svg} from '../../svg.js';
|
||
|
import {htmlEscape} from 'escape-goat';
|
||
|
|
||
|
const {i18n} = window.config;
|
||
|
|
||
|
export async function confirmModal(opts = {content: '', buttonColor: 'green'}) {
|
||
|
return new Promise((resolve) => {
|
||
|
const $modal = $(`
|
||
|
<div class="ui g-modal-confirm modal">
|
||
|
<div class="content">${htmlEscape(opts.content)}</div>
|
||
|
<div class="actions">
|
||
|
<button class="ui basic cancel button">${svg('octicon-x')} ${i18n.modal_cancel}</button>
|
||
|
<button class="ui ${opts.buttonColor || 'green'} ok button">${svg('octicon-check')} ${i18n.modal_confirm}</button>
|
||
|
</div>
|
||
|
</div>
|
||
|
`);
|
||
|
|
||
|
$modal.appendTo(document.body);
|
||
|
$modal.modal({
|
||
|
onApprove() {
|
||
|
resolve(true);
|
||
|
},
|
||
|
onHidden() {
|
||
|
$modal.remove();
|
||
|
resolve(false);
|
||
|
},
|
||
|
}).modal('show');
|
||
|
});
|
||
|
}
|