mirror of
https://github.com/Snigdha-OS/package-browser.git
synced 2025-09-05 12:16:42 +02:00
Compare commits
4 Commits
f36187ec73
...
6bc0c56de2
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6bc0c56de2 | ||
![]() |
176bd3ef9d | ||
![]() |
3f2a66057a | ||
![]() |
9ff67af9f2 |
@@ -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 (
|
||||
<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>
|
||||
export function PackageList({
|
||||
packages,
|
||||
loading
|
||||
}: PackageListProps): JSX.Element {
|
||||
if (loading) return (
|
||||
<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 (
|
||||
<div className="grid gap-4">
|
||||
{packages.map((pkg) => (
|
||||
<PackageCard key={pkg.name} package={pkg} />
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
const sortedPackages = useMemo(
|
||||
() => [...packages].sort(
|
||||
(a, b) => a.name.localeCompare(b.name)
|
||||
), [packages]
|
||||
);
|
||||
|
||||
return (
|
||||
<div className="grid gap-4">
|
||||
{sortedPackages.map((pkg) => (
|
||||
<PackageCard key={pkg.name} package={pkg} />
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user