import React from 'react'; import { useTheme } from '../lib/theme'; import { THEME_PALETTES, THEME_PALETTE_LABELS } from '../types'; interface HeaderProps { /** Beschriftung der Ansicht - meist ihr Name, siehe viewTitle(). */ title: string; subtitle?: string; onToggleSidebar: () => void; } const SUN_ICON = 'M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z'; const MOON_ICON = 'M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z'; export const Header: React.FC = ({ title, subtitle, onToggleSidebar }) => { const { theme, preference, toggle, useSystem, palette, setPalette } = useTheme(); const isDark = theme === 'dark'; /* * `app-header` ist keine Utility-Klasse, sondern ein Anker: darueber legt ein * Theme ein Hintergrundbild hinter die Leiste (siehe index.css). `relative` * haelt den Inhalt darueber. */ return (

{title}

{subtitle &&

{subtitle}

}
{/* Farbwelt. Ein Auswahlfeld und keine Knopfreihe: es kommen weitere Designs dazu, und drei bis fuenf Knoepfe im Kopf wuerden den Titel der Ansicht verdraengen. Jede Wahl gilt nur fuer den angemeldeten Benutzer - sie steht an seinem Konto, nicht im Browser. */} {/* Doppelklick loest die manuelle Wahl und folgt wieder dem System. */}
); };