diff --git a/frontend/src/pages/PackageDetails.tsx b/frontend/src/pages/PackageDetails.tsx
index 13d3cfa..47aba0b 100644
--- a/frontend/src/pages/PackageDetails.tsx
+++ b/frontend/src/pages/PackageDetails.tsx
@@ -75,6 +75,19 @@ export default function PackageDetails({ packageName, onBack }: PackageDetailsPr
);
+ const ensureArray = (val: any): string[] => {
+ if (!val) return [];
+ if (Array.isArray(val)) return val;
+ if (typeof val === 'string') {
+ return val.split(/[\s,]+/).filter(Boolean);
+ }
+ return [];
+ };
+
+ const parsedLicenses = ensureArray(pkg.licenses);
+ const parsedDepends = ensureArray(pkg.depends);
+ const parsedOptDepends = ensureArray(pkg.opt_depends);
+
return (
{/* Header */}
@@ -123,7 +136,7 @@ export default function PackageDetails({ packageName, onBack }: PackageDetailsPr
{pkg.installed_version && Installed Version{pkg.installed_version}
}
{pkg.arch && Architecture{pkg.arch}
}
- {pkg.licenses && pkg.licenses.length > 0 && License{pkg.licenses.join(', ')}
}
+ {parsedLicenses.length > 0 && License{parsedLicenses.join(', ')}
}
{pkg.size && Download Size{pkg.size}
}
{pkg.install_size && Installed Size{pkg.install_size}
}
{pkg.packager && Packager{pkg.packager}
}
@@ -140,13 +153,13 @@ export default function PackageDetails({ packageName, onBack }: PackageDetailsPr
{/* Right column */}
{/* Dependencies */}
- {pkg.depends && pkg.depends.length > 0 && (
+ {parsedDepends.length > 0 && (
- Dependencies ({pkg.depends.length})
+ Dependencies ({parsedDepends.length})
- {pkg.depends.map(dep => (
+ {parsedDepends.map(dep => (
{dep}
@@ -156,13 +169,13 @@ export default function PackageDetails({ packageName, onBack }: PackageDetailsPr
)}
{/* Optional deps */}
- {pkg.opt_depends && pkg.opt_depends.length > 0 && (
+ {parsedOptDepends.length > 0 && (
- Optional Dependencies ({pkg.opt_depends.length})
+ Optional Dependencies ({parsedOptDepends.length})
- {pkg.opt_depends.map(dep => (
+ {parsedOptDepends.map(dep => (
{dep}