11import { format } from "date-fns" ;
2- import { KeyIcon , Loader2 , MoreHorizontal , ServerIcon , Clock , User , Key , Network , Terminal , Settings , Pencil , Trash2 } from "lucide-react" ;
2+ import {
3+ KeyIcon ,
4+ Loader2 ,
5+ MoreHorizontal ,
6+ ServerIcon ,
7+ Clock ,
8+ User ,
9+ Key ,
10+ Network ,
11+ Terminal ,
12+ Settings ,
13+ Pencil ,
14+ Trash2 ,
15+ } from "lucide-react" ;
316import Link from "next/link" ;
417import { useRouter } from "next/router" ;
518import { useTranslation } from "next-i18next" ;
@@ -116,10 +129,12 @@ export const ShowServers = () => {
116129 { data ?. map ( ( server ) => {
117130 const canDelete = server . totalSum === 0 ;
118131 const isActive = server . serverStatus === "active" ;
119- const isBuildServer =
120- server . serverType === "build" ;
132+ const isBuildServer = server . serverType === "build" ;
121133 return (
122- < Card key = { server . serverId } className = "relative hover:shadow-lg transition-shadow flex flex-col bg-transparent" >
134+ < Card
135+ key = { server . serverId }
136+ className = "relative hover:shadow-lg transition-shadow flex flex-col bg-transparent"
137+ >
123138 < CardHeader className = "pb-3" >
124139 < div className = "flex items-start justify-between" >
125140 < div className = "flex items-center gap-2" >
@@ -128,50 +143,52 @@ export const ShowServers = () => {
128143 { server . name }
129144 </ CardTitle >
130145 </ div >
131- { isActive && server . sshKeyId && ! isBuildServer && (
132- < DropdownMenu >
133- < DropdownMenuTrigger asChild >
134- < Button
135- variant = "ghost"
136- className = "h-8 w-8 p-0"
137- >
138- < span className = "sr-only" >
139- More options
140- </ span >
141- < MoreHorizontal className = "h-4 w-4" />
142- </ Button >
143- </ DropdownMenuTrigger >
144- < DropdownMenuContent align = "end" >
145- < DropdownMenuLabel >
146- Advanced
147- </ DropdownMenuLabel >
148- < ShowTraefikFileSystemModal
149- serverId = { server . serverId }
150- />
151- < ShowDockerContainersModal
152- serverId = { server . serverId }
153- />
154- { isCloud && (
155- < ShowMonitoringModal
156- url = { `http://${ server . ipAddress } :${ server ?. metricsConfig ?. server ?. port } /metrics` }
157- token = {
158- server ?. metricsConfig
159- ?. server ?. token
160- }
146+ { isActive &&
147+ server . sshKeyId &&
148+ ! isBuildServer && (
149+ < DropdownMenu >
150+ < DropdownMenuTrigger asChild >
151+ < Button
152+ variant = "ghost"
153+ className = "h-8 w-8 p-0"
154+ >
155+ < span className = "sr-only" >
156+ More options
157+ </ span >
158+ < MoreHorizontal className = "h-4 w-4" />
159+ </ Button >
160+ </ DropdownMenuTrigger >
161+ < DropdownMenuContent align = "end" >
162+ < DropdownMenuLabel >
163+ Advanced
164+ </ DropdownMenuLabel >
165+ < ShowTraefikFileSystemModal
166+ serverId = { server . serverId }
161167 />
162- ) }
163- < ShowSwarmOverviewModal
164- serverId = { server . serverId }
165- />
166- < ShowNodesModal
167- serverId = { server . serverId }
168- />
169- < ShowSchedulesModal
170- serverId = { server . serverId }
171- />
172- </ DropdownMenuContent >
173- </ DropdownMenu >
174- ) }
168+ < ShowDockerContainersModal
169+ serverId = { server . serverId }
170+ />
171+ { isCloud && (
172+ < ShowMonitoringModal
173+ url = { `http://${ server . ipAddress } :${ server ?. metricsConfig ?. server ?. port } /metrics` }
174+ token = {
175+ server ?. metricsConfig ?. server
176+ ?. token
177+ }
178+ />
179+ ) }
180+ < ShowSwarmOverviewModal
181+ serverId = { server . serverId }
182+ />
183+ < ShowNodesModal
184+ serverId = { server . serverId }
185+ />
186+ < ShowSchedulesModal
187+ serverId = { server . serverId }
188+ />
189+ </ DropdownMenuContent >
190+ </ DropdownMenu >
191+ ) }
175192 </ div >
176193 < TooltipProvider >
177194 < div className = "flex gap-2 mt-2 flex-wrap" >
@@ -185,14 +202,24 @@ export const ShowServers = () => {
185202 < Tooltip delayDuration = { 0 } >
186203 < TooltipTrigger asChild >
187204 < span className = "inline-block" >
188- < Badge variant = "destructive" className = "cursor-help" >
205+ < Badge
206+ variant = "destructive"
207+ className = "cursor-help"
208+ >
189209 { server . serverStatus }
190210 </ Badge >
191211 </ span >
192212 </ TooltipTrigger >
193- < TooltipContent className = "max-w-xs" side = "bottom" >
213+ < TooltipContent
214+ className = "max-w-xs"
215+ side = "bottom"
216+ >
194217 < p className = "text-sm" >
195- This server is deactivated due to lack of payment. Please pay your invoice to reactivate it. If you think this is an error, please contact support.
218+ This server is deactivated due
219+ to lack of payment. Please pay
220+ your invoice to reactivate it.
221+ If you think this is an error,
222+ please contact support.
196223 </ p >
197224 </ TooltipContent >
198225 </ Tooltip >
@@ -201,7 +228,9 @@ export const ShowServers = () => {
201228 ) }
202229 < Badge
203230 variant = {
204- isBuildServer ? "secondary" : "default"
231+ isBuildServer
232+ ? "secondary"
233+ : "default"
205234 }
206235 >
207236 { server . serverType }
@@ -212,30 +241,48 @@ export const ShowServers = () => {
212241 < CardContent className = "space-y-3 flex-1 flex flex-col" >
213242 < div className = "flex items-center gap-2 text-sm" >
214243 < Network className = "size-4 text-muted-foreground" />
215- < span className = "text-muted-foreground" > IP:</ span >
216- < Badge variant = "outline" > { server . ipAddress } </ Badge >
217- < span className = "text-muted-foreground" > Port:</ span >
218- < span className = "font-medium" > { server . port } </ span >
244+ < span className = "text-muted-foreground" >
245+ IP:
246+ </ span >
247+ < Badge variant = "outline" >
248+ { server . ipAddress }
249+ </ Badge >
250+ < span className = "text-muted-foreground" >
251+ Port:
252+ </ span >
253+ < span className = "font-medium" >
254+ { server . port }
255+ </ span >
219256 </ div >
220257 < div className = "flex items-center gap-2 text-sm" >
221258 < User className = "size-4 text-muted-foreground" />
222- < span className = "text-muted-foreground" > User:</ span >
223- < span className = "font-medium" > { server . username } </ span >
259+ < span className = "text-muted-foreground" >
260+ User:
261+ </ span >
262+ < span className = "font-medium" >
263+ { server . username }
264+ </ span >
224265 </ div >
225266 < div className = "flex items-center gap-2 text-sm" >
226267 < Key className = "size-4 text-muted-foreground" />
227- < span className = "text-muted-foreground" > SSH Key:</ span >
268+ < span className = "text-muted-foreground" >
269+ SSH Key:
270+ </ span >
228271 < span className = "font-medium" >
229272 { server . sshKeyId ? "Yes" : "No" }
230273 </ span >
231274 </ div >
232275 < div className = "flex items-center gap-2 text-sm pt-2 border-t" >
233276 < Clock className = "size-4 text-muted-foreground" />
234277 < span className = "text-xs text-muted-foreground" >
235- Created { format ( new Date ( server . createdAt ) , "PPp" ) }
278+ Created{ " " }
279+ { format (
280+ new Date ( server . createdAt ) ,
281+ "PPp" ,
282+ ) }
236283 </ span >
237284 </ div >
238-
285+
239286 { /* Compact Actions */ }
240287 { isActive && (
241288 < div className = "flex items-center gap-2 pt-3 border-t mt-auto" >
@@ -248,8 +295,8 @@ export const ShowServers = () => {
248295 serverId = { server . serverId }
249296 asButton = { true }
250297 >
251- < Button
252- variant = "outline"
298+ < Button
299+ variant = "outline"
253300 size = "icon"
254301 className = "h-9 w-9"
255302 >
@@ -263,7 +310,7 @@ export const ShowServers = () => {
263310 </ TooltipContent >
264311 </ Tooltip >
265312 ) }
266-
313+
267314 < Tooltip >
268315 < TooltipTrigger asChild >
269316 < div >
@@ -307,9 +354,9 @@ export const ShowServers = () => {
307354 </ TooltipContent >
308355 </ Tooltip >
309356 ) }
310-
357+
311358 < div className = "flex-1" />
312-
359+
313360 < Tooltip >
314361 < TooltipTrigger asChild >
315362 < div >
@@ -325,12 +372,14 @@ export const ShowServers = () => {
325372 "This will delete the server and all associated data"
326373 ) : (
327374 < div className = "flex flex-col gap-2" >
328- You can not delete this server
329- because it has active services.
375+ You can not delete this
376+ server because it has
377+ active services.
330378 < AlertBlock type = "warning" >
331379 You have active services
332- associated with this server,
333- please delete them first.
380+ associated with this
381+ server, please delete
382+ them first.
334383 </ AlertBlock >
335384 </ div >
336385 )
@@ -353,15 +402,19 @@ export const ShowServers = () => {
353402 < Button
354403 variant = "ghost"
355404 size = "icon"
356- className = { `h-9 w-9 ${ canDelete ? ' text-destructive hover:text-destructive hover:bg-destructive/10' : ' text-muted-foreground hover:bg-muted' } ` }
405+ className = { `h-9 w-9 ${ canDelete ? " text-destructive hover:text-destructive hover:bg-destructive/10" : " text-muted-foreground hover:bg-muted" } ` }
357406 >
358407 < Trash2 className = "h-4 w-4" />
359408 </ Button >
360409 </ DialogAction >
361410 </ div >
362411 </ TooltipTrigger >
363412 < TooltipContent >
364- < p > { canDelete ? 'Delete Server' : 'Cannot delete - has active services' } </ p >
413+ < p >
414+ { canDelete
415+ ? "Delete Server"
416+ : "Cannot delete - has active services" }
417+ </ p >
365418 </ TooltipContent >
366419 </ Tooltip >
367420 </ TooltipProvider >
0 commit comments