@@ -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
9492export 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