Files
AfiS-Aktensystem/web/app/(print)/PrintBar.tsx
T
Harlekin e0b03ea336
Prüfung / Lint, Typen, Tests (push) Canceled after 0s
Prüfung / Images bauen (pdf) (push) Canceled after 0s
Prüfung / Images bauen (web) (push) Canceled after 0s
Prüfung / Images bauen (worker) (push) Canceled after 0s
Images / bauen (pdf, docker/pdf.Dockerfile) (push) Canceled after 0s
Images / bauen (web, docker/web.Dockerfile) (push) Canceled after 0s
Images / bauen (worker, docker/worker.Dockerfile) (push) Canceled after 0s
Gedankenstriche durch Bindestriche ersetzt
375 Vorkommen in 210 Dateien. Betrifft Kommentare, Oberflaechentexte und die
README; an keiner Stelle Bedeutung, nur Zeichensetzung.
2026-09-04 08:54:52 +02:00

44 lines
1.4 KiB
TypeScript

'use client'
import Link from 'next/link'
import { usePathname } from 'next/navigation'
import { exportText } from '@/lib/i18n/export'
/**
* Die Leiste über einer Druckansicht: zurück zur Akte und drucken.
*
* Die Druckansichten liegen ausserhalb des angemeldeten Rahmenwerks - der
* PDF-Dienst ruft sie mit einem kurzlebigen Zeichen auf und hat keine Sitzung,
* also darf dort keine Kopfzeile stehen, die `requireUser()` braucht. Genau
* deshalb gab es aber auch keinen Weg zurück: wer die Ansicht im Browser
* öffnete, sass in einer Sackgasse.
*
* Das Ziel wird aus dem Pfad abgeleitet und nicht hereingereicht: `/druck`
* abschneiden ergibt die Akte, aus der man kommt. Das stimmt auch, wenn jemand
* die Adresse direkt aufruft - `router.back()` täte das nicht.
*
* `no-print` blendet die Leiste beim Drucken aus. Auf dem Papier hat ein
* Zurück-Knopf nichts verloren.
*/
export function PrintBar() {
const pfad = usePathname()
const zurueck = pfad.replace(/\/druck$/, '') || '/uebersicht'
return (
<div className="no-print sticky top-0 z-10 flex flex-wrap items-center gap-3 border-b border-line bg-surface px-6 py-3">
<Link href={zurueck} className="btn btn-sm">
{exportText.backToFile}
</Link>
<PrintButton />
</div>
)
}
function PrintButton() {
return (
<button type="button" onClick={() => window.print()} className="btn btn-sm btn-primary">
{exportText.printNow}
</button>
)
}