11import { HStack , Text } from '@chakra-ui/react' ;
2- import { ChipProps , Language } from './types' ;
2+ import { ChipProps , Skills } from './types' ;
33import {
44 ChakraUI ,
5+ Css ,
56 Express ,
7+ Git ,
8+ Html ,
69 I18next ,
10+ Jest ,
711 Mysql ,
812 NodeJs ,
913 Python ,
@@ -13,20 +17,79 @@ import {
1317 Typescript ,
1418 Zustand ,
1519} from '@assets/icons/Chips' ;
20+ import { SVGProps } from 'react' ;
1621
17- const ChipMap : Record < Language , { title : string ; Icon : React . ReactNode } > = {
18- [ Language . python ] : { title : 'Python' , Icon : < Python /> } ,
19- [ Language . typescript ] : { title : 'Typescript' , Icon : < Typescript /> } ,
20- [ Language . chakra ] : { title : 'Chakra UI' , Icon : < ChakraUI /> } ,
21- [ Language . react ] : { title : 'React' , Icon : < React /> } ,
22- [ Language . node ] : { title : 'NodeJs' , Icon : < NodeJs /> } ,
23- [ Language . express ] : { title : 'Express' , Icon : < Express /> } ,
24- [ Language . mysql ] : { title : 'MySql' , Icon : < Mysql /> } ,
25- [ Language . i18n ] : { title : 'I18next' , Icon : < I18next /> } ,
26- [ Language . supabase ] : { title : 'Supabase' , Icon : < Supabase /> } ,
27- [ Language . tanstack ] : { title : 'Tanstack' , Icon : < Tanstack /> } ,
28- [ Language . zustand ] : { title : 'Zustand' , Icon : < Zustand /> } ,
29- [ Language . more ] : { title : 'More...' , Icon : < Python /> } ,
22+ export const ChipMap : Record <
23+ Skills ,
24+ {
25+ title : string ;
26+ Icon : ( props : SVGProps < SVGSVGElement > ) => JSX . Element ;
27+ }
28+ > = {
29+ [ Skills . python ] : {
30+ title : 'Python' ,
31+ Icon : ( props : SVGProps < SVGSVGElement > ) => < Python { ...props } /> ,
32+ } ,
33+ [ Skills . typescript ] : {
34+ title : 'Typescript' ,
35+ Icon : ( props : SVGProps < SVGSVGElement > ) => < Typescript { ...props } /> ,
36+ } ,
37+ [ Skills . chakra ] : {
38+ title : 'Chakra UI' ,
39+ Icon : ( props : SVGProps < SVGSVGElement > ) => < ChakraUI { ...props } /> ,
40+ } ,
41+ [ Skills . react ] : {
42+ title : 'React' ,
43+ Icon : ( props : SVGProps < SVGSVGElement > ) => < React { ...props } /> ,
44+ } ,
45+ [ Skills . node ] : {
46+ title : 'NodeJs' ,
47+ Icon : ( props : SVGProps < SVGSVGElement > ) => < NodeJs { ...props } /> ,
48+ } ,
49+ [ Skills . express ] : {
50+ title : 'Express' ,
51+ Icon : ( props : SVGProps < SVGSVGElement > ) => < Express { ...props } /> ,
52+ } ,
53+ [ Skills . mysql ] : {
54+ title : 'MySql' ,
55+ Icon : ( props : SVGProps < SVGSVGElement > ) => < Mysql { ...props } /> ,
56+ } ,
57+ [ Skills . i18n ] : {
58+ title : 'I18next' ,
59+ Icon : ( props : SVGProps < SVGSVGElement > ) => < I18next { ...props } /> ,
60+ } ,
61+ [ Skills . supabase ] : {
62+ title : 'Supabase' ,
63+ Icon : ( props : SVGProps < SVGSVGElement > ) => < Supabase { ...props } /> ,
64+ } ,
65+ [ Skills . tanstack ] : {
66+ title : 'Tanstack' ,
67+ Icon : ( props : SVGProps < SVGSVGElement > ) => < Tanstack { ...props } /> ,
68+ } ,
69+ [ Skills . zustand ] : {
70+ title : 'Zustand' ,
71+ Icon : ( props : SVGProps < SVGSVGElement > ) => < Zustand { ...props } /> ,
72+ } ,
73+ [ Skills . git ] : {
74+ title : 'Git' ,
75+ Icon : ( props : SVGProps < SVGSVGElement > ) => < Git { ...props } /> ,
76+ } ,
77+ [ Skills . jest ] : {
78+ title : 'Jest' ,
79+ Icon : ( props : SVGProps < SVGSVGElement > ) => < Jest { ...props } /> ,
80+ } ,
81+ [ Skills . html ] : {
82+ title : 'HTML' ,
83+ Icon : ( props : SVGProps < SVGSVGElement > ) => < Html { ...props } /> ,
84+ } ,
85+ [ Skills . css ] : {
86+ title : 'CSS' ,
87+ Icon : ( props : SVGProps < SVGSVGElement > ) => < Css { ...props } /> ,
88+ } ,
89+ [ Skills . more ] : {
90+ title : 'More...' ,
91+ Icon : ( _props : SVGProps < SVGSVGElement > ) => < > </ > ,
92+ } ,
3093} ;
3194
3295const Chip = ( { type, size = 'md' } : ChipProps ) => {
@@ -41,7 +104,7 @@ const Chip = ({ type, size = 'md' }: ChipProps) => {
41104 color = "white"
42105 >
43106 < Text fontSize = "sm" > { ChipMap [ type ] . title } </ Text >
44- { ChipMap [ type ] . Icon }
107+ { ChipMap [ type ] . Icon ( { } ) }
45108 </ HStack >
46109 ) ;
47110} ;
0 commit comments