"use client"; import React from "react"; import { FeatherDownload, FeatherRefreshCw, FeatherShare2 } from "@subframe/core"; import { useToast } from "../../context/ToastContext"; /** * Kopf einer Analyse-Seite: Titel, Einordnung, Seitenaktionen. * Die Aktionen sind im Prototyp bewusst folgenlos (Toast statt Export), * siehe HANDOVER.md, Abschnitt "Was noch Logik braucht". */ export function PageHeader({ titel, beschreibung, aktionen, /** * Aktualisieren, Export und Teilen. Auf Seiten ohne Inhalt gibt es nichts zu * aktualisieren oder zu exportieren, dort schaltet man sie ab, statt * Schaltflächen anzubieten, die ins Leere greifen. */ standardAktionen = true, }: { titel: string; beschreibung: string; aktionen?: React.ReactNode; standardAktionen?: boolean; }) { const { zeigeToast } = useToast(); /** * Unter `sm` tragen die beiden beschrifteten Knöpfe nur ihr Icon. * Nebeneinander brauchen "Aktualisieren" und "Export" rund 240 px. Das ist * mehr, als bei 375 px neben dem Titel überhaupt vorhanden ist. Die Beschriftung * entfällt, `aria-label` bleibt: Für die Sprachausgabe ändert sich nichts. */ const knopf = "flex h-9 w-9 flex-none items-center justify-center gap-2 rounded-md border border-solid " + "border-border-default bg-white text-[13px] font-medium text-text-neutral-secondary " + "hover:bg-neutral-50 sm:w-auto sm:px-3"; return ( // Unter `sm` untereinander: Titel und Aktionen nebeneinander lassen für den // Titel keine 130 px übrig, er zerfiele in vier Zeilen, während die Knöpfe // aus dem Bild laufen.
{beschreibung}