From 9a22c7eb8b3772a2d0396f782715ea27e3a8e244 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 21 Oct 2026 19:26:48 +0800 Subject: [PATCH] fix(revenue): stop poster modal from blocking the whole revenue page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two regressions from the previous commit made /user/revenue/ unusable. The rewrite dropped data-aksrt-affiliate-poster-modal from the modal shell. That single attribute was both the JS lookup key and the CSS hook, so initAffiliatePoster() bailed at `if (!button || !modal) return` — which is why the 推广海报 button never got un-hidden — and no CSS could target the shell. Restore it. With the shell back but still visible, main.css's .flex{display:flex} loads after bootstrap and matches .modal{display:none} on specificity, so the resting modal rendered as a full-viewport flex box. Combined with .fade's opacity:0 that is an invisible overlay swallowing every click on the page. Pin the resting state to display:none and the open state to flex, the same way credits.css already does for the charge and points-pay modals — that file documents this exact trap. Add a contract test asserting the markup, JS selector and CSS hook share one attribute and that the resting state is explicitly hidden. Co-Authored-By: Claude Fable 5 --- assets/css/routes/user-center/credits.css | 11 +++++++++++ .../affiliate-poster-modal.php | 2 +- .../widget-system/referral-qr-contract.test.cjs | 17 +++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/assets/css/routes/user-center/credits.css b/assets/css/routes/user-center/credits.css index 2f2f69af..f6634d36 100644 --- a/assets/css/routes/user-center/credits.css +++ b/assets/css/routes/user-center/credits.css @@ -190,6 +190,17 @@ display: flex; } +/* 推广海报弹窗壳与上面两个同构(服务端静态输出 .modal.flex.jc.fade), + 静止态同样必须显式隐藏,否则 .flex 工具类会使其铺满全屏形成隐形遮罩, + 拦截整页点击。打开态由 initAffiliatePoster 的内联 display:flex 驱动, + 关闭撤除内联样式后即回到隐藏规则。 */ +.modal[data-aksrt-affiliate-poster-modal] { + display: none; +} +.modal[data-aksrt-affiliate-poster-modal].in { + display: flex; +} + .balance-charge-form .zib-widget { clear: both; background-color: var(--main-bg-color); diff --git a/inc/helpers/user-center-renderers/affiliate-poster-modal.php b/inc/helpers/user-center-renderers/affiliate-poster-modal.php index e1fe8933..e0aae2df 100644 --- a/inc/helpers/user-center-renderers/affiliate-poster-modal.php +++ b/inc/helpers/user-center-renderers/affiliate-poster-modal.php @@ -19,7 +19,7 @@ if (!empty($GLOBALS['aksrt_affiliate_poster_modal_rendered'])) { } $GLOBALS['aksrt_affiliate_poster_modal_rendered'] = true; ?> -