Am Schreibtisch war "Mein Konto" praktisch nicht zu finden - und damit auch nicht Passwortwechsel, zweiter Faktor und Passkey-Verwaltung. Die Seitenleiste hatte keine feste Hoehe und wuchs mit der Seite mit. Ihr Fuss mit dem Benutzermenue landete deshalb am Ende der SEITE statt am unteren Bildschirmrand: auf /heute bei 1632 Pixel in einem 900 Pixel hohen Fenster. Nachgemessen, nicht geraten - im Browser auf fuenf Seiten. Der Fehler sah nach nichts aus. Kein Element fehlte, nichts war kaputt, die Seite sah richtig aus. Man musste nur ganz nach unten scrollen. Behoben mit lg:sticky, lg:top-0, lg:h-dvh und lg:self-start. Das self-start gehoert dazu, weil ein Flex-Kind sonst auf die volle Zeilenhoehe gestreckt wird und die feste Hoehe wieder verliert. Die Navigation dazwischen hat bereits overflow-y-auto und scrollt bei Bedarf in sich selbst. Am Handy war es nie ein Problem - dort sitzt das Menue in der ohnehin festen Kopfzeile. Neu: e2e/benutzermenue.spec.ts fragt nicht, ob das Menue im DOM ist, sondern ob es im sichtbaren Bereich steht - auf fuenf Seiten, an drei Scrollpositionen, auf einem flachen Laptopfenster und am Handy. Die Position in der Mitte ist Absicht: Am Seitenende wird eine mitwachsende Leiste zufaellig doch sichtbar, der Test waere gruen und der Fehler trotzdem da. Beide Sichtbarkeitstests sind gegen den kaputten Zustand gegengeprueft und schlagen dort an. Refs #1
103 lines
3.2 KiB
JSON
103 lines
3.2 KiB
JSON
{
|
|
"name": "betreuungs-cockpit",
|
|
"version": "1.1.2",
|
|
"private": true,
|
|
"description": "Arbeits- und Dokumentationswerkzeug fuer die ehrenamtliche rechtliche Betreuung",
|
|
"engines": {
|
|
"node": ">=20.11"
|
|
},
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "next lint",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"db:generate": "prisma generate",
|
|
"db:migrate": "prisma migrate dev",
|
|
"db:deploy": "prisma migrate deploy",
|
|
"db:volltext": "prisma db execute --schema prisma/schema.prisma --file prisma/sql/volltextsuche.sql",
|
|
"db:seed": "prisma db seed",
|
|
"db:studio": "prisma studio",
|
|
"setup": "prisma migrate deploy && npm run db:sql && npm run db:seed",
|
|
"schluessel": "node scripts/schluessel-erzeugen.mjs",
|
|
"postinstall": "prisma generate",
|
|
"db:audit-schutz": "prisma db execute --schema prisma/schema.prisma --file prisma/sql/audit-schutz.sql",
|
|
"db:sql": "npm run db:volltext && npm run db:audit-schutz",
|
|
"protokoll": "node scripts/bauprotokoll.mjs",
|
|
"test:e2e": "playwright test",
|
|
"protokoll:md": "node scripts/bauprotokoll.mjs --md",
|
|
"wartungsschluessel": "node --env-file=.env scripts/wartungsschluessel.mjs",
|
|
"version": "node scripts/version.mjs"
|
|
},
|
|
"prisma": {
|
|
"seed": "tsx prisma/seed.ts"
|
|
},
|
|
"dependencies": {
|
|
"@aws-sdk/client-s3": "3.735.0",
|
|
"@aws-sdk/s3-request-presigner": "3.735.0",
|
|
"@node-rs/argon2": "2.0.2",
|
|
"@prisma/client": "6.3.1",
|
|
"@radix-ui/react-dialog": "1.1.4",
|
|
"@radix-ui/react-dropdown-menu": "2.1.4",
|
|
"@radix-ui/react-label": "2.1.1",
|
|
"@radix-ui/react-slot": "1.1.1",
|
|
"@react-pdf/renderer": "4.1.6",
|
|
"@simplewebauthn/browser": "13.3.0",
|
|
"@simplewebauthn/server": "13.3.2",
|
|
"archiver": "7.0.1",
|
|
"class-variance-authority": "0.7.1",
|
|
"clsx": "2.1.1",
|
|
"date-fns": "4.1.0",
|
|
"docx": "9.1.1",
|
|
"lucide-react": "0.474.0",
|
|
"next": "15.1.6",
|
|
"next-auth": "5.0.0-beta.25",
|
|
"nodemailer": "6.10.0",
|
|
"otpauth": "9.3.6",
|
|
"pdf-lib": "1.17.1",
|
|
"qrcode": "1.5.4",
|
|
"react": "19.0.0",
|
|
"react-dom": "19.0.0",
|
|
"rrule": "2.8.1",
|
|
"server-only": "^0.0.1",
|
|
"tailwind-merge": "2.6.0",
|
|
"tailwindcss-animate": "1.0.7",
|
|
"zod": "3.24.1"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "1.50.1",
|
|
"@types/archiver": "6.0.3",
|
|
"@types/node": "22.13.1",
|
|
"@types/nodemailer": "6.4.17",
|
|
"@types/qrcode": "1.5.5",
|
|
"@types/react": "19.0.8",
|
|
"@types/react-dom": "19.0.3",
|
|
"autoprefixer": "10.4.20",
|
|
"eslint": "9.19.0",
|
|
"eslint-config-next": "15.1.6",
|
|
"postcss": "8.5.1",
|
|
"prisma": "6.3.1",
|
|
"tailwindcss": "3.4.17",
|
|
"tsx": "4.19.2",
|
|
"typescript": "5.7.3",
|
|
"vitest": "3.0.5"
|
|
},
|
|
"allowScripts": {
|
|
"@prisma/client@6.3.1": true,
|
|
"@prisma/engines@6.3.1": true,
|
|
"esbuild@0.23.1": true,
|
|
"esbuild@0.25.12": true,
|
|
"prisma@6.3.1": true,
|
|
"sharp@0.33.5": true,
|
|
"unrs-resolver@1.12.2": true
|
|
},
|
|
"overrides": {
|
|
"next-auth": {
|
|
"@simplewebauthn/server": "$@simplewebauthn/server",
|
|
"@simplewebauthn/browser": "$@simplewebauthn/browser"
|
|
}
|
|
}
|
|
}
|