Skip to content

Commit fa65b1b

Browse files
committed
fix: Only shrink when it makes sense
1 parent ace7bc3 commit fa65b1b

1 file changed

Lines changed: 43 additions & 35 deletions

File tree

app/components/chart-published.tsx

Lines changed: 43 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -74,22 +74,20 @@ export const ChartPublished = ({
7474
);
7575
};
7676

77-
const useStyles = makeStyles<Theme, { metadataPanelOpen: boolean }>(
78-
(theme) => ({
79-
root: {
80-
position: "relative",
81-
display: "flex",
82-
flexGrow: 1,
83-
flexDirection: "column",
84-
padding: theme.spacing(5),
85-
paddingLeft: ({ metadataPanelOpen }) =>
86-
`calc(${theme.spacing(5)} + ${metadataPanelOpen ? DRAWER_WIDTH : 0}px)`,
87-
color: theme.palette.grey[800],
88-
overflowX: "auto",
89-
transition: "padding 0.25s ease",
90-
},
91-
})
92-
);
77+
const useStyles = makeStyles<Theme, { shrink: boolean }>((theme) => ({
78+
root: {
79+
position: "relative",
80+
display: "flex",
81+
flexGrow: 1,
82+
flexDirection: "column",
83+
padding: theme.spacing(5),
84+
paddingLeft: ({ shrink }) =>
85+
`calc(${theme.spacing(5)} + ${shrink ? DRAWER_WIDTH : 0}px)`,
86+
color: theme.palette.grey[800],
87+
overflowX: "auto",
88+
transition: "padding 0.25s ease",
89+
},
90+
}));
9391

9492
export const ChartPublishedInner = ({
9593
dataSet,
@@ -104,15 +102,34 @@ export const ChartPublishedInner = ({
104102
chartConfig: ChartConfig;
105103
configKey: string;
106104
}) => {
105+
const rootRef = useRef<HTMLDivElement>(null);
106+
107+
const {
108+
state: isTablePreview,
109+
setState: setIsTablePreview,
110+
containerRef,
111+
containerHeight,
112+
} = useChartTablePreview();
113+
107114
const metadataPanelStore = useMemo(() => createMetadataPanelStore(), []);
108115
const metadataPanelOpen = useStore(metadataPanelStore, (state) => state.open);
109116

110-
const classes = useStyles({ metadataPanelOpen });
117+
const shouldShrink = useMemo(() => {
118+
const rootWidth = rootRef.current?.getBoundingClientRect().width;
119+
120+
if (!rootWidth) {
121+
return false;
122+
}
123+
124+
return metadataPanelOpen && rootWidth > DRAWER_WIDTH * 2;
125+
}, [metadataPanelOpen]);
126+
127+
const classes = useStyles({
128+
shrink: shouldShrink,
129+
});
111130
const locale = useLocale();
112131
const isTrustedDataSource = useIsTrustedDataSource(dataSource);
113132

114-
const rootRef = useRef<HTMLDivElement>(null);
115-
116133
const [{ data: metaData }] = useDataCubeMetadataWithComponentValuesQuery({
117134
variables: {
118135
iri: dataSet,
@@ -129,13 +146,6 @@ export const ChartPublishedInner = ({
129146
chartConfig: chartConfig,
130147
} as ConfiguratorStatePublishing;
131148
}, [chartConfig, dataSource]);
132-
133-
const {
134-
state: isTablePreview,
135-
setState: setIsTablePreview,
136-
containerRef,
137-
containerHeight,
138-
} = useChartTablePreview();
139149
const handleToggleTableView = useEvent(() => setIsTablePreview((c) => !c));
140150

141151
const allDimensions: DimensionMetadataFragment[] = useMemo(() => {
@@ -238,15 +248,13 @@ export const ChartPublishedInner = ({
238248
)}
239249
</PublishedConfiguratorStateProvider>
240250
</Flex>
241-
{chartConfig && (
242-
<ChartFootnotes
243-
dataSetIri={dataSet}
244-
dataSource={dataSource}
245-
chartConfig={chartConfig}
246-
configKey={configKey}
247-
onToggleTableView={handleToggleTableView}
248-
/>
249-
)}
251+
<ChartFootnotes
252+
dataSetIri={dataSet}
253+
dataSource={dataSource}
254+
chartConfig={chartConfig}
255+
configKey={configKey}
256+
onToggleTableView={handleToggleTableView}
257+
/>
250258
</InteractiveFiltersProvider>
251259
</ChartErrorBoundary>
252260
</Box>

0 commit comments

Comments
 (0)