"use client" import { useState, useEffect } from 'react' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Button } from '@/components/ui/button' import { apiClient } from '@/lib/api/client' import { useLocale } from '@/contexts/LocaleContext' import { Platform } from '@/types' interface PlatformSelectorProps { selectedPlatform: Platform | null onPlatformSelect: (platform: Platform) => void } export function PlatformSelector({ selectedPlatform, onPlatformSelect }: PlatformSelectorProps) { const { t } = useLocale() const [platforms, setPlatforms] = useState([]) const [loading, setLoading] = useState(true) const iconSlug: Record = { debian: 'debian', ubuntu: 'ubuntu', fedora: 'fedora', arch: 'archlinux', windows: 'windows', macos: 'apple' } const iconBase = (slug: string) => `https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/${slug}.svg` useEffect(() => { const loadPlatforms = async () => { try { const platformsData = await apiClient.getPlatforms() setPlatforms(platformsData) } catch (error) { console.error('Failed to load platforms:', error) // Fallback to mock data if API fails const { platforms: mockPlatforms } = await import('@/data/mockData') setPlatforms(mockPlatforms) } finally { setLoading(false) } } loadPlatforms() }, []) if (loading) { return ( {t('platform.select')} {t('platform.description')}
Loading platforms...
) } return ( {t('platform.select')} {t('platform.description')}
{platforms.map((platform) => ( ))}
) }