Merge PR #7 from XlebyllleK/master

feat: sort packages alphabetically
This commit is contained in:
Eshan Roy
2025-01-12 10:57:28 +05:30
committed by GitHub

View File

@@ -1,29 +1,42 @@
import { import {
JSX JSX,
useMemo
} from 'react'; } from 'react';
import { Package } from '../types'; import {
import { PackageCard } from './PackageCard'; Package
} from '../types';
import {
PackageCard
} from './PackageCard';
interface PackageListProps { interface PackageListProps {
packages: Package[]; packages: Package[];
loading: boolean; loading: boolean;
} }
export function PackageList({ packages, loading }: PackageListProps): JSX.Element { export function PackageList({
if (loading) { packages,
return ( loading
<div className="flex items-center justify-center h-64"> }: PackageListProps): JSX.Element {
<div className="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-500"></div> if (loading) return (
</div> <div className="flex items-center justify-center h-64">
<div className="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-500"></div>
</div>
); );
}
return ( const sortedPackages = useMemo(
<div className="grid gap-4"> () => [...packages].sort(
{packages.map((pkg) => ( (a, b) => a.name.localeCompare(b.name)
<PackageCard key={pkg.name} package={pkg} /> ), [packages]
))} );
</div>
); return (
} <div className="grid gap-4">
{sortedPackages.map((pkg) => (
<PackageCard key={pkg.name} package={pkg} />
))}
</div>
);
}