90 lines
3.0 KiB
TypeScript
90 lines
3.0 KiB
TypeScript
import React from 'react';
|
|
import {
|
|
AppstoreOutlined, SettingOutlined, UserOutlined,
|
|
TeamOutlined, SafetyCertificateOutlined, FileTextOutlined,
|
|
HomeOutlined, BarChartOutlined, DatabaseOutlined,
|
|
SafetyOutlined, KeyOutlined, ToolOutlined,
|
|
NotificationOutlined, MessageOutlined, MailOutlined,
|
|
CloudOutlined, DownloadOutlined, UploadOutlined,
|
|
LockOutlined, UnlockOutlined, EyeOutlined,
|
|
EditOutlined, DeleteOutlined, PlusOutlined,
|
|
AuditOutlined, BookOutlined, CalendarOutlined,
|
|
DashboardOutlined, ExperimentOutlined, FireOutlined,
|
|
GlobalOutlined, InsuranceOutlined, MedicineBoxOutlined,
|
|
ProjectOutlined, ReadOutlined, RocketOutlined,
|
|
SaveOutlined, ShopOutlined, ShoppingOutlined,
|
|
TagOutlined, TrophyOutlined, VideoCameraOutlined,
|
|
AudioOutlined, UnorderedListOutlined,
|
|
BulbOutlined, PartitionOutlined, RobotOutlined,
|
|
LaptopOutlined, HistoryOutlined, FileSearchOutlined
|
|
} from "@ant-design/icons";
|
|
|
|
export const ICON_MAP: Record<string, React.ReactNode> = {
|
|
'appstore': <AppstoreOutlined />,
|
|
'setting': <SettingOutlined />,
|
|
'user': <UserOutlined />,
|
|
'team': <TeamOutlined />,
|
|
'safety': <SafetyCertificateOutlined />,
|
|
'file': <FileTextOutlined />,
|
|
'home': <HomeOutlined />,
|
|
'chart': <BarChartOutlined />,
|
|
'database': <DatabaseOutlined />,
|
|
'key': <KeyOutlined />,
|
|
'tool': <ToolOutlined />,
|
|
'notification': <NotificationOutlined />,
|
|
'message': <MessageOutlined />,
|
|
'mail': <MailOutlined />,
|
|
'cloud': <CloudOutlined />,
|
|
'download': <DownloadOutlined />,
|
|
'upload': <UploadOutlined />,
|
|
'lock': <LockOutlined />,
|
|
'unlock': <UnlockOutlined />,
|
|
'eye': <EyeOutlined />,
|
|
'edit': <EditOutlined />,
|
|
'delete': <DeleteOutlined />,
|
|
'plus': <PlusOutlined />,
|
|
'audit': <AuditOutlined />,
|
|
'book': <BookOutlined />,
|
|
'calendar': <CalendarOutlined />,
|
|
'dashboard': <DashboardOutlined />,
|
|
'experiment': <ExperimentOutlined />,
|
|
'fire': <FireOutlined />,
|
|
'global': <GlobalOutlined />,
|
|
'insurance': <InsuranceOutlined />,
|
|
'medicine': <MedicineBoxOutlined />,
|
|
'project': <ProjectOutlined />,
|
|
'read': <ReadOutlined />,
|
|
'rocket': <RocketOutlined />,
|
|
'save': <SaveOutlined />,
|
|
'shop': <ShopOutlined />,
|
|
'shopping': <ShoppingOutlined />,
|
|
'tag': <TagOutlined />,
|
|
'trophy': <TrophyOutlined />,
|
|
'video': <VideoCameraOutlined />,
|
|
'audio': <AudioOutlined />,
|
|
'list': <UnorderedListOutlined />,
|
|
|
|
// DB Icon Mappings
|
|
'strategy': <BulbOutlined />,
|
|
'workspace': <PartitionOutlined />,
|
|
'ai': <RobotOutlined />,
|
|
'system': <SettingOutlined />, // Reusing setting or using another
|
|
'kb': <BookOutlined />,
|
|
'insight': <EyeOutlined />,
|
|
'meeting': <VideoCameraOutlined />,
|
|
'template': <FileTextOutlined />,
|
|
'history': <HistoryOutlined />,
|
|
'hot': <FireOutlined />,
|
|
'voice': <AudioOutlined />,
|
|
};
|
|
|
|
export const ICON_LIST = Object.keys(ICON_MAP).map(key => ({
|
|
name: key,
|
|
icon: ICON_MAP[key]
|
|
}));
|
|
|
|
export const getIcon = (iconName?: string | null) => {
|
|
if (!iconName) return null;
|
|
return ICON_MAP[iconName] || <AppstoreOutlined />;
|
|
};
|