diff --git a/src/components/GlobalLanguageSelector.astro b/src/components/GlobalLanguageSelector.astro new file mode 100644 index 00000000..ed4e9ae1 --- /dev/null +++ b/src/components/GlobalLanguageSelector.astro @@ -0,0 +1,203 @@ +--- +import Nodejs from '../assets/icons/nodejs.svg'; +import Go from '../assets/icons/go.svg'; +import Python from '../assets/icons/python.svg'; + +const languageOptions = [ + { value: 'js', label: 'JavaScript', icon: Nodejs }, + { value: 'go', label: 'Go', icon: Go }, + { value: 'python', label: 'Python (Preview)', icon: Python }, +]; +--- + +
+ + + +
+ {languageOptions.map(({ value, label, icon: IconComponent }) => ( + + + {label} + + ))} + + + +
+ + + +
+ + + + \ No newline at end of file diff --git a/src/components/LanguageSelector.astro b/src/components/LanguageSelector.astro index b7bba58f..6195618d 100644 --- a/src/components/LanguageSelector.astro +++ b/src/components/LanguageSelector.astro @@ -1,12 +1,9 @@ --- export interface Props { - languages?: string[] | string; supportedLanguages?: string[] | string; } -const { languages = ['js', 'go', 'python'], supportedLanguages = ['js', 'go', 'python'] } = Astro.props; - -const currentLang = Astro.url.searchParams.get('lang') || 'js'; +const { supportedLanguages = ['js', 'go', 'python'] } = Astro.props; const languageLabels: Record = { js: 'JavaScript', @@ -22,10 +19,7 @@ function parseLanguages(input: string[] | string): string[] { return input.trim().split(/\s+/).filter(Boolean); } -// Use supportedLanguages if provided, otherwise fall back to languages prop const displayLanguages = parseLanguages(supportedLanguages); -const allLanguages = ['js', 'go', 'python']; -const hasLimitedSupport = displayLanguages.length < allLanguages.length; ---
@@ -34,7 +28,6 @@ const hasLimitedSupport = displayLanguages.length < allLanguages.length;