@@ -3,59 +3,59 @@ import { useLanguage } from "./LanguageContext";
33import clsx from "clsx" ;
44
55const languages = [
6- { label : "C#" , value : "csharp" , brand : "#9179E4" } ,
7- { label : "Java" , value : "java" , brand : "#f89820" } ,
8- { label : "Python" , value : "python" , brand : "#fbcb24" } ,
9- { label : "PHP" , value : "php" , brand : "#8993be" } ,
10- { label : "Node.JS " , value : "nodejs" , brand : "#3c873a" } ,
6+ { label : "C#" , value : "csharp" , brand : "#9179E4" } ,
7+ { label : "Java" , value : "java" , brand : "#f89820" } ,
8+ { label : "Python" , value : "python" , brand : "#fbcb24" } ,
9+ { label : "PHP" , value : "php" , brand : "#8993be" } ,
10+ { label : "Node.js " , value : "nodejs" , brand : "#3c873a" } ,
1111] ;
1212
1313type LanguageSwitcherProps = {
14- supportedLanguages : string [ ] ;
14+ supportedLanguages : string [ ] ;
1515} ;
1616
1717export default function LanguageSwitcher ( {
18- supportedLanguages,
18+ supportedLanguages,
1919} : LanguageSwitcherProps ) {
20- const { language, setLanguage } = useLanguage ( ) ;
20+ const { language, setLanguage } = useLanguage ( ) ;
2121
22- useEffect ( ( ) => {
23- if ( ! supportedLanguages . includes ( language ) ) {
24- setLanguage ( supportedLanguages [ 0 ] ) ;
25- }
26- } , [ supportedLanguages , language , setLanguage ] ) ;
22+ useEffect ( ( ) => {
23+ if ( ! supportedLanguages . includes ( language ) ) {
24+ setLanguage ( supportedLanguages [ 0 ] ) ;
25+ }
26+ } , [ supportedLanguages , language , setLanguage ] ) ;
2727
28- return (
29- < div className = "flex flex-wrap gap-2 mb-8" >
30- { languages
31- . filter ( ( lang ) => supportedLanguages . includes ( lang . value ) )
32- . map ( ( lang ) => {
33- const isActive = language === lang . value ;
28+ return (
29+ < div className = "flex flex-wrap gap-2 mb-8" >
30+ { languages
31+ . filter ( ( lang ) => supportedLanguages . includes ( lang . value ) )
32+ . map ( ( lang ) => {
33+ const isActive = language === lang . value ;
3434
35- return (
36- < button
37- key = { lang . value }
38- type = "button"
39- onClick = { ( ) => setLanguage ( lang . value ) }
40- className = { clsx (
41- "px-3 py-1.5 rounded-md border text-sm transition-colors cursor-pointer" ,
42- "border-gray-300 text-gray-500 hover:bg-black/5 hover:border-gray-500 hover:text-gray-600" ,
43- "dark:text-gray-300 dark:border-gray-600 dark:hover:text-gray-200 dark:hover:border-gray-400 dark:hover:bg-white/5" ,
44- ) }
45- style = {
46- isActive
47- ? {
48- backgroundColor : `${ lang . brand } 20` ,
49- color : lang . brand ,
50- borderColor : lang . brand ,
51- }
52- : { }
53- }
54- >
55- { lang . label }
56- </ button >
57- ) ;
58- } ) }
59- </ div >
60- ) ;
35+ return (
36+ < button
37+ key = { lang . value }
38+ type = "button"
39+ onClick = { ( ) => setLanguage ( lang . value ) }
40+ className = { clsx (
41+ "px-3 py-1.5 rounded-md border text-sm transition-colors cursor-pointer" ,
42+ "border-gray-300 text-gray-500 hover:bg-black/5 hover:border-gray-500 hover:text-gray-600" ,
43+ "dark:text-gray-300 dark:border-gray-600 dark:hover:text-gray-200 dark:hover:border-gray-400 dark:hover:bg-white/5" ,
44+ ) }
45+ style = {
46+ isActive
47+ ? {
48+ backgroundColor : `${ lang . brand } 20` ,
49+ color : lang . brand ,
50+ borderColor : lang . brand ,
51+ }
52+ : { }
53+ }
54+ >
55+ { lang . label }
56+ </ button >
57+ ) ;
58+ } ) }
59+ </ div >
60+ ) ;
6161}
0 commit comments