Ribbon: TopBar-Ansichtssteuerung in Ansichten-Tab gemergt; TopBar auf schmale globale Leiste reduziert
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
// Bezeichner englisch, UI-Text/Kommentare deutsch (CONVENTIONS.md).
|
||||
|
||||
import { useState } from "react";
|
||||
import type { ReactNode } from "react";
|
||||
import { t } from "../../i18n";
|
||||
import { ToolIcon } from "../../panels/ToolsPanel";
|
||||
import { getTool } from "../../tools/tools";
|
||||
@@ -32,6 +33,13 @@ export interface RibbonBarProps {
|
||||
onSelectTool: (id: ToolId) => void;
|
||||
/** Engine-Befehl starten (Ändern-Gruppe u. a.). */
|
||||
onRunCommand: (name: string) => void;
|
||||
/**
|
||||
* Reicher Inhalt des „Ansichten"-Tabs (aus der TopBar gemergte Ansichts-/Zoom-/
|
||||
* Darstellungs-Steuerung, `ViewRibbonTab`). Von App geliefert, damit dessen
|
||||
* Setter/State dort bleiben — analog dazu, wie die TopBar das Layout-Menü als
|
||||
* Node bekommt. Fehlt er, zeigt der Tab den Leer-Hinweis.
|
||||
*/
|
||||
viewsContent?: ReactNode;
|
||||
}
|
||||
|
||||
/** Ein einzelner Ribbon-Button (Werkzeug ODER Befehl). */
|
||||
@@ -104,9 +112,12 @@ export function RibbonBar(props: RibbonBarProps) {
|
||||
))}
|
||||
</div>
|
||||
|
||||
{/* Gruppen des aktiven Tabs */}
|
||||
{/* Gruppen des aktiven Tabs. Der „Ansichten"-Tab trägt reichen Custom-
|
||||
Inhalt (ViewRibbonTab) statt der datengetriebenen Item-Gruppen. */}
|
||||
<div className="ribbon-body">
|
||||
{current.groups.length === 0 ? (
|
||||
{current.id === "views" && props.viewsContent ? (
|
||||
props.viewsContent
|
||||
) : current.groups.length === 0 ? (
|
||||
<div className="ribbon-empty">{t("ribbon.empty")}</div>
|
||||
) : (
|
||||
current.groups.map((g) => (
|
||||
|
||||
@@ -41,9 +41,10 @@ const t = (id: ToolId): RibbonItem => ({ kind: "tool", id });
|
||||
const c = (name: string): RibbonItem => ({ kind: "command", name });
|
||||
|
||||
/**
|
||||
* Die Ribbon-Tabs. Phase 1 füllt 2D (Zeichnen + Ändern) und BIM (Bauteile) mit
|
||||
* den vorhandenen Werkzeugen/Befehlen; 3D und Ansichten bleiben vorerst leer
|
||||
* (Platzhalter, in einer späteren Phase gefüllt — siehe Plan-Doc).
|
||||
* Die Ribbon-Tabs (Reihenfolge 2D·3D·BIM·Ansichten). 2D (Zeichnen + Ändern) und
|
||||
* BIM (Bauteile) sind datengetrieben aus Werkzeugen/Befehlen; „Ansichten" trägt
|
||||
* reichen Custom-Inhalt (aus der TopBar gemergt, siehe `ViewRibbonTab` — die
|
||||
* Registry lässt seine `groups` leer). 3D ist vorerst leer (spätere Phase).
|
||||
*/
|
||||
export const RIBBON_TABS: RibbonTab[] = [
|
||||
{
|
||||
@@ -74,6 +75,11 @@ export const RIBBON_TABS: RibbonTab[] = [
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "3d",
|
||||
labelKey: "ribbon.tab.3d",
|
||||
groups: [],
|
||||
},
|
||||
{
|
||||
id: "bim",
|
||||
labelKey: "ribbon.tab.bim",
|
||||
@@ -91,11 +97,6 @@ export const RIBBON_TABS: RibbonTab[] = [
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "3d",
|
||||
labelKey: "ribbon.tab.3d",
|
||||
groups: [],
|
||||
},
|
||||
{
|
||||
id: "views",
|
||||
labelKey: "ribbon.tab.views",
|
||||
|
||||
Reference in New Issue
Block a user