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,27 +1,40 @@
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
}: PackageListProps): JSX.Element {
if (loading) return (
<div className="flex items-center justify-center h-64"> <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 className="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-500"></div>
</div> </div>
); );
}
const sortedPackages = useMemo(
() => [...packages].sort(
(a, b) => a.name.localeCompare(b.name)
), [packages]
);
return ( return (
<div className="grid gap-4"> <div className="grid gap-4">
{packages.map((pkg) => ( {sortedPackages.map((pkg) => (
<PackageCard key={pkg.name} package={pkg} /> <PackageCard key={pkg.name} package={pkg} />
))} ))}
</div> </div>