@@ -11,6 +11,7 @@ import {
11
11
Heading ,
12
12
NewAlert ,
13
13
SkeletonBox ,
14
+ NewLink ,
14
15
} from "@thunderstore/cyberstorm" ;
15
16
import { Await , LoaderFunctionArgs } from "react-router" ;
16
17
import { useLoaderData } from "react-router" ;
@@ -31,7 +32,7 @@ import {
31
32
import { Suspense } from "react" ;
32
33
33
34
export async function loader ( { params } : LoaderFunctionArgs ) {
34
- if ( params . namespaceId && params . packageId ) {
35
+ if ( params . communityId && params . namespaceId && params . packageId ) {
35
36
const publicEnvVariables = getPublicEnvVariables ( [ "VITE_API_URL" ] ) ;
36
37
const dapper = new DapperTs ( ( ) => {
37
38
return {
@@ -40,6 +41,9 @@ export async function loader({ params }: LoaderFunctionArgs) {
40
41
} ;
41
42
} ) ;
42
43
return {
44
+ communityId : params . communityId ,
45
+ namespaceId : params . namespaceId ,
46
+ packageId : params . packageId ,
43
47
versions : dapper . getPackageVersions ( params . namespaceId , params . packageId ) ,
44
48
} ;
45
49
}
@@ -51,7 +55,7 @@ export async function loader({ params }: LoaderFunctionArgs) {
51
55
}
52
56
53
57
export async function clientLoader ( { params } : LoaderFunctionArgs ) {
54
- if ( params . namespaceId && params . packageId ) {
58
+ if ( params . communityId && params . namespaceId && params . packageId ) {
55
59
const tools = getSessionTools ( ) ;
56
60
const dapper = new DapperTs ( ( ) => {
57
61
return {
@@ -60,6 +64,9 @@ export async function clientLoader({ params }: LoaderFunctionArgs) {
60
64
} ;
61
65
} ) ;
62
66
return {
67
+ communityId : params . communityId ,
68
+ namespaceId : params . namespaceId ,
69
+ packageId : params . packageId ,
63
70
versions : dapper . getPackageVersions ( params . namespaceId , params . packageId ) ,
64
71
} ;
65
72
}
@@ -97,9 +104,8 @@ function rowSemverCompare(
97
104
}
98
105
99
106
export default function Versions ( ) {
100
- const { status, message, versions } = useLoaderData <
101
- typeof loader | typeof clientLoader
102
- > ( ) ;
107
+ const { communityId, namespaceId, packageId, status, message, versions } =
108
+ useLoaderData < typeof loader | typeof clientLoader > ( ) ;
103
109
104
110
if ( status === "error" ) {
105
111
return < div > { message } </ div > ;
@@ -120,7 +126,22 @@ export default function Versions() {
120
126
}
121
127
headers = { columns }
122
128
rows = { resolvedValue . map ( ( v ) => [
123
- { value : v . version_number , sortValue : v . version_number } ,
129
+ {
130
+ value : (
131
+ < NewLink
132
+ primitiveType = "cyberstormLink"
133
+ linkId = "PackageVersion"
134
+ package = { packageId }
135
+ community = { communityId }
136
+ namespace = { namespaceId }
137
+ version = { v . version_number }
138
+ csVariant = "cyber"
139
+ >
140
+ { v . version_number }
141
+ </ NewLink >
142
+ ) ,
143
+ sortValue : v . version_number ,
144
+ } ,
124
145
{
125
146
value : new Date ( v . datetime_created ) . toUTCString ( ) ,
126
147
sortValue : v . datetime_created ,
0 commit comments