관리-도구
편집 파일: settings.ts
import "./settings.scss"; import setupUdb from "./setup-udb"; import setupTabsNavigation from "./tabs"; declare var ajaxurl: string; (function () { setupTabsNavigation(); setupUdb(); const metabox = document.querySelector(".kirki-clear-font-cache-metabox"); if (!metabox) return; var notice = metabox.querySelector(".submission-status"); if (!notice) return; const button = metabox.querySelector(".kirki-clear-font-cache"); if (!button) return; button.addEventListener("click", clearFontCache); let doingAjax = false; let timeoutId: number = 0; function clearFontCache(e: Event) { if (doingAjax) return; doingAjax = true; const button = this as HTMLButtonElement; button.classList.add("is-loading"); if (timeoutId) { window.clearTimeout(timeoutId); } timeoutId = 0; var data = { action: "kirki_clear_font_cache", nonce: button.dataset.nonce, }; jQuery .ajax({ url: ajaxurl, type: "POST", data: data, }) .done(function (r) { showNotice(r.success ? "success" : "error", r.data); }) .fail(function (r) { showNotice("error", "Something went wrong."); }) .always(function (r) { doingAjax = false; button.classList.remove("is-loading"); timeoutId = window.setTimeout(function () { hideNotice(); }, 4000); }); } function showNotice(status: string, textContent: string) { if (!notice) return; notice.textContent = textContent; notice.classList.add(status === "success" ? "is-success" : "is-error"); notice.classList.remove("is-hidden"); } function hideNotice() { if (!notice) return; notice.textContent = ""; notice.classList.remove("is-success"); notice.classList.remove("is-error"); notice.classList.add("is-hidden"); } })();