fix: defer referral operations page initialization

This commit is contained in:
2026-08-17 14:12:31 +08:00
parent 566d39c3ae
commit 698e3750f9
+24 -7
View File
@@ -52,13 +52,23 @@ trait UsersMenusReferral {
</div>
<script>
(() => {
const init = () => {
const root = document.getElementById('aksrt-referral-ops');
if (!root || root.dataset.aksrtReferralReady === '1') return;
const endpoint = <?php echo wp_json_encode($endpoint); ?>;
const nonce = <?php echo wp_json_encode($nonce); ?>;
const rows = document.getElementById('aksrt-ref-rows');
const pages = document.getElementById('aksrt-ref-pages');
const notice = document.getElementById('aksrt-ref-notice');
const search = document.getElementById('aksrt-ref-search');
const status = document.getElementById('aksrt-ref-status');
const rows = root.querySelector('#aksrt-ref-rows');
const pages = root.querySelector('#aksrt-ref-pages');
const notice = root.querySelector('#aksrt-ref-notice');
const search = root.querySelector('#aksrt-ref-search');
const status = root.querySelector('#aksrt-ref-status');
const filter = root.querySelector('#aksrt-ref-filter');
if (!rows || !pages || !notice || !search || !status || !filter) {
console.error('[AKSRT] Referral operations could not initialize: required page elements are missing.');
return;
}
root.dataset.aksrtReferralReady = '1';
let currentPage = 1;
const escapeHtml = (value) => String(value ?? '').replace(/[&<>'"]/g, (char) => ({
@@ -119,9 +129,9 @@ trait UsersMenusReferral {
}
};
document.getElementById('aksrt-ref-filter').addEventListener('click', () => load(1));
filter.addEventListener('click', () => load(1));
search.addEventListener('keydown', (event) => { if (event.key === 'Enter') load(1); });
document.getElementById('aksrt-ref-ops').addEventListener('click', async (event) => {
root.addEventListener('click', async (event) => {
const pageButton = event.target.closest('[data-ref-page]');
if (pageButton) return load(Number(pageButton.dataset.refPage));
const button = event.target.closest('[data-ref-action]');
@@ -137,6 +147,13 @@ trait UsersMenusReferral {
}
});
load();
};
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init, { once: true });
} else {
init();
}
})();
</script>
<?php