fix(frontend): simplify report dialog controls and feedback

Use highlight-only reason choices, show the associated target on one line, and replace inline submission progress with shared toast feedback.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
kate522andClaude Fable 5 committed 2026-10-31 00:14:36 +08:00
1 parent 80aecab586
commit b2811cc248
4 files changed
+86 -49

No files matched your search

@@ -399,7 +399,7 @@ test('report modal uses accessible reasons, automatic target association and opt
assert.match(scripts, /report_settings\(\)/)
const reportJs = read('assets/js/report.js')
for (const part of ['aksrt-report-target', 'name="report_reason"', 'type="radio"', '其他原因', '补充说明', '图片举证', '提交举报', '无需填写链接']) {
for (const part of ['aksrt-report-target', 'name="report_reason"', 'type="radio"', '其他原因', '补充说明', '图片举证', '提交举报', '关联对象:']) {
assert.ok(reportJs.includes(part), `report.js missing form contract: ${part}`)
}
assert.doesNotMatch(reportJs, /report_url|违规链接|data-aksrt-report-reason=|bindAutoHeight/)
@@ -413,6 +413,10 @@ test('report modal uses accessible reasons, automatic target association and opt
assert.match(css, /\.aksrt-report-modal:not\(\.aksrt-modal-runtime--bottom\) \.aksrt-modal-runtime__dialog/)
assert.match(css, /600px/)
assert.match(css, /:focus-visible/)
assert.match(css, /\.aksrt-report-reason:has\(input:checked\)/)
assert.match(css, /clip-path: inset\(50%\)/)
assert.match(css, /text-overflow: ellipsis/)
assert.doesNotMatch(reportJs, /aksrt-report-target__icon|无需填写链接|正在提交举报,请稍候/)
assert.match(css, /safe-area-inset-bottom/)
assert.match(css, /\[hidden\] \{ display: none !important;/)
assert.doesNotMatch(modalRuntimeCss, /aksrt-report-modal/, 'retired report styles must not remain in the shared stylesheet')