Files
AfiS-Aktensystem/web/components/documents/SheetSwitch.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

63 lines
1.7 KiB
TypeScript

'use client'
import { useState, type ReactNode } from 'react'
import { documentText } from '@/lib/i18n/documents'
/**
* Umschalter zwischen Aktenblatt und Bearbeitung.
*
* Beide Bäume kommen fertig gerendert vom Server herein; hier wird nur
* umgeschaltet. Das Blatt bleibt damit das, was es ist - ein Formular -, ohne
* dass die Bearbeitung es mit Eingabefeldern zerlegt.
*/
export function SheetSwitch({
sheet,
editor,
canEdit,
}: {
sheet: ReactNode
editor: ReactNode
canEdit: boolean
}) {
const [modus, setModus] = useState<'blatt' | 'bearbeiten'>('blatt')
return (
<div>
<div className="no-print mb-6 flex flex-wrap items-center gap-4 border-b border-line pb-2 font-condensed text-xs">
<button
type="button"
onClick={() => setModus('blatt')}
aria-pressed={modus === 'blatt'}
className="btn btn-sm"
>
{documentText.sheet}
</button>
{canEdit ? (
<button
type="button"
onClick={() => setModus('bearbeiten')}
aria-pressed={modus === 'bearbeiten'}
className="btn btn-sm"
>
{documentText.edit}
</button>
) : null}
<button
type="button"
onClick={() => {
setModus('blatt')
// Ein Bild vom Bildschirm ist kein Export. Der PDF-Export mit
// Wasserzeichen und Protokolleintrag kommt in Phase 8.
requestAnimationFrame(() => window.print())
}}
className="ml-auto btn btn-sm"
>
{documentText.print}
</button>
</div>
{modus === 'blatt' ? sheet : <div className="no-print">{editor}</div>}
</div>
)
}