Skip to content

Commit 4201647

Browse files
committed
refactor(web): replace all hardcoded SVG icons with lucide-react
Unify icon usage across the entire frontend by replacing 67 hardcoded SVG icons with lucide-react components across ~25 files. This improves consistency, maintainability, and reduces bundle duplication. Key replacements: - Sidebar nav: Zap, LayoutDashboard, Bot, Workflow, BookMarked, etc. - MCP forms: Loader2, XCircle, Trash2 - Monitoring: Sparkles, MessageSquare, CheckCircle2, RefreshCw, etc. - Cards: Clock, Star, Workflow, Hexagon, Puzzle, Github, etc. - Misc: Paperclip, AudioLines, CloudUpload, Layers, Heart, Smile Zero hardcoded <svg> tags remain in .tsx files.
1 parent 8b26a16 commit 4201647

28 files changed

Lines changed: 144 additions & 736 deletions

File tree

web/src/app/home/bots/components/bot-card/BotCard.tsx

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { httpClient } from '@/app/infra/http/HttpClient';
44
import { Switch } from '@/components/ui/switch';
55
import { useTranslation } from 'react-i18next';
66
import { toast } from 'sonner';
7+
import { MessageSquare, Workflow } from 'lucide-react';
78

89
export default function BotCard({
910
botCardVO,
@@ -42,28 +43,14 @@ export default function BotCard({
4243
</div>
4344

4445
<div className={`${styles.basicInfoAdapterContainer}`}>
45-
<svg
46-
className={`${styles.basicInfoAdapterIcon}`}
47-
xmlns="http://www.w3.org/2000/svg"
48-
viewBox="0 0 24 24"
49-
fill="currentColor"
50-
>
51-
<path d="M2 8.99374C2 5.68349 4.67654 3 8.00066 3H15.9993C19.3134 3 22 5.69478 22 8.99374V21H8.00066C4.68659 21 2 18.3052 2 15.0063V8.99374ZM20 19V8.99374C20 6.79539 18.2049 5 15.9993 5H8.00066C5.78458 5 4 6.78458 4 8.99374V15.0063C4 17.2046 5.79512 19 8.00066 19H20ZM14 11H16V13H14V11ZM8 11H10V13H8V11Z"></path>
52-
</svg>
46+
<MessageSquare className={`${styles.basicInfoAdapterIcon}`} />
5347
<span className={`${styles.basicInfoAdapterLabel}`}>
5448
{botCardVO.adapterLabel}
5549
</span>
5650
</div>
5751

5852
<div className={`${styles.basicInfoPipelineContainer}`}>
59-
<svg
60-
className={`${styles.basicInfoPipelineIcon}`}
61-
xmlns="http://www.w3.org/2000/svg"
62-
viewBox="0 0 24 24"
63-
fill="currentColor"
64-
>
65-
<path d="M6 21.5C4.067 21.5 2.5 19.933 2.5 18C2.5 16.067 4.067 14.5 6 14.5C7.5852 14.5 8.92427 15.5539 9.35481 16.9992L15 16.9994V15L17 14.9994V9.24339L14.757 6.99938H9V9.00003H3V3.00003H9V4.99939H14.757L18 1.75739L22.2426 6.00003L19 9.24139V14.9994L21 15V21H15V18.9994L9.35499 19.0003C8.92464 20.4459 7.58543 21.5 6 21.5ZM6 16.5C5.17157 16.5 4.5 17.1716 4.5 18C4.5 18.8285 5.17157 19.5 6 19.5C6.82843 19.5 7.5 18.8285 7.5 18C7.5 17.1716 6.82843 16.5 6 16.5ZM19 17H17V19H19V17ZM18 4.58581L16.5858 6.00003L18 7.41424L19.4142 6.00003L18 4.58581ZM7 5.00003H5V7.00003H7V5.00003Z"></path>
66-
</svg>
53+
<Workflow className={`${styles.basicInfoPipelineIcon}`} />
6754
<span className={`${styles.basicInfoPipelineLabel}`}>
6855
{botCardVO.usePipelineName}
6956
</span>

web/src/app/home/components/account-settings-dialog/AccountSettingsDialog.tsx

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
} from '@/components/ui/item';
2121
import { httpClient } from '@/app/infra/http/HttpClient';
2222
import { systemInfo } from '@/app/infra/http';
23-
import { Loader2, ExternalLink, KeyRound } from 'lucide-react';
23+
import { Loader2, ExternalLink, KeyRound, Layers } from 'lucide-react';
2424
import PasswordChangeDialog from '../password-change-dialog/PasswordChangeDialog';
2525

2626
interface AccountSettingsDialogProps {
@@ -136,34 +136,7 @@ export default function AccountSettingsDialog({
136136
{/* Space Account Item */}
137137
<Item size="sm" variant="muted" className="rounded-lg">
138138
<ItemMedia variant="icon">
139-
<svg
140-
className="h-4 w-4"
141-
viewBox="0 0 24 24"
142-
fill="none"
143-
xmlns="http://www.w3.org/2000/svg"
144-
>
145-
<path
146-
d="M12 2L2 7L12 12L22 7L12 2Z"
147-
stroke="currentColor"
148-
strokeWidth="2"
149-
strokeLinecap="round"
150-
strokeLinejoin="round"
151-
/>
152-
<path
153-
d="M2 17L12 22L22 17"
154-
stroke="currentColor"
155-
strokeWidth="2"
156-
strokeLinecap="round"
157-
strokeLinejoin="round"
158-
/>
159-
<path
160-
d="M2 12L12 17L22 12"
161-
stroke="currentColor"
162-
strokeWidth="2"
163-
strokeLinecap="round"
164-
strokeLinejoin="round"
165-
/>
166-
</svg>
139+
<Layers className="h-4 w-4" />
167140
</ItemMedia>
168141
<ItemContent>
169142
<ItemTitle>{t('account.spaceStatus')}</ItemTitle>

web/src/app/home/components/dynamic-form/DynamicFormItemComponent.tsx

Lines changed: 5 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1380,14 +1380,7 @@ export default function DynamicFormItemComponent({
13801380
field.onChange(newValue);
13811381
}}
13821382
>
1383-
<svg
1384-
xmlns="http://www.w3.org/2000/svg"
1385-
viewBox="0 0 24 24"
1386-
fill="currentColor"
1387-
className="w-5 h-5 text-red-500"
1388-
>
1389-
<path d="M7 4V2H17V4H22V6H20V21C20 21.5523 19.5523 22 19 22H5C4.44772 22 4 21.5523 4 21V6H2V4H7ZM6 6V20H18V6H6ZM9 9H11V17H9V9ZM13 9H15V17H13V9Z"></path>
1390-
</svg>
1383+
<Trash2 className="w-5 h-5 text-red-500" />
13911384
</button>
13921385
)}
13931386
</div>
@@ -1438,14 +1431,7 @@ export default function DynamicFormItemComponent({
14381431
}}
14391432
title={t('common.delete')}
14401433
>
1441-
<svg
1442-
xmlns="http://www.w3.org/2000/svg"
1443-
viewBox="0 0 24 24"
1444-
fill="currentColor"
1445-
className="w-4 h-4 text-destructive"
1446-
>
1447-
<path d="M7 4V2H17V4H22V6H20V21C20 21.5523 19.5523 22 19 22H5C4.44772 22 4 21.5523 4 21V6H2V4H7ZM6 6V20H18V6H6ZM9 9H11V17H9V9ZM13 9H15V17H13V9Z"></path>
1448-
</svg>
1434+
<Trash2 className="w-4 h-4 text-destructive" />
14491435
</Button>
14501436
</CardContent>
14511437
</Card>
@@ -1477,14 +1463,7 @@ export default function DynamicFormItemComponent({
14771463
document.getElementById(`file-input-${config.name}`)?.click()
14781464
}
14791465
>
1480-
<svg
1481-
className="w-4 h-4 mr-2"
1482-
xmlns="http://www.w3.org/2000/svg"
1483-
viewBox="0 0 24 24"
1484-
fill="currentColor"
1485-
>
1486-
<path d="M11 11V5H13V11H19V13H13V19H11V13H5V11H11Z"></path>
1487-
</svg>
1466+
<Plus className="w-4 h-4 mr-2" />
14881467
{uploading
14891468
? t('plugins.fileUpload.uploading')
14901469
: t('plugins.fileUpload.chooseFile')}
@@ -1530,14 +1509,7 @@ export default function DynamicFormItemComponent({
15301509
}}
15311510
title={t('common.delete')}
15321511
>
1533-
<svg
1534-
xmlns="http://www.w3.org/2000/svg"
1535-
viewBox="0 0 24 24"
1536-
fill="currentColor"
1537-
className="w-4 h-4 text-destructive"
1538-
>
1539-
<path d="M7 4V2H17V4H22V6H20V21C20 21.5523 19.5523 22 19 22H5C4.44772 22 4 21.5523 4 21V6H2V4H7ZM6 6V20H18V6H6ZM9 9H11V17H9V9ZM13 9H15V17H13V9Z"></path>
1540-
</svg>
1512+
<Trash2 className="w-4 h-4 text-destructive" />
15411513
</Button>
15421514
</CardContent>
15431515
</Card>
@@ -1572,14 +1544,7 @@ export default function DynamicFormItemComponent({
15721544
?.click()
15731545
}
15741546
>
1575-
<svg
1576-
className="w-4 h-4 mr-2"
1577-
xmlns="http://www.w3.org/2000/svg"
1578-
viewBox="0 0 24 24"
1579-
fill="currentColor"
1580-
>
1581-
<path d="M11 11V5H13V11H19V13H13V19H11V13H5V11H11Z"></path>
1582-
</svg>
1547+
<Plus className="w-4 h-4 mr-2" />
15831548
{uploading
15841549
? t('plugins.fileUpload.uploading')
15851550
: t('plugins.fileUpload.addFile')}

web/src/app/home/components/home-sidebar/HomeSidebar.tsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import {
2727
Github,
2828
Zap,
2929
FilePlus2,
30+
Sparkles,
3031
} from 'lucide-react';
3132
import { useTheme } from '@/components/providers/theme-provider';
3233

@@ -1433,15 +1434,7 @@ export default function HomeSidebar({
14331434
onClick={() => handleModelsDialogChange(true)}
14341435
tooltip={t('models.title')}
14351436
>
1436-
<svg
1437-
xmlns="http://www.w3.org/2000/svg"
1438-
viewBox="0 0 24 24"
1439-
fill="currentColor"
1440-
aria-hidden="true"
1441-
className="text-blue-500"
1442-
>
1443-
<path d="M10.6144 17.7956C10.277 18.5682 9.20776 18.5682 8.8704 17.7956L7.99275 15.7854C7.21171 13.9966 5.80589 12.5726 4.0523 11.7942L1.63658 10.7219C.868536 10.381.868537 9.26368 1.63658 8.92276L3.97685 7.88394C5.77553 7.08552 7.20657 5.60881 7.97427 3.75892L8.8633 1.61673C9.19319.821767 10.2916.821765 10.6215 1.61673L11.5105 3.75894C12.2782 5.60881 13.7092 7.08552 15.5079 7.88394L17.8482 8.92276C18.6162 9.26368 18.6162 10.381 17.8482 10.7219L15.4325 11.7942C13.6789 12.5726 12.2731 13.9966 11.492 15.7854L10.6144 17.7956ZM4.53956 9.82234C6.8254 10.837 8.68402 12.5048 9.74238 14.7996 10.8008 12.5048 12.6594 10.837 14.9452 9.82234 12.6321 8.79557 10.7676 7.04647 9.74239 4.71088 8.71719 7.04648 6.85267 8.79557 4.53956 9.82234ZM19.4014 22.6899 19.6482 22.1242C20.0882 21.1156 20.8807 20.3125 21.8695 19.8732L22.6299 19.5353C23.0412 19.3526 23.0412 18.7549 22.6299 18.5722L21.9121 18.2532C20.8978 17.8026 20.0911 16.9698 19.6586 15.9269L19.4052 15.3156C19.2285 14.8896 18.6395 14.8896 18.4628 15.3156L18.2094 15.9269C17.777 16.9698 16.9703 17.8026 15.956 18.2532L15.2381 18.5722C14.8269 18.7549 14.8269 19.3526 15.2381 19.5353L15.9985 19.8732C16.9874 20.3125 17.7798 21.1156 18.2198 22.1242L18.4667 22.6899C18.6473 23.104 19.2207 23.104 19.4014 22.6899ZM18.3745 19.0469 18.937 18.4883 19.4878 19.0469 18.937 19.5898 18.3745 19.0469Z" />
1444-
</svg>
1437+
<Sparkles className="text-blue-500" />
14451438
<span>{t('models.title')}</span>
14461439
</SidebarMenuButton>
14471440
</SidebarMenuItem>

web/src/app/home/components/home-sidebar/sidbarConfigList.tsx

Lines changed: 20 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
import { SidebarChildVO } from '@/app/home/components/home-sidebar/HomeSidebarChild';
22
import i18n from '@/i18n';
3+
import {
4+
Zap,
5+
LayoutDashboard,
6+
Bot,
7+
Workflow,
8+
BookMarked,
9+
Puzzle,
10+
Store,
11+
Hexagon,
12+
Mountain,
13+
} from 'lucide-react';
314

415
const t = (key: string) => {
516
return i18n.t(key);
@@ -10,16 +21,7 @@ export const sidebarConfigList = [
1021
new SidebarChildVO({
1122
id: 'wizard',
1223
name: t('sidebar.quickStart'),
13-
icon: (
14-
<svg
15-
xmlns="http://www.w3.org/2000/svg"
16-
viewBox="0 0 24 24"
17-
fill="currentColor"
18-
className="text-blue-500"
19-
>
20-
<path d="M13 9H21L11 24V15H4L13 0V9ZM11 11V7.22063L7.53238 13H13V17.3944L17.263 11H11Z"></path>
21-
</svg>
22-
),
24+
icon: <Zap className="text-blue-500" />,
2325
route: '/wizard',
2426
description: t('wizard.sidebarDescription'),
2527
helpLink: {
@@ -33,16 +35,7 @@ export const sidebarConfigList = [
3335
new SidebarChildVO({
3436
id: 'monitoring',
3537
name: t('monitoring.title'),
36-
icon: (
37-
<svg
38-
xmlns="http://www.w3.org/2000/svg"
39-
viewBox="0 0 24 24"
40-
fill="currentColor"
41-
className="text-blue-500"
42-
>
43-
<path d="M2 3.9934C2 3.44476 2.45531 3 2.9918 3H21.0082C21.556 3 22 3.44495 22 3.9934V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V3.9934ZM4 5V19H20V5H4ZM6 7H18V9H6V7ZM6 11H18V13H6V11ZM6 15H12V17H6V15Z"></path>
44-
</svg>
45-
),
38+
icon: <LayoutDashboard className="text-blue-500" />,
4639
route: '/home/monitoring',
4740
description: t('monitoring.description'),
4841
helpLink: {
@@ -54,16 +47,7 @@ export const sidebarConfigList = [
5447
new SidebarChildVO({
5548
id: 'bots',
5649
name: t('bots.title'),
57-
icon: (
58-
<svg
59-
xmlns="http://www.w3.org/2000/svg"
60-
viewBox="0 0 24 24"
61-
fill="currentColor"
62-
className="text-blue-500"
63-
>
64-
<path d="M13.5 2C13.5 2.44425 13.3069 2.84339 13 3.11805V5H18C19.6569 5 21 6.34315 21 8V18C21 19.6569 19.6569 21 18 21H6C4.34315 21 3 19.6569 3 18V8C3 6.34315 4.34315 5 6 5H11V3.11805C10.6931 2.84339 10.5 2.44425 10.5 2C10.5 1.17157 11.1716 0.5 12 0.5C12.8284 0.5 13.5 1.17157 13.5 2ZM6 7C5.44772 7 5 7.44772 5 8V18C5 18.5523 5.44772 19 6 19H18C18.5523 19 19 18.5523 19 18V8C19 7.44772 18.5523 7 18 7H13H11H6ZM2 10H0V16H2V10ZM22 10H24V16H22V10ZM9 14.5C9.82843 14.5 10.5 13.8284 10.5 13C10.5 12.1716 9.82843 11.5 9 11.5C8.17157 11.5 7.5 12.1716 7.5 13C7.5 13.8284 8.17157 14.5 9 14.5ZM15 14.5C15.8284 14.5 16.5 13.8284 16.5 13C16.5 12.1716 15.8284 11.5 15 11.5C14.1716 11.5 13.5 12.1716 13.5 13C13.5 13.8284 14.1716 14.5 15 14.5Z"></path>
65-
</svg>
66-
),
50+
icon: <Bot className="text-blue-500" />,
6751
route: '/home/bots',
6852
description: t('bots.description'),
6953
helpLink: {
@@ -76,16 +60,7 @@ export const sidebarConfigList = [
7660
new SidebarChildVO({
7761
id: 'pipelines',
7862
name: t('pipelines.title'),
79-
icon: (
80-
<svg
81-
xmlns="http://www.w3.org/2000/svg"
82-
viewBox="0 0 24 24"
83-
fill="currentColor"
84-
className="text-blue-500"
85-
>
86-
<path d="M6 21.5C4.067 21.5 2.5 19.933 2.5 18C2.5 16.067 4.067 14.5 6 14.5C7.5852 14.5 8.92427 15.5539 9.35481 16.9992L15 16.9994V15L17 14.9994V9.24339L14.757 6.99938H9V9.00003H3V3.00003H9V4.99939H14.757L18 1.75739L22.2426 6.00003L19 9.24139V14.9994L21 15V21H15V18.9994L9.35499 19.0003C8.92464 20.4459 7.58543 21.5 6 21.5ZM6 16.5C5.17157 16.5 4.5 17.1716 4.5 18C4.5 18.8285 5.17157 19.5 6 19.5C6.82843 19.5 7.5 18.8285 7.5 18C7.5 17.1716 6.82843 16.5 6 16.5ZM19 17H17V19H19V17ZM18 4.58581L16.5858 6.00003L18 7.41424L19.4142 6.00003L18 4.58581ZM7 5.00003H5V7.00003H7V5.00003Z"></path>
87-
</svg>
88-
),
63+
icon: <Workflow className="text-blue-500" />,
8964
route: '/home/pipelines',
9065
description: t('pipelines.description'),
9166
helpLink: {
@@ -98,16 +73,7 @@ export const sidebarConfigList = [
9873
new SidebarChildVO({
9974
id: 'knowledge',
10075
name: t('knowledge.title'),
101-
icon: (
102-
<svg
103-
xmlns="http://www.w3.org/2000/svg"
104-
viewBox="0 0 24 24"
105-
fill="currentColor"
106-
className="text-blue-500"
107-
>
108-
<path d="M3 18.5V5C3 3.34315 4.34315 2 6 2H20C20.5523 2 21 2.44772 21 3V21C21 21.5523 20.5523 22 20 22H6.5C4.567 22 3 20.433 3 18.5ZM19 20V17H6.5C5.67157 17 5 17.6716 5 18.5C5 19.3284 5.67157 20 6.5 20H19ZM10 4H6C5.44772 4 5 4.44772 5 5V15.3368C5.45463 15.1208 5.9632 15 6.5 15H19V4H17V12L13.5 10L10 12V4Z"></path>
109-
</svg>
110-
),
76+
icon: <BookMarked className="text-blue-500" />,
11177
route: '/home/knowledge',
11278
description: t('knowledge.description'),
11379
helpLink: {
@@ -121,16 +87,7 @@ export const sidebarConfigList = [
12187
new SidebarChildVO({
12288
id: 'plugins',
12389
name: t('sidebar.installedPlugins'),
124-
icon: (
125-
<svg
126-
xmlns="http://www.w3.org/2000/svg"
127-
viewBox="0 0 24 24"
128-
fill="currentColor"
129-
className="text-blue-500"
130-
>
131-
<path d="M7 5C7 2.79086 8.79086 1 11 1C13.2091 1 15 2.79086 15 5H18C18.5523 5 19 5.44772 19 6V9C21.2091 9 23 10.7909 23 13C23 15.2091 21.2091 17 19 17V20C19 20.5523 18.5523 21 18 21H4C3.44772 21 3 20.5523 3 20V6C3 5.44772 3.44772 5 4 5H7ZM11 3C9.89543 3 9 3.89543 9 5C9 5.23554 9.0403 5.45952 9.11355 5.66675C9.22172 5.97282 9.17461 6.31235 8.98718 6.57739C8.79974 6.84243 8.49532 7 8.17071 7H5V19H17V15.8293C17 15.5047 17.1576 15.2003 17.4226 15.0128C17.6877 14.8254 18.0272 14.7783 18.3332 14.8865C18.5405 14.9597 18.7645 15 19 15C20.1046 15 21 14.1046 21 13C21 11.8954 20.1046 11 19 11C18.7645 11 18.5405 11.0403 18.3332 11.1135C18.0272 11.2217 17.6877 11.1746 17.4226 10.9872C17.1576 10.7997 17 10.4953 17 10.1707V7H13.8293C13.5047 7 13.2003 6.84243 13.0128 6.57739C12.8254 6.31235 12.7783 5.97282 12.8865 5.66675C12.9597 5.45952 13 5.23555 13 5C13 3.89543 12.1046 3 11 3Z"></path>
132-
</svg>
133-
),
90+
icon: <Puzzle className="text-blue-500" />,
13491
route: '/home/plugins',
13592
description: t('plugins.description'),
13693
helpLink: {
@@ -143,16 +100,7 @@ export const sidebarConfigList = [
143100
new SidebarChildVO({
144101
id: 'market',
145102
name: t('sidebar.pluginMarket'),
146-
icon: (
147-
<svg
148-
xmlns="http://www.w3.org/2000/svg"
149-
viewBox="0 0 24 24"
150-
fill="currentColor"
151-
className="text-blue-500"
152-
>
153-
<path d="M21 13.242V20H22V22H2V20H3V13.242C1.79401 12.435 1 11.0602 1 9.5C1 8.67286 1.25027 7.90335 1.67755 7.2612L4.5547 2.36088C4.80513 1.93859 5.26028 1.67578 5.76 1.67578H18.24C18.7397 1.67578 19.1949 1.93859 19.4453 2.36088L22.3225 7.2612C22.7497 7.90335 23 8.67286 23 9.5C23 11.0602 22.206 12.435 21 13.242ZM19 13.972C18.4511 14.0706 17.8794 14.0706 17.3305 13.972C16.1644 13.7566 15.1377 13.0712 14.5 12.1C13.8623 13.0712 12.8356 13.7566 11.6695 13.972C11.1206 14.0706 10.5489 14.0706 10 13.972C9.45108 14.0706 8.87938 14.0706 8.33053 13.972C7.16437 13.7566 6.13771 13.0712 5.5 12.1C4.86229 13.0712 3.83563 13.7566 2.66947 13.972C2.44883 14.0124 2.22434 14.0352 2 14.0404V20H5V15H10V20H19V13.972Z"></path>
154-
</svg>
155-
),
103+
icon: <Store className="text-blue-500" />,
156104
route: '/home/market',
157105
description: t('plugins.description'),
158106
helpLink: {
@@ -165,16 +113,7 @@ export const sidebarConfigList = [
165113
new SidebarChildVO({
166114
id: 'mcp',
167115
name: t('sidebar.mcpServers'),
168-
icon: (
169-
<svg
170-
xmlns="http://www.w3.org/2000/svg"
171-
viewBox="0 0 24 24"
172-
fill="currentColor"
173-
className="text-blue-500"
174-
>
175-
<path d="M4.5 7.65311V16.3469L12 20.689L19.5 16.3469V7.65311L12 3.311L4.5 7.65311ZM12 1L21.5 6.5V17.5L12 23L2.5 17.5V6.5L12 1ZM6.49896 9.97065L11 12.5765V17.625H13V12.5765L17.501 9.97066L16.499 8.2398L12 10.8445L7.50104 8.2398L6.49896 9.97065Z"></path>
176-
</svg>
177-
),
116+
icon: <Hexagon className="text-blue-500" />,
178117
route: '/home/mcp',
179118
description: t('mcp.title'),
180119
helpLink: {
@@ -186,16 +125,7 @@ export const sidebarConfigList = [
186125
new SidebarChildVO({
187126
id: 'skills',
188127
name: t('skills.title'),
189-
icon: (
190-
<svg
191-
xmlns="http://www.w3.org/2000/svg"
192-
viewBox="0 0 24 24"
193-
fill="currentColor"
194-
className="text-blue-500"
195-
>
196-
<path d="M15 5.25L16.7249 2.75L19.2249 4.47494L17.4999 6.97494L15 5.25ZM7.5 11.25L2.0001 4L8.00006 4.00002L10.0001 7.00001L7.5 11.25ZM19.0001 13.0001L22.0001 20.0001H2.00006L9.97488 11.5248L11.4999 14L15 14.0001L19.0001 13.0001ZM4.50012 18.0001H18.0001L15.753 12.6844L12.0219 13.3488L9.69693 9.41455L4.50012 18.0001Z"></path>
197-
</svg>
198-
),
128+
icon: <Mountain className="text-blue-500" />,
199129
route: '/home/skills',
200130
description: t('skills.description'),
201131
helpLink: {

web/src/app/home/knowledge/components/kb-card/KBCard.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { KnowledgeBaseVO } from '@/app/home/knowledge/components/kb-card/KBCardVO';
22
import { useTranslation } from 'react-i18next';
33
import styles from './KBCard.module.css';
4+
import { Clock } from 'lucide-react';
45

56
export default function KBCard({ kbCardVO }: { kbCardVO: KnowledgeBaseVO }) {
67
const { t } = useTranslation();
@@ -27,14 +28,7 @@ export default function KBCard({ kbCardVO }: { kbCardVO: KnowledgeBaseVO }) {
2728
</div>
2829

2930
<div className={`${styles.basicInfoLastUpdatedTimeContainer}`}>
30-
<svg
31-
className={`${styles.basicInfoUpdateTimeIcon}`}
32-
xmlns="http://www.w3.org/2000/svg"
33-
viewBox="0 0 24 24"
34-
fill="currentColor"
35-
>
36-
<path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM13 12H17V14H11V7H13V12Z"></path>
37-
</svg>
31+
<Clock className={`${styles.basicInfoUpdateTimeIcon}`} />
3832
<div className={`${styles.basicInfoUpdateTimeText}`}>
3933
{t('knowledge.updateTime')}
4034
{kbCardVO.lastUpdatedTimeAgo}

0 commit comments

Comments
 (0)