1
- import type { packageListingDependencySchema } from "@thunderstore/thunderstore-api" ;
1
+ import { type PackageVersionDependency } from "@thunderstore/thunderstore-api" ;
2
2
import "./ListingDependency.css" ;
3
3
import { formatToDisplayName , Image , NewLink } from "@thunderstore/cyberstorm" ;
4
4
5
5
export 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 ;
9
8
}
10
9
11
10
export function ListingDependency ( props : ListingDependencyProps ) {
12
- const { dependency, domain } = props ;
11
+ const { dependency, communityId } = props ;
13
12
14
13
return (
15
14
< div className = "listing-dependency" >
@@ -23,16 +22,30 @@ export function ListingDependency(props: ListingDependencyProps) {
23
22
/>
24
23
< div >
25
24
< 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
+ ) }
36
49
< span className = "listing-dependency__title" >
37
50
< span className = "listing-dependency__title__by" > by</ span >
38
51
< NewLink
@@ -50,23 +63,36 @@ export function ListingDependency(props: ListingDependencyProps) {
50
63
</ div >
51
64
< div className = "listing-dependency__version" >
52
65
< 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
+ ) }
70
96
</ div >
71
97
</ div >
72
98
</ div >
0 commit comments