diff --git a/src/components/PackageList.tsx b/src/components/PackageList.tsx index 4eabb04..a3177e2 100644 --- a/src/components/PackageList.tsx +++ b/src/components/PackageList.tsx @@ -1,29 +1,42 @@ import { - JSX + JSX, + useMemo } from 'react'; -import { Package } from '../types'; -import { PackageCard } from './PackageCard'; +import { + Package +} from '../types'; + +import { + PackageCard +} from './PackageCard'; interface PackageListProps { - packages: Package[]; - loading: boolean; + packages: Package[]; + loading: boolean; } -export function PackageList({ packages, loading }: PackageListProps): JSX.Element { - if (loading) { - return ( -
-
-
+export function PackageList({ + packages, + loading +}: PackageListProps): JSX.Element { + if (loading) return ( +
+
+
); - } - return ( -
- {packages.map((pkg) => ( - - ))} -
- ); -} \ No newline at end of file + const sortedPackages = useMemo( + () => [...packages].sort( + (a, b) => a.name.localeCompare(b.name) + ), [packages] + ); + + return ( +
+ {sortedPackages.map((pkg) => ( + + ))} +
+ ); +}