@@ -42,6 +42,8 @@ type BuildWithDates = Omit<
4242 claimedAt : string | Date | null ;
4343} ;
4444
45+ type BuildServer = { id : string ; name : string } ;
46+
4547const STATUS_CONFIG : Record <
4648 BuildStatus ,
4749 {
@@ -97,28 +99,31 @@ export function BuildDetails({
9799 envName,
98100 service,
99101 build : initialBuild ,
102+ server : initialServer ,
100103 githubRepo,
101104} : {
102105 projectSlug : string ;
103106 envName : string ;
104107 service : Pick < Service , "id" | "name" > ;
105108 build : BuildWithDates ;
109+ server : BuildServer | null ;
106110 githubRepo : { repoFullName : string } | null ;
107111} ) {
108112 const router = useRouter ( ) ;
109113 const [ isCancelling , setIsCancelling ] = useState ( false ) ;
110114 const [ isRetrying , setIsRetrying ] = useState ( false ) ;
111115
112- const { data } = useSWR < { build : BuildWithDates } > (
113- `/api/builds/ ${ initialBuild . id } ` ,
114- fetcher ,
115- {
116- fallbackData : { build : initialBuild } ,
117- refreshInterval : isActiveBuild ( initialBuild . status ) ? 1500 : 0 ,
118- } ,
119- ) ;
116+ const { data } = useSWR < {
117+ build : BuildWithDates ;
118+ server : BuildServer | null ;
119+ } > ( `/api/builds/ ${ initialBuild . id } ` , fetcher , {
120+ fallbackData : { build : initialBuild , server : initialServer } ,
121+ refreshInterval : ( latestData ) =>
122+ isActiveBuild ( latestData ?. build . status ?? initialBuild . status ) ? 1500 : 0 ,
123+ } ) ;
120124
121125 const build = data ?. build || initialBuild ;
126+ const server = data ? data . server : initialServer ;
122127 const config = STATUS_CONFIG [ build . status ] ;
123128 const isAnimated = [ "cloning" , "building" , "pushing" ] . includes ( build . status ) ;
124129
@@ -244,12 +249,23 @@ export function BuildDetails({
244249 < ItemDescription >
245250 { build . commitMessage ?. split ( "\n" ) [ 0 ] || "No message" }
246251 </ ItemDescription >
247- < div className = "flex items-center gap-4 text-xs text-muted-foreground mt-1" >
252+ < div className = "flex items-center gap-1 text-xs text-muted-foreground mt-1" >
248253 < span className = "flex items-center gap-1" >
249254 < GitBranch className = "size-3" />
250255 { build . branch }
251256 </ span >
252257 { build . author && < span > by { build . author } </ span > }
258+ { server && (
259+ < span >
260+ on{ " " }
261+ < Link
262+ href = { `/dashboard/servers/${ server . id } ` }
263+ className = "hover:text-foreground hover:underline"
264+ >
265+ { server . name }
266+ </ Link >
267+ </ span >
268+ ) }
253269 </ div >
254270 </ ItemContent >
255271 </ Item >
0 commit comments