Newer
Older
vmk-ui-kit / src / js / components / confirm-popup.js
/**
 * confirmPopup browser helper.
 *
 * Mirrors gnexus-ui-kit confirmPopup public surface.
 */

import Modals from "./modals.js";

export default function confirmPopup(text, confirmedCb, canceledCb) {
	const modal = Modals.create("confirm-popup", {
		title: "Requires confirmation",
		body: () => {
			const paragraph = document.createElement("p");
			paragraph.textContent = text ?? "";
			return paragraph;
		},
		actions: modalInstance => {
			const buttonNo = document.createElement("button");
			buttonNo.className = "btn btn-md btn-primary";
			buttonNo.type = "button";
			buttonNo.textContent = "NO";

			const buttonYes = document.createElement("button");
			buttonYes.className = "btn btn-md btn-warning";
			buttonYes.type = "button";
			buttonYes.textContent = "YES";

			buttonNo.addEventListener("click", () => {
				modalInstance.close();
				canceledCb?.();
			});

			buttonYes.addEventListener("click", () => {
				modalInstance.close();
				confirmedCb?.();
			});

			return [buttonNo, buttonYes];
		}
	});

	modal.show();
	return modal;
}