From 9ff67af9f2c394222d2155c3307cd76eef6cee7f Mon Sep 17 00:00:00 2001 From: XlebyllleK <96723939+XlebyllleK@users.noreply.github.com> Date: Sat, 11 Jan 2025 23:08:04 +0200 Subject: [PATCH 1/3] Sort packages alphabetically --- src/components/PackageList.tsx | 46 ++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/src/components/PackageList.tsx b/src/components/PackageList.tsx index 4eabb04..15f64d8 100644 --- a/src/components/PackageList.tsx +++ b/src/components/PackageList.tsx @@ -2,28 +2,36 @@ import { JSX } 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 = [...packages].sort((a, b) => a.name.localeCompare(b.name)); + + return ( +
+ {sortedPackages.map((pkg) => ( + + ))} +
+ ); +} From 3f2a66057a4b2c1691c2d9ff56134aa4758a3dd2 Mon Sep 17 00:00:00 2001 From: XlebyllleK <96723939+XlebyllleK@users.noreply.github.com> Date: Sat, 11 Jan 2025 23:15:54 +0200 Subject: [PATCH 2/3] feat: Optimize package sorting with useMemo --- src/components/PackageList.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/PackageList.tsx b/src/components/PackageList.tsx index 15f64d8..3d84dd6 100644 --- a/src/components/PackageList.tsx +++ b/src/components/PackageList.tsx @@ -1,5 +1,6 @@ import { - JSX + JSX, + useMemo } from 'react'; import { @@ -25,7 +26,10 @@ export function PackageList({ ); - const sortedPackages = [...packages].sort((a, b) => a.name.localeCompare(b.name)); + const sortedPackages = useMemo( + () => [...packages].sort((a, b) => a.name.localeCompare(b.name)), + [packages] + ); return (
From 176bd3ef9d977afca2af0fa5bae942f25fa6b5c9 Mon Sep 17 00:00:00 2001 From: XlebyllleK <96723939+XlebyllleK@users.noreply.github.com> Date: Sat, 11 Jan 2025 23:17:11 +0200 Subject: [PATCH 3/3] Update PackageList.tsx --- src/components/PackageList.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/PackageList.tsx b/src/components/PackageList.tsx index 3d84dd6..a3177e2 100644 --- a/src/components/PackageList.tsx +++ b/src/components/PackageList.tsx @@ -27,8 +27,9 @@ export function PackageList({ ); const sortedPackages = useMemo( - () => [...packages].sort((a, b) => a.name.localeCompare(b.name)), - [packages] + () => [...packages].sort( + (a, b) => a.name.localeCompare(b.name) + ), [packages] ); return (