1- import type { packageListingDependencySchema } from "@thunderstore/thunderstore-api" ;
1+ import { type PackageVersionDependency } from "@thunderstore/thunderstore-api" ;
22import "./ListingDependency.css" ;
33import { formatToDisplayName , Image , NewLink } from "@thunderstore/cyberstorm" ;
44
55export interface ListingDependencyProps {
6- dependency : typeof packageListingDependencySchema . _type ;
7- // TODO: Remove when package versiond detail is available
8- domain : string ;
6+ dependency : PackageVersionDependency ;
7+ communityId ?: string ;
98}
109
1110export function ListingDependency ( props : ListingDependencyProps ) {
12- const { dependency, domain } = props ;
11+ const { dependency, communityId } = props ;
1312
1413 return (
1514 < div className = "listing-dependency" >
@@ -23,16 +22,30 @@ export function ListingDependency(props: ListingDependencyProps) {
2322 />
2423 < div >
2524 < div className = "listing-dependency__info" >
26- < NewLink
27- primitiveType = "cyberstormLink"
28- linkId = "Package"
29- community = { dependency . community_identifier }
30- namespace = { dependency . namespace }
31- package = { dependency . name }
32- rootClasses = "listing-dependency__name"
33- >
34- { formatToDisplayName ( dependency . name ) }
35- </ NewLink >
25+ { communityId ? (
26+ < NewLink
27+ primitiveType = "cyberstormLink"
28+ linkId = "PackageVersion"
29+ community = { communityId }
30+ namespace = { dependency . namespace }
31+ package = { dependency . name }
32+ version = { dependency . version_number }
33+ rootClasses = "listing-dependency__name"
34+ >
35+ { formatToDisplayName ( dependency . name ) }
36+ </ NewLink >
37+ ) : (
38+ < NewLink
39+ primitiveType = "cyberstormLink"
40+ linkId = "PackageVersionWithoutCommunity"
41+ namespace = { dependency . namespace }
42+ package = { dependency . name }
43+ version = { dependency . version_number }
44+ rootClasses = "listing-dependency__name"
45+ >
46+ { formatToDisplayName ( dependency . name ) }
47+ </ NewLink >
48+ ) }
3649 < span className = "listing-dependency__title" >
3750 < span className = "listing-dependency__title__by" > by</ span >
3851 < NewLink
@@ -50,23 +63,36 @@ export function ListingDependency(props: ListingDependencyProps) {
5063 </ div >
5164 < div className = "listing-dependency__version" >
5265 < span > Version:</ span >
53- < NewLink
54- // TODO: Remove when package versiond detail is available
55- primitiveType = "link"
56- href = { `${ domain } /c/${ dependency . community_identifier } /p/${ dependency . namespace } /${ dependency . name } /v/${ dependency . version_number } /` }
57- // primitiveType="cyberstormLink"
58- // linkId="PackageVersion"
59- // community={dependency.community_identifier}
60- // namespace={dependency.namespace}
61- // package={dependency.name}
62- // version={dependency.version_number}
63- title = { `${ formatToDisplayName ( dependency . name ) } - ${
64- dependency . version_number
65- } `}
66- csVariant = "cyber"
67- >
68- { dependency . version_number }
69- </ NewLink >
66+ { communityId ? (
67+ < NewLink
68+ primitiveType = "cyberstormLink"
69+ linkId = "PackageVersion"
70+ community = { communityId }
71+ namespace = { dependency . namespace }
72+ package = { dependency . name }
73+ version = { dependency . version_number }
74+ title = { `${ formatToDisplayName ( dependency . name ) } - ${
75+ dependency . version_number
76+ } `}
77+ csVariant = "cyber"
78+ >
79+ { dependency . version_number }
80+ </ NewLink >
81+ ) : (
82+ < NewLink
83+ primitiveType = "cyberstormLink"
84+ linkId = "PackageVersionWithoutCommunity"
85+ namespace = { dependency . namespace }
86+ package = { dependency . name }
87+ version = { dependency . version_number }
88+ title = { `${ formatToDisplayName ( dependency . name ) } - ${
89+ dependency . version_number
90+ } `}
91+ csVariant = "cyber"
92+ >
93+ { dependency . version_number }
94+ </ NewLink >
95+ ) }
7096 </ div >
7197 </ div >
7298 </ div >
0 commit comments