Files
CTFd/assets/js/utils/notifications/toasts.js
Kevin Chung a64e7d51ef Squashed 'CTFd/themes/core-beta/' changes from 9126d77d..5ce3003b
5ce3003b Merge pull request #47 from aCursedComrade/patch-1
c9887cb1 Fix team template

git-subtree-dir: CTFd/themes/core-beta
git-subtree-split: 5ce3003b4d68352e629ee2d390bc999e7d6b071e
2023-06-11 15:56:28 -04:00

29 lines
854 B
JavaScript

import Alpine from "alpinejs";
import { Toast } from "bootstrap";
import CTFd from "../../index";
export default () => {
Alpine.store("toast", { title: "", html: "" });
CTFd._functions.events.eventToast = data => {
Alpine.store("toast", data);
let toast = new Toast(document.querySelector("[x-ref='toast']"));
// TODO: Get rid of this private attribute access
// See https://github.com/twbs/bootstrap/issues/31266
let close = toast._element.querySelector("[data-bs-dismiss='toast']");
let handler = event => {
CTFd._functions.events.eventRead(data.id);
};
close.addEventListener("click", handler, { once: true });
toast._element.addEventListener(
"hidden.bs.toast",
event => {
close.removeEventListener("click", handler);
},
{ once: true }
);
toast.show();
};
};