11import { FaRegEnvelope } from "react-icons/fa6" ;
22import { toast } from "sonner" ;
33
4+ import { Button } from "@/components/ui/button" ;
45import { Tooltip , TooltipContent , TooltipProvider , TooltipTrigger } from "@/components/ui/tooltip" ;
56import { UserInfo } from "@/data/profile" ;
67
@@ -14,6 +15,15 @@ export default function Introduction() {
1415}
1516
1617function Profile ( ) {
18+ const isResumeLink = ( label : string ) => {
19+ const normalized = label . toLowerCase ( ) ;
20+ return (
21+ normalized . includes ( "résumé" ) ||
22+ normalized . includes ( "resume" ) ||
23+ normalized . includes ( "cv" )
24+ ) ;
25+ } ;
26+
1727 return (
1828 < div className = "flex flex-col items-center gap-y-4 shrink-0" >
1929 < img
@@ -27,27 +37,52 @@ function Profile() {
2737 < EmailCopy email = { UserInfo . email } />
2838 < TooltipProvider delayDuration = { 100 } >
2939 < div className = "flex flex-row flex-wrap justify-center gap-y-2 gap-x-4 py-2 text-foreground max-w-64" >
30- { UserInfo . links . map ( ( item , index ) => (
31- < a
32- key = { index }
33- href = { item . url }
34- target = "_blank"
35- rel = "noopener noreferrer"
36- className = "shrink-0"
37- >
38- < Tooltip >
39- < TooltipTrigger >
40- < item . icon
41- className = "w-8 h-8 cursor-pointer opacity-80 hover:opacity-100 transition-opacity duration-50"
42- aria-label = { item . name }
43- />
40+ { UserInfo . links . map ( ( item ) =>
41+ isResumeLink ( item . name ) ? (
42+ < Tooltip key = { item . name } >
43+ < TooltipTrigger asChild >
44+ < Button
45+ asChild
46+ size = "sm"
47+ className = "rounded-full border-2 border-foreground/20 bg-foreground/65 px-2 text-background hover:bg-foreground/55 hover:text-background dark:border-foreground/40 dark:bg-foreground/85 dark:text-background dark:hover:bg-foreground"
48+ >
49+ < a
50+ href = { item . url }
51+ target = "_blank"
52+ rel = "noopener noreferrer"
53+ >
54+ < b className = "font-['Roboto_Condensed',_Arial_Narrow,_Arial,_sans-serif] text-lg font-bold leading-none tracking-tight" >
55+ CV
56+ </ b >
57+ </ a >
58+ </ Button >
4459 </ TooltipTrigger >
4560 < TooltipContent side = "bottom" >
46- < p > { item . name } </ p >
61+ < p > Resumé </ p >
4762 </ TooltipContent >
4863 </ Tooltip >
49- </ a >
50- ) ) }
64+ ) : (
65+ < a
66+ key = { item . name }
67+ href = { item . url }
68+ target = "_blank"
69+ rel = "noopener noreferrer"
70+ className = "shrink-0"
71+ >
72+ < Tooltip >
73+ < TooltipTrigger >
74+ < item . icon
75+ className = "w-8 h-8 cursor-pointer opacity-80 hover:opacity-100 transition-opacity duration-50"
76+ aria-label = { item . name }
77+ />
78+ </ TooltipTrigger >
79+ < TooltipContent side = "bottom" >
80+ < p > { item . name } </ p >
81+ </ TooltipContent >
82+ </ Tooltip >
83+ </ a >
84+ )
85+ ) }
5186 </ div >
5287 </ TooltipProvider >
5388 </ div >
@@ -61,7 +96,7 @@ function Biography() {
6196 < div className = "text-2xl font-semibold mb-2" > About Me</ div >
6297 { UserInfo . biography ? (
6398 < div
64- className = "prose dark:prose-invert text-justify text-base/6 "
99+ className = "prose dark:prose-invert text-justify text-lg/7 "
65100 dangerouslySetInnerHTML = { { __html : UserInfo . biography } }
66101 aria-label = "User biography"
67102 />
0 commit comments