Files
betreuungs-cockpit/package.json
T
Florian Wilde 0128bf71e7 Seitenleiste bleibt stehen, Benutzermenue wieder erreichbar
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
2026-08-23 01:00:22 +02:00

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"
}
}
}