File: //proc/self/cwd/wp-content/themes/patterns-agency/src/admin/info/index.js
/* CSS */
import './index.scss';
/* WordPress */
import apiFetch from '@wordpress/api-fetch';
/* Local */
class PatternsAgencyPluginApi {
constructor() {
this.nonce = PatternsAgencyLocalize.nonce;
this.bindEvents();
}
bindEvents() {
document.addEventListener('click', (event) => {
if (event.target.classList.contains('patterns-agency-install-plugin')) {
event.target.classList.add("patterns-agency-processing");
this.installPlugin(event.target);
}
});
}
async installPlugin(el) {
const pluginData = el.dataset.plugin;
const plugin = JSON.parse(pluginData);
try {
const result = await apiFetch({
path: 'patterns-agency/v1/install-plugin',
method: 'POST',
data: plugin,
headers: {
'X-WP-Nonce': this.nonce
}
});
if (result) {
if (result.success) {
el.innerText = el.dataset.successText;
el.disabled = true;
el.classList.remove('patterns-agency-install-plugin');
} else {
el.innerText = el.dataset.failText;
}
}
} catch (error) {
console.error(error);
el.innerText = el.dataset.failText;
}
el.classList.remove("patterns-agency-processing");
}
}
document.addEventListener('DOMContentLoaded', () => {
new PatternsAgencyPluginApi();
});