feat(ST-1133): entityDialogContentClasses → full-screen op <640px (T-316/T-317/T-318)

Eén edit op de gedeelde constant dekt PbiDialog, StoryDialog, TaskDialog,
TaskDetailDialog (allen renderen DialogContent met dezelfde className).

Toegevoegd: max-sm:w-screen max-sm:h-screen max-sm:max-h-screen
max-sm:max-w-none max-sm:rounded-none. Desktop-classes (sm:max-w-[90vw],
lg:max-w-[50vw]) blijven onveranderd.

Tests: smoke op constant + regressie-vangnet dat de 4 entity-dialogen
entityDialogContentClasses blijven gebruiken.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Janpeter Visser 2026-05-04 10:06:21 +02:00
parent 7b32fc60e6
commit 479a502dfd
2 changed files with 39 additions and 0 deletions

View file

@ -0,0 +1,38 @@
import { describe, it, expect } from 'vitest'
import { readFileSync } from 'node:fs'
import { resolve } from 'node:path'
import { entityDialogContentClasses } from '@/components/shared/entity-dialog-layout'
describe('entityDialogContentClasses', () => {
it('bevat mobile-fullscreen classes (<640px)', () => {
const cls = entityDialogContentClasses
expect(cls).toContain('max-sm:w-screen')
expect(cls).toContain('max-sm:h-screen')
expect(cls).toContain('max-sm:max-w-none')
expect(cls).toContain('max-sm:rounded-none')
})
it('behoudt desktop-classes (>=640px)', () => {
const cls = entityDialogContentClasses
expect(cls).toContain('sm:max-w-[90vw]')
expect(cls).toContain('sm:max-h-[85vh]')
expect(cls).toContain('lg:max-w-[50vw]')
})
})
describe('alle entity-dialogen gebruiken entityDialogContentClasses', () => {
// Regressie-vangnet: voorkomt dat een dialog zijn eigen className meegeeft en
// daarmee de gedeelde mobile-fullscreen-classes ontwijkt.
const files = [
'app/_components/tasks/task-dialog.tsx',
'components/solo/task-detail-dialog.tsx',
'components/backlog/pbi-dialog.tsx',
'components/backlog/story-dialog.tsx',
]
for (const f of files) {
it(`${f} importeert + gebruikt entityDialogContentClasses`, () => {
const src = readFileSync(resolve(process.cwd(), f), 'utf-8')
expect(src).toContain('entityDialogContentClasses')
})
}
})