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.
63 lines
1.7 KiB
TypeScript
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>
|
|
)
|
|
}
|