TabsLayout: Add left margin to nested tab (#109052)

add margin if tabs layout is inside tab item
This commit is contained in:
Sergej-Vlasov
2025-09-01 08:01:57 +00:00
committed by GitHub
parent 232d68fb8c
commit a0280d701b
@@ -1,5 +1,6 @@
import { css, cx } from '@emotion/css';
import { DragDropContext, Droppable } from '@hello-pangea/dnd';
import { useMemo } from 'react';
import { GrafanaTheme2 } from '@grafana/data';
import { selectors } from '@grafana/e2e-selectors';
@@ -27,6 +28,7 @@ export function TabsLayoutManagerRenderer({ model }: SceneComponentProps<TabsLay
const { isEditing } = dashboard.useState();
const { hasCopiedTab } = useClipboardState();
const [_, conditionalRenderingClass, conditionalRenderingOverlay] = useIsConditionallyHidden(currentTab);
const isNestedInTab = useMemo(() => model.parent instanceof TabItem, [model.parent]);
const soloPanelContext = useSoloPanelContext();
if (soloPanelContext) {
@@ -36,7 +38,7 @@ export function TabsLayoutManagerRenderer({ model }: SceneComponentProps<TabsLay
const isClone = isRepeatCloneOrChildOf(model);
return (
<div className={styles.tabLayoutContainer}>
<div className={cx(styles.tabLayoutContainer, { [styles.nestedTabsMargin]: isNestedInTab })}>
<TabsBar className={styles.tabsBar}>
<DragDropContext
onBeforeDragStart={(start) => model.forceSelectTab(start.draggableId)}
@@ -154,4 +156,7 @@ const getStyles = (theme: GrafanaTheme2) => ({
minHeight: theme.spacing(1 + 0.125),
paddingTop: theme.spacing(1),
}),
nestedTabsMargin: css({
marginLeft: theme.spacing(2),
}),
});