mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
BarGauge: Limit title width when name is really long (#42346)
This commit is contained in:
@@ -218,9 +218,7 @@ describe('BarGauge', () => {
|
|||||||
const styles = getTitleStyles(props);
|
const styles = getTitleStyles(props);
|
||||||
expect(styles.wrapper.flexDirection).toBe('column');
|
expect(styles.wrapper.flexDirection).toBe('column');
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
describe('Horizontal bar with title', () => {
|
|
||||||
it('should place below if height < 40', () => {
|
it('should place below if height < 40', () => {
|
||||||
const props = getProps({
|
const props = getProps({
|
||||||
height: 30,
|
height: 30,
|
||||||
@@ -249,6 +247,19 @@ describe('BarGauge', () => {
|
|||||||
expect(styles2.title.width).toBe('43px');
|
expect(styles2.title.width).toBe('43px');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('Should limit text length to 40%', () => {
|
||||||
|
const props = getProps({
|
||||||
|
height: 30,
|
||||||
|
value: getValue(
|
||||||
|
100,
|
||||||
|
'saaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||||
|
),
|
||||||
|
orientation: VizOrientation.Horizontal,
|
||||||
|
});
|
||||||
|
const styles = getTitleStyles(props);
|
||||||
|
expect(styles.title.width).toBe('119px');
|
||||||
|
});
|
||||||
|
|
||||||
it('should use alignmentFactors if provided', () => {
|
it('should use alignmentFactors if provided', () => {
|
||||||
const props = getProps({
|
const props = getProps({
|
||||||
height: 30,
|
height: 30,
|
||||||
|
|||||||
@@ -268,10 +268,13 @@ function calculateTitleDimensions(props: Props): TitleDimensions {
|
|||||||
const titleFontSize = titleHeight / TITLE_LINE_HEIGHT;
|
const titleFontSize = titleHeight / TITLE_LINE_HEIGHT;
|
||||||
const textSize = measureText(title, titleFontSize);
|
const textSize = measureText(title, titleFontSize);
|
||||||
|
|
||||||
|
// Do not allow title to take up more than 40% width
|
||||||
|
const textWidth = Math.min(textSize.width + 15, width * 0.4);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
fontSize: text?.titleSize ?? titleFontSize,
|
fontSize: text?.titleSize ?? titleFontSize,
|
||||||
height: 0,
|
height: 0,
|
||||||
width: textSize.width + 15,
|
width: textWidth,
|
||||||
placement: 'left',
|
placement: 'left',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user