'use client'; import { PackageName } from '@/types/package'; import { useState, useEffect } from 'react'; import { packagesApi } from '@/lib/api/packages'; import { CubeIcon } from '@heroicons/react/24/outline'; interface PackageSelectorProps { token: string; selectedPackage: string | null; onPackageChange: (packageName: string) => void; isLoading?: boolean; } export default function PackageSelector({ token, selectedPackage, onPackageChange, isLoading }: PackageSelectorProps) { const [packages, setPackages] = useState([]); const [loading, setLoading] = useState(false); useEffect(() => { loadPackages(); }, [token]); const loadPackages = async () => { setLoading(true); try { const data = await packagesApi.getAllPackages(token); setPackages(data); if (data.length > 0 && !selectedPackage) { onPackageChange(data[0].name!); } } catch (error) { console.error('Failed to load packages:', error); } finally { setLoading(false); } }; if (loading) { return (
); } return (
{packages.map((pkg) => { const isSelected = selectedPackage === pkg.name; return ( ); })}
); }