diff --git a/frontend/src/pages/PackagePage.tsx b/frontend/src/pages/PackagePage.tsx index c0cee96..9d501c5 100644 --- a/frontend/src/pages/PackagePage.tsx +++ b/frontend/src/pages/PackagePage.tsx @@ -112,10 +112,11 @@ function PackagePage() { const isSystemProject = projectName?.startsWith('_') ?? false; // Get params from URL + // Valid sort fields for artifacts: created_at, size, original_name const page = parseInt(searchParams.get('page') || '1', 10); const search = searchParams.get('search') || ''; - const sort = searchParams.get('sort') || 'name'; - const order = (searchParams.get('order') || 'asc') as 'asc' | 'desc'; + const sort = searchParams.get('sort') || 'created_at'; + const order = (searchParams.get('order') || 'desc') as 'asc' | 'desc'; const updateParams = useCallback( (updates: Record) => { @@ -357,7 +358,7 @@ function PackagePage() { { key: 'version', header: 'Version', - sortable: true, + // version is from format_metadata, not a sortable DB field render: (a: PackageArtifact) => ( ( {a.original_name || a.id.slice(0, 12)} @@ -379,6 +381,7 @@ function PackagePage() { { key: 'size', header: 'Size', + sortable: true, render: (a: PackageArtifact) => {formatBytes(a.size)}, }, { @@ -423,10 +426,11 @@ function PackagePage() { ] : [ // Regular project columns: Tag, Version, Filename, Size, Created + // Valid sort fields: created_at, size, original_name { key: 'tags', header: 'Tag', - sortable: true, + // tags is not a sortable DB field render: (a: PackageArtifact) => ( ( {getArtifactVersion(a) || '—'} ), @@ -447,6 +452,7 @@ function PackagePage() { { key: 'original_name', header: 'Filename', + sortable: true, className: 'cell-truncate', render: (a: PackageArtifact) => ( {a.original_name || '—'} @@ -455,6 +461,7 @@ function PackagePage() { { key: 'size', header: 'Size', + sortable: true, render: (a: PackageArtifact) => {formatBytes(a.size)}, }, {