@@ -11,7 +11,7 @@ import {
1111 MenuContent ,
1212 MenuItem ,
1313 MenuPortal ,
14- MenuTrigger ,
14+ MenuTrigger , Spacing ,
1515 Text ,
1616 useService ,
1717 useStore
@@ -20,6 +20,7 @@ import {RuntimeService} from "@edition/runtime/services/Runtime.service";
2020import { formatDistanceToNow } from "date-fns" ;
2121import { IconDotsVertical , IconServerSpark , IconX } from "@tabler/icons-react" ;
2222import { ProjectService } from "@edition/project/services/Project.service" ;
23+ import { ModuleService } from "@edition/module/services/Module.service" ;
2324
2425export interface RuntimeProjectDataTableRowComponentProps {
2526 projectId : NamespaceProject [ 'id' ]
@@ -34,6 +35,8 @@ export const RuntimeProjectDataTableRowComponent: React.FC<RuntimeProjectDataTab
3435 const projectStore = useStore ( ProjectService )
3536 const runtimeService = useService ( RuntimeService )
3637 const runtimeStore = useStore ( RuntimeService )
38+ const moduleService = useService ( ModuleService )
39+ const moduleStore = useStore ( ModuleService )
3740
3841 const runtime = React . useMemo (
3942 ( ) => runtimeService . getById ( runtimeId ) ,
@@ -45,6 +48,11 @@ export const RuntimeProjectDataTableRowComponent: React.FC<RuntimeProjectDataTab
4548 [ projectStore , projectId ]
4649 )
4750
51+ const modules = React . useMemo (
52+ ( ) => moduleService . values ( { namespaceId : project ?. namespace ?. id , projectId : projectId , runtimeId : runtimeId } ) ,
53+ [ moduleStore , runtime ]
54+ )
55+
4856 const makePrimary = React . useCallback ( ( ) => {
4957 startTransition ( ( ) => {
5058 projectService . projectUpdate ( {
@@ -91,6 +99,27 @@ export const RuntimeProjectDataTableRowComponent: React.FC<RuntimeProjectDataTab
9199 </ Flex >
92100 </ DataTableColumn >
93101 < DataTableColumn >
102+ < Text >
103+ Installed plugins
104+ </ Text >
105+ < Spacing spacing = { "xxs" } />
106+ < Flex align = { "center" } style = { { gap : "0.35rem" } } >
107+ {
108+ modules . map ( m => m . names ?. [ 0 ] . content ) . map ( ( name , index ) => {
109+ return index <= 5 ? < Badge color = { "secondary" } >
110+ { name }
111+ </ Badge > : index == 6 ? < Text > ...</ Text > : null
112+ } )
113+
114+ }
115+ </ Flex >
116+
117+ </ DataTableColumn >
118+ < DataTableColumn >
119+ < Text >
120+ Status
121+ </ Text >
122+ < Spacing spacing = { "xxs" } />
94123 < Badge color = { runtime ?. status === "CONNECTED" ? "success" : "error" } border >
95124 < Text style = { { color : "inherit" } } > { runtime ?. status } </ Text >
96125 </ Badge >
0 commit comments