Skip to content

Commit 2078a70

Browse files
committed
Guard against null/undefined cssClass in normalizeCssClass
1 parent 142786e commit 2078a70

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

frontend/src/components/Badges.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,22 @@ import { BADGE_CLASS_MAP } from 'utils/data'
44

55
type BadgeProps = {
66
name: string
7-
cssClass: string
7+
cssClass: string | undefined
88
showTooltip?: boolean
99
}
1010

1111
const DEFAULT_ICON = BADGE_CLASS_MAP['medal']
1212

13-
const normalizeCssClass = (cssClass: string) => {
13+
const normalizeCssClass = (cssClass: string | undefined) => {
14+
if (!cssClass || cssClass.trim() === '') {
15+
return ''
16+
}
17+
1418
// Convert backend snake_case format to frontend camelCase format
15-
return cssClass.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase())
19+
return cssClass.trim().replace(/_([a-z])/g, (_, letter) => letter.toUpperCase())
1620
}
1721

18-
const resolveIcon = (cssClass: string) => {
22+
const resolveIcon = (cssClass: string | undefined) => {
1923
const normalizedClass = normalizeCssClass(cssClass)
2024
return BADGE_CLASS_MAP[normalizedClass] ?? DEFAULT_ICON
2125
}

0 commit comments

Comments
 (0)