fix(dashboard): Resize-Griff war unsichtbar - children-Injection landete in falscher Ebene
react-grid-layout/react-resizable hängt den Resize-Griff per children-Injection an (cloneElement(child, {}, ...child.props.children, handle)) - erwartet einen DIREKTEN Kindknoten der Grid-Item-Wurzel (CSS ".react-grid-item > .react-resizable-handle"). TileFrame rendere "children" bisher nur verschachtelt in CardContent, die CSS-Regel griff dort nicht - Griff blieb unsichtbar/nicht greifbar. Fix: eigener Kachel-Inhalt läuft jetzt über eine separate "inhalt"-Prop, "children" (das react-grid-layout für den Griff nutzt) wird direkt unter Card gerendert.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
@@ -297,9 +297,8 @@ export function DashboardPage() {
|
||||
bearbeitenAktiv={bearbeitenModus}
|
||||
ausgeblendet={ausgeblendet}
|
||||
onAusblendenUmschalten={() => ausblendenUmschalten(id)}
|
||||
>
|
||||
{inhalt}
|
||||
</TileFrame>
|
||||
inhalt={inhalt}
|
||||
/>
|
||||
);
|
||||
})}
|
||||
</GridLayout>
|
||||
|
||||
@@ -18,14 +18,20 @@ interface Props extends HTMLAttributes<HTMLDivElement> {
|
||||
bearbeitenAktiv: boolean;
|
||||
ausgeblendet: boolean;
|
||||
onAusblendenUmschalten: () => void;
|
||||
children: ReactNode;
|
||||
/** Eigentlicher Kachel-Inhalt. Bewusst NICHT "children" - react-grid-layout
|
||||
* hängt seinen Resize-Griff über eine children-Injection an (siehe
|
||||
* react-resizable), das erwartet einen DIREKTEN Kindknoten der Grid-Item-
|
||||
* Wurzel (CSS-Regel ".react-grid-item > .react-resizable-handle"). Würde
|
||||
* "children" hier in CardContent verschachtelt landen, träfe die Regel
|
||||
* nicht und der Griff wäre unsichtbar/nicht greifbar. */
|
||||
inhalt: ReactNode;
|
||||
}
|
||||
|
||||
// forwardRef + generische DOM-Props nötig, react-grid-layout reicht Style/Events
|
||||
// (Drag/Resize-Handler) direkt an die Kachel-Wurzel durch.
|
||||
export const TileFrame = memo(
|
||||
forwardRef<HTMLDivElement, Props>(function TileFrame(
|
||||
{ title, akzent = "neutral", bearbeitenAktiv, ausgeblendet, onAusblendenUmschalten, children, className, ...rest },
|
||||
{ title, akzent = "neutral", bearbeitenAktiv, ausgeblendet, onAusblendenUmschalten, inhalt, children, className, ...rest },
|
||||
ref
|
||||
) {
|
||||
return (
|
||||
@@ -54,7 +60,8 @@ export const TileFrame = memo(
|
||||
</Button>
|
||||
)}
|
||||
</CardHeader>
|
||||
{!ausgeblendet && <CardContent className="min-h-0 flex-1 overflow-auto">{children}</CardContent>}
|
||||
{!ausgeblendet && <CardContent className="min-h-0 flex-1 overflow-auto">{inhalt}</CardContent>}
|
||||
{children}
|
||||
</Card>
|
||||
);
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user