diff --git a/handlers/badges.go b/handlers/badges.go index 042beb5..8f15a69 100644 --- a/handlers/badges.go +++ b/handlers/badges.go @@ -288,23 +288,11 @@ func (handler *BadgesHandler) generateSVG(c *gin.Context, colorScheme ColorSchem label := metric.Label valueRectWidth := 40 - labelContainerWidth := 120 - // TODO find a better way to handle this - if len(label) <= 10 { - labelContainerWidth = 74 - } else if len(label) >= 20 && len(label) < 25 { - labelContainerWidth = 150 - } else if len(label) >= 25 { - labelContainerWidth = 174 - } + labelContainerWidth := 110 + // Calculate labelContainerWidth based on label length + labelContainerWidth = len(label)*6 + 20 - if metricValue > 10000 && metricValue < 100000 { - valueRectWidth = 50 - } else if metricValue >= 100000 { - valueRectWidth = 66 - } else if metricValue >= 1000000 { - valueRectWidth = 82 - } + valueRectWidth = len(strconv.Itoa(metricValue))*6 + 21 badgeWidth := labelContainerWidth + valueRectWidth w := c.Writer