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
375 Vorkommen in 210 Dateien. Betrifft Kommentare, Oberflaechentexte und die README; an keiner Stelle Bedeutung, nur Zeichensetzung.
44 lines
1.4 KiB
TypeScript
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>
|
|
)
|
|
}
|