Skip to content

Commit 2c9824d

Browse files
committed
refactor(highlight): simplify color logic using color map
1 parent 52fd62c commit 2c9824d

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

src/components/ui/Highlighter.tsx

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,21 @@ interface HighlightProps {
2222
*
2323
*/
2424
export default function Highlight({ text, color = 'yellow' }: HighlightProps) {
25-
let colorClass: string;
25+
const colors: Record<string, string> = {
26+
cyan: 'bg-cyan-200 dark:bg-cyan-500/30',
27+
pink: 'bg-[#ffa7ee] dark:bg-[#f73ed2]/30',
28+
'slate-blue': 'bg-[#a0a8ff] dark:bg-[#675bf9]/50',
29+
red: 'bg-[#ffa0a0] dark:bg-[#f83b3b]/50',
30+
yellow: 'bg-[#ffff77] dark:bg-[#fce913]/30',
31+
};
2632

27-
if (color === 'cyan') {
28-
colorClass = 'bg-cyan-200 dark:bg-cyan-500/30';
29-
} else if (color === 'pink' || color === 'violet-web') {
30-
colorClass = 'bg-[#ffa7ee] dark:bg-[#f73ed2]/30';
31-
} else if (color === 'slate-blue') {
32-
colorClass = 'bg-[#a0a8ff] dark:bg-[#675bf9]/50';
33-
} else if (color === 'red') {
34-
colorClass = 'bg-[#ffa0a0] dark:bg-[#f83b3b]/50';
35-
} else {
36-
// This covers "yellow", "lemon", "laser-lemon", and the default case
37-
colorClass = 'bg-[#ffff77] dark:bg-[#fce913]/30';
33+
if (color === 'violet-web') {
34+
color = 'pink';
35+
} else if (color === 'lemon' || color === 'laser-lemon') {
36+
color = 'yellow';
3837
}
3938

40-
return <span className={cn('rounded px-0.5', colorClass)}>{text}</span>;
39+
const colorClass = colors[color];
40+
41+
return <span className={cn('rounded-sm px-[0.1em]', colorClass)}>{text}</span>;
4142
}

0 commit comments

Comments
 (0)