style: simplify mobile task views
ci / gitleaks (push) Successful in 1m24s
ci / docker (push) Successful in 6m1s

This commit is contained in:
2026-09-16 22:11:01 +08:00
parent 6c234d7d82
commit bdf2a53fa9
11 changed files with 343 additions and 39 deletions
+18
View File
@@ -5,6 +5,7 @@ import CountdownPanel from './CountdownPanel.vue'
import { invalidateCountdownCache } from './lib/mvp-utils'
const source = readFileSync('src/CountdownPanel.vue', 'utf8')
const css = readFileSync('src/style.css', 'utf8')
const cleanups: Array<() => void> = []
const countdown = { id:'c1', title:'发布日', event_date:'2026-09-20', display_date:'2026-09-20', kind:'countdown', repeat_rule:'none', icon:'', pinned:false, archived_at:null, days:4, calendar_mode:'solar', lunar_year:null, lunar_month:null, lunar_day:null, ignore_year:false, lunar_text:null, updated_at:'v1' }
const countdownB = { ...countdown, id:'c2', title:'旅行日', event_date:'2026-09-24', display_date:'2026-09-24', days:8 }
@@ -108,6 +109,23 @@ describe('countdown modal accessibility', () => {
expect(source).not.toContain('<h3>{{group.title}}</h3>')
})
it('keeps active rows compact and archive controls accessible', () => {
expect(source).not.toContain('class="countdown-hero"')
expect(source).toContain('class="countdown-summary"')
expect(source).not.toContain('<template v-if="secondaryDate(item)">')
expect(source).not.toContain('visibleBadges(item)')
expect(source).not.toContain('class="pinned-icon"')
expect(source).toContain(':aria-expanded="showArchived"')
expect(source).toContain('aria-controls="archived-countdowns"')
expect(source).toContain('id="archived-countdowns"')
})
it('keeps archived countdowns as one surface with separator-only mobile rows', () => {
expect(css).toMatch(/\.archived-countdowns\.archived-countdowns\{[^}]*background:var\(--surface-raised\);[^}]*border:1px solid var\(--border-cream\);[^}]*border-radius:var\(--radius-list\);[^}]*box-shadow:none/)
expect(css).toMatch(/\.archived-countdowns\.archived-countdowns article\{[^}]*border:0;[^}]*border-radius:0;[^}]*box-shadow:none/)
expect(css).toContain('.archived-countdowns.archived-countdowns article+article{border-top:1px solid var(--border-cream)}')
})
it('keeps the empty state directly actionable', () => {
expect(source).toContain('添加第一个重要日子')
expect(source).toContain('@click="openFromEmpty"')