mirror of
https://github.com/apache/superset.git
synced 2024-09-06 22:07:34 -04:00
fix(dashboard): scrolling table viz overlaps next chart (#19121)
This commit is contained in:
parent
981f09b5db
commit
74910f99d8
@ -128,6 +128,8 @@ export default class Chart extends React.Component {
|
||||
this.resize = this.resize.bind(this);
|
||||
this.setDescriptionRef = this.setDescriptionRef.bind(this);
|
||||
this.setHeaderRef = this.setHeaderRef.bind(this);
|
||||
this.getChartHeight = this.getChartHeight.bind(this);
|
||||
this.getDescriptionHeight = this.getDescriptionHeight.bind(this);
|
||||
}
|
||||
|
||||
shouldComponentUpdate(nextProps, nextState) {
|
||||
@ -178,21 +180,31 @@ export default class Chart extends React.Component {
|
||||
return this.props.cacheBusterProp !== nextProps.cacheBusterProp;
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
if (this.props.isExpanded) {
|
||||
const descriptionHeight = this.getDescriptionHeight();
|
||||
this.setState({ descriptionHeight });
|
||||
}
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
clearTimeout(this.resizeTimeout);
|
||||
}
|
||||
|
||||
componentDidUpdate(prevProps) {
|
||||
if (this.props.isExpanded !== prevProps.isExpanded) {
|
||||
const descriptionHeight =
|
||||
this.props.isExpanded && this.descriptionRef
|
||||
? this.descriptionRef.offsetHeight
|
||||
: 0;
|
||||
const descriptionHeight = this.getDescriptionHeight();
|
||||
// eslint-disable-next-line react/no-did-update-set-state
|
||||
this.setState({ descriptionHeight });
|
||||
}
|
||||
}
|
||||
|
||||
getDescriptionHeight() {
|
||||
return this.props.isExpanded && this.descriptionRef
|
||||
? this.descriptionRef.offsetHeight
|
||||
: 0;
|
||||
}
|
||||
|
||||
getChartHeight() {
|
||||
const headerHeight = this.getHeaderHeight();
|
||||
return this.state.height - headerHeight - this.state.descriptionHeight;
|
||||
|
@ -93,6 +93,14 @@ describe('Chart', () => {
|
||||
expect(wrapper.find('.slice_description')).toExist();
|
||||
});
|
||||
|
||||
it('should calculate the description height if it has one and isExpanded=true', () => {
|
||||
const spy = jest.spyOn(Chart.prototype, 'getDescriptionHeight');
|
||||
const wrapper = setup({ isExpanded: true });
|
||||
|
||||
expect(wrapper.find('.slice_description')).toExist();
|
||||
expect(spy).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should call refreshChart when SliceHeader calls forceRefresh', () => {
|
||||
const refreshChart = sinon.spy();
|
||||
const wrapper = setup({ refreshChart });
|
||||
|
Loading…
Reference in New Issue
Block a user