fix(ban): hide scrollbars entirely in ban modals
申诉弹窗等内容区的细滚动条(mini-scrollbar 悬停显现的 3px 滚动条)也不予保留:
三个禁封弹窗(禁封/解封 max-vh7、申诉 max-vh5、禁封记录 max-vh5)的滚动容器
统一改用 no-scrollbar(scrollbar-width:none + ::-webkit-scrollbar{display:none}),
滚动能力保留但任何状态下都不显示滚动条。契约测试锁定:ban 相关helper 不得
再出现 mini-scrollbar。
This commit is contained in:
@@ -294,10 +294,10 @@ function aksrt_get_user_ban_appeal_modal(int $user_id): string
|
||||
}
|
||||
|
||||
$desc_html = (string) $settings['desc'] !== '' ? '<div class="mb10 em09">' . wp_kses_post(nl2br(esc_html((string) $settings['desc']))) . '</div>' : '';
|
||||
// 滚动容器 1:1 参考主题申诉弹窗:scroll-y + mini-scrollbar(无侧边滚动栏)+ max-vh5(50vh,
|
||||
// 滚动容器:scroll-y + no-scrollbar(完全隐藏滚动条,含细滚动条)+ max-vh5(50vh,
|
||||
// 内层滚动、外层对话框不滚动);说明框保持 rows=3 自然高度,不做 autoHeight 压缩。
|
||||
$html .= '<form class="aksrt-user-ban-appeal-form" data-aksrt-appeal-form>'
|
||||
. '<div class="scroll-y mini-scrollbar max-vh5">' . $info_box . $input . $desc_html . '</div>'
|
||||
. '<div class="scroll-y no-scrollbar max-vh5">' . $info_box . $input . $desc_html . '</div>'
|
||||
. $footer . '</form>';
|
||||
$html .= '</div>';
|
||||
|
||||
@@ -358,7 +358,7 @@ function aksrt_get_user_ban_log_modal(int $user_id): string
|
||||
}
|
||||
|
||||
$html .= '<div class="c-yellow mb10">' . esc_html(sprintf(__('该用户共有%d次禁封记录', 'aksrt'), count($logs))) . '</div>';
|
||||
$html .= '<div class="scroll-y mini-scrollbar max-vh5">';
|
||||
$html .= '<div class="scroll-y no-scrollbar max-vh5">';
|
||||
$i = 1;
|
||||
foreach ($logs as $log) {
|
||||
$type = (string) ($log['type'] ?? '');
|
||||
@@ -715,7 +715,7 @@ function aksrt_get_user_ban_modal(int $user_id): string
|
||||
: '';
|
||||
|
||||
$html .= '<form class="aksrt-user-ban-form" data-aksrt-ban-form data-aksrt-ban-mode="ban" data-aksrt-ban-user="' . esc_attr((string) $user_id) . '">';
|
||||
$html .= '<div class="scroll-y mini-scrollbar max-vh7">';
|
||||
$html .= '<div class="scroll-y no-scrollbar max-vh7">';
|
||||
$html .= '<div class="mt10 mb20">' . $user_row . $log_view . '</div>';
|
||||
|
||||
// 禁封方式(1=拉入小黑屋 suspend / 2=禁封用户 ban)。
|
||||
|
||||
@@ -208,9 +208,10 @@ test('ban prompt surface mirrors the reference theme modals and block page', ()
|
||||
assert.match(userBanHelper, /您的申诉正在审核中,请耐心等待/)
|
||||
assert.match(userBanHelper, /name="data\[/)
|
||||
assert.match(userBanHelper, /详细的说明更容易通过审核喔/)
|
||||
// 申诉弹窗滚动容器 1:1 参考主题:scroll-y + mini-scrollbar(无侧边滚动栏)+ max-vh5;
|
||||
// 申诉弹窗滚动容器:scroll-y + no-scrollbar(完全隐藏滚动条,含细滚动条)+ max-vh5;
|
||||
// 说明框保持 rows=3 自然高度(禁封弹窗留言框才有 autoHeight/maxHeight)。
|
||||
assert.match(userBanHelper, /scroll-y mini-scrollbar max-vh5/)
|
||||
assert.match(userBanHelper, /scroll-y no-scrollbar max-vh5/)
|
||||
assert.ok(!userBanHelper.includes('mini-scrollbar'), 'ban modals must not show any scrollbar (thin included)')
|
||||
const appealModalFn = userBanHelper.slice(userBanHelper.indexOf('function aksrt_get_user_ban_appeal_modal'))
|
||||
const appealModalBody = appealModalFn.slice(0, appealModalFn.indexOf('\n}'))
|
||||
const appealTextarea = (appealModalBody.match(/<textarea[^>]*>/) || [''])[0]
|
||||
|
||||
Reference in New Issue
Block a user