1+ import { Link } from 'react-router-dom' ;
12import { useLanguage } from '../contexts/LanguageContext' ;
23import { useLegal } from '../contexts/LegalContext' ;
34import { ExternalLink } from 'lucide-react' ;
45
56const Footer = ( ) => {
67 const { t } = useLanguage ( ) ;
78 const {
8- openPrivacy,
9- openTerms,
10- openFeatures,
11- openPricing,
12- openUpdates,
13- openAbout,
149 } = useLegal ( ) ;
1510
1611 return (
@@ -19,9 +14,9 @@ const Footer = () => {
1914 < div className = 'mb-12 grid gap-8 md:grid-cols-4' >
2015 { /* Brand */ }
2116 < div className = 'md:col-span-2' >
22- < h3 className = 'text-fluxby-light mb-4 text-3xl font-black' >
17+ < Link to = "/" className = 'text-fluxby-light mb-4 text-3xl font-black hover:opacity-80 transition-opacity block ' >
2318 Fluxby
24- </ h3 >
19+ </ Link >
2520 < p className = 'mb-6 max-w-md text-gray-400' >
2621 { t . footer . description }
2722 </ p >
@@ -32,36 +27,36 @@ const Footer = () => {
3227 < h4 className = 'mb-4 text-lg font-bold' > { t . footer . product . title } </ h4 >
3328 < ul className = 'space-y-2 text-gray-400' >
3429 < li >
35- < button
36- onClick = { openFeatures }
30+ < Link
31+ to = "/features"
3732 className = 'hover:text-fluxby-light transition-colors'
3833 >
3934 { t . footer . product . features }
40- </ button >
35+ </ Link >
4136 </ li >
4237 < li >
43- < button
44- onClick = { openPricing }
38+ < Link
39+ to = "/pricing"
4540 className = 'hover:text-fluxby-light transition-colors'
4641 >
4742 { t . footer . product . pricing }
48- </ button >
43+ </ Link >
4944 </ li >
5045 < li >
51- < button
52- onClick = { openUpdates }
46+ < Link
47+ to = "/updates"
5348 className = 'hover:text-fluxby-light transition-colors'
5449 >
5550 { t . footer . product . updates }
56- </ button >
51+ </ Link >
5752 </ li >
5853 < li >
59- < button
60- onClick = { openAbout }
54+ < Link
55+ to = "/about"
6156 className = 'hover:text-fluxby-light transition-colors'
6257 >
6358 { t . footer . product . about }
64- </ button >
59+ </ Link >
6560 </ li >
6661 </ ul >
6762 </ div >
@@ -71,42 +66,38 @@ const Footer = () => {
7166 < h4 className = 'mb-4 text-lg font-bold' > { t . footer . support . title } </ h4 >
7267 < ul className = 'space-y-2 text-gray-400' >
7368 < li >
74- < a
75- href = '/help'
76- target = '_blank'
77- rel = 'noopener noreferrer'
69+ < Link
70+ to = '/help'
7871 className = 'hover:text-fluxby-light inline-flex items-center gap-1.5 transition-colors'
7972 >
8073 { t . footer . support . helpCenter }
8174 < ExternalLink className = 'h-3.5 w-3.5' />
82- </ a >
75+ </ Link >
8376 </ li >
8477 < li >
85- < a
86- href = '/docs'
87- target = '_blank'
88- rel = 'noopener noreferrer'
78+ < Link
79+ to = '/docs'
8980 className = 'hover:text-fluxby-light inline-flex items-center gap-1.5 transition-colors'
9081 >
9182 { t . footer . support . developerDocs }
9283 < ExternalLink className = 'h-3.5 w-3.5' />
93- </ a >
84+ </ Link >
9485 </ li >
9586 < li >
96- < button
97- onClick = { openPrivacy }
87+ < Link
88+ to = "/privacy"
9889 className = 'hover:text-fluxby-light transition-colors'
9990 >
10091 { t . footer . support . privacyPolicy }
101- </ button >
92+ </ Link >
10293 </ li >
10394 < li >
104- < button
105- onClick = { openTerms }
95+ < Link
96+ to = "/terms"
10697 className = 'hover:text-fluxby-light transition-colors'
10798 >
10899 { t . footer . support . termsOfService }
109- </ button >
100+ </ Link >
110101 </ li >
111102 </ ul >
112103 </ div >
@@ -117,7 +108,9 @@ const Footer = () => {
117108 < p className = 'text-sm text-gray-400' > { t . footer . copyright } </ p >
118109
119110 < a
120- href = '#'
111+ href = 'https://github.com/houke/fluxby'
112+ target = '_blank'
113+ rel = 'noopener noreferrer'
121114 className = 'hover:text-fluxby-light flex items-center gap-2 text-gray-400 transition-colors'
122115 aria-label = 'Contribute on GitHub'
123116 >
0 commit comments