Fix invalid sort field error on package artifact listing
The artifacts endpoint only supports sorting by: created_at, size, original_name But the frontend was defaulting to 'name' (from the old tags endpoint). - Change default sort from 'name' to 'created_at' - Change default order from 'asc' to 'desc' (newest first) - Remove sortable flag from version/tags columns (not DB fields) - Add sortable flag to original_name and size columns
This commit is contained in:
@@ -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<string, string | undefined>) => {
|
||||
@@ -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) => (
|
||||
<strong
|
||||
className={`tag-name-link ${selectedArtifact?.id === a.id ? 'selected' : ''}`}
|
||||
@@ -371,6 +372,7 @@ function PackagePage() {
|
||||
{
|
||||
key: 'original_name',
|
||||
header: 'Filename',
|
||||
sortable: true,
|
||||
className: 'cell-truncate',
|
||||
render: (a: PackageArtifact) => (
|
||||
<span title={a.original_name || a.id}>{a.original_name || a.id.slice(0, 12)}</span>
|
||||
@@ -379,6 +381,7 @@ function PackagePage() {
|
||||
{
|
||||
key: 'size',
|
||||
header: 'Size',
|
||||
sortable: true,
|
||||
render: (a: PackageArtifact) => <span>{formatBytes(a.size)}</span>,
|
||||
},
|
||||
{
|
||||
@@ -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) => (
|
||||
<strong
|
||||
className={`tag-name-link ${selectedArtifact?.id === a.id ? 'selected' : ''}`}
|
||||
@@ -440,6 +444,7 @@ function PackagePage() {
|
||||
{
|
||||
key: 'version',
|
||||
header: 'Version',
|
||||
// version is from format_metadata, not a sortable DB field
|
||||
render: (a: PackageArtifact) => (
|
||||
<span className="version-badge">{getArtifactVersion(a) || '—'}</span>
|
||||
),
|
||||
@@ -447,6 +452,7 @@ function PackagePage() {
|
||||
{
|
||||
key: 'original_name',
|
||||
header: 'Filename',
|
||||
sortable: true,
|
||||
className: 'cell-truncate',
|
||||
render: (a: PackageArtifact) => (
|
||||
<span title={a.original_name || undefined}>{a.original_name || '—'}</span>
|
||||
@@ -455,6 +461,7 @@ function PackagePage() {
|
||||
{
|
||||
key: 'size',
|
||||
header: 'Size',
|
||||
sortable: true,
|
||||
render: (a: PackageArtifact) => <span>{formatBytes(a.size)}</span>,
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user