Skip to content

Commit 89e2ec7

Browse files
committed
Move iconMap to models for reuse
Refactored the iconMap definition from HomeInput.tsx to homeInput.tsx to centralize icon mapping logic and enable reuse across components. Updated imports and usage accordingly.
1 parent bb75af5 commit 89e2ec7

File tree

2 files changed

+42
-41
lines changed

2 files changed

+42
-41
lines changed

src/frontend/src/components/content/HomeInput.tsx

Lines changed: 3 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,15 @@ import {
44
Caption1,
55
Title2,
66
} from "@fluentui/react-components";
7-
import {
8-
Desktop20Regular,
9-
BookmarkMultiple20Regular,
10-
Search20Regular,
11-
Wrench20Regular,
12-
Person20Regular,
13-
Building20Regular,
14-
Document20Regular,
15-
Database20Regular,
16-
Code20Regular,
17-
Play20Regular,
18-
Shield20Regular,
19-
Globe20Regular,
20-
Clipboard20Regular,
21-
WindowConsole20Regular,
22-
} from '@fluentui/react-icons';
7+
238
import React, { useRef, useEffect, useState } from "react";
249
import { useNavigate, useLocation } from "react-router-dom";
2510

2611
import "./../../styles/Chat.css";
2712
import "../../styles/prism-material-oceanic.css";
2813
import "./../../styles/HomeInput.css";
2914

30-
import { HomeInputProps, QuickTask } from "../../models/homeInput";
15+
import { HomeInputProps, iconMap, QuickTask } from "../../models/homeInput";
3116
import { TeamConfig } from "../../models/Team";
3217
import { TaskService } from "../../services/TaskService";
3318
import { NewTaskService } from "../../services/NewTaskService";
@@ -37,6 +22,7 @@ import ChatInput from "@/coral/modules/ChatInput";
3722
import InlineToaster, { useInlineToaster } from "../toast/InlineToaster";
3823
import PromptCard from "@/coral/components/PromptCard";
3924
import { Send } from "@/coral/imports/bundleicons";
25+
import { Clipboard20Regular } from "@fluentui/react-icons";
4026

4127
// Icon mapping function to convert string icons to FluentUI icons
4228
const getIconFromString = (iconString: string | React.ReactNode): React.ReactNode => {
@@ -45,30 +31,6 @@ const getIconFromString = (iconString: string | React.ReactNode): React.ReactNod
4531
return iconString;
4632
}
4733

48-
const iconMap: Record<string, React.ReactNode> = {
49-
// Task/Logo icons
50-
'Wrench': <Wrench20Regular />,
51-
'TestTube': <Clipboard20Regular />, // Fallback since TestTube20Regular doesn't exist
52-
'Terminal': <WindowConsole20Regular />,
53-
'MonitorCog': <Desktop20Regular />,
54-
'BookMarked': <BookmarkMultiple20Regular />,
55-
'Search': <Search20Regular />,
56-
'Robot': <Person20Regular />, // Fallback since Robot20Regular doesn't exist
57-
'Code': <Code20Regular />,
58-
'Play': <Play20Regular />,
59-
'Shield': <Shield20Regular />,
60-
'Globe': <Globe20Regular />,
61-
'Person': <Person20Regular />,
62-
'Database': <Database20Regular />,
63-
'Document': <Document20Regular />,
64-
'Building': <Building20Regular />,
65-
'Desktop': <Desktop20Regular />,
66-
67-
// Default fallback
68-
'📋': <Clipboard20Regular />,
69-
'default': <Clipboard20Regular />,
70-
};
71-
7234
return iconMap[iconString] || iconMap['default'] || <Clipboard20Regular />;
7335
};
7436

src/frontend/src/models/homeInput.tsx

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
1+
import {
2+
Desktop20Regular,
3+
BookmarkMultiple20Regular,
4+
Search20Regular,
5+
Wrench20Regular,
6+
Person20Regular,
7+
Building20Regular,
8+
Document20Regular,
9+
Database20Regular,
10+
Code20Regular,
11+
Play20Regular,
12+
Shield20Regular,
13+
Globe20Regular,
14+
Clipboard20Regular,
15+
WindowConsole20Regular,
16+
} from '@fluentui/react-icons';
117
export interface QuickTask {
218
id: string;
319
title: string;
@@ -8,5 +24,28 @@ export interface QuickTask {
824
export interface HomeInputProps {
925
selectedTeam?: TeamConfig | null;
1026
}
27+
export const iconMap: Record<string, React.ReactNode> = {
28+
// Task/Logo icons
29+
'Wrench': <Wrench20Regular />,
30+
'TestTube': <Clipboard20Regular />, // Fallback since TestTube20Regular doesn't exist
31+
'Terminal': <WindowConsole20Regular />,
32+
'MonitorCog': <Desktop20Regular />,
33+
'BookMarked': <BookmarkMultiple20Regular />,
34+
'Search': <Search20Regular />,
35+
'Robot': <Person20Regular />, // Fallback since Robot20Regular doesn't exist
36+
'Code': <Code20Regular />,
37+
'Play': <Play20Regular />,
38+
'Shield': <Shield20Regular />,
39+
'Globe': <Globe20Regular />,
40+
'Person': <Person20Regular />,
41+
'Database': <Database20Regular />,
42+
'Document': <Document20Regular />,
43+
'Building': <Building20Regular />,
44+
'Desktop': <Desktop20Regular />,
45+
46+
// Default fallback
47+
'📋': <Clipboard20Regular />,
48+
'default': <Clipboard20Regular />,
49+
};
1150

1251
import { TeamConfig } from './Team';

0 commit comments

Comments
 (0)