File tree Expand file tree Collapse file tree
src/packages/ce/src/user/components Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ "use client"
2+
3+ import React from "react" ;
4+ import {
5+ DataTable ,
6+ DataTableColumn ,
7+ ScrollArea ,
8+ ScrollAreaScrollbar , ScrollAreaThumb ,
9+ ScrollAreaViewport ,
10+ Text ,
11+ useService ,
12+ useStore
13+ } from "@code0-tech/pictor" ;
14+ import { User , UserSession } from "@code0-tech/sagittarius-graphql-types" ;
15+ import { UserService } from "@edition/user/services/User.service" ;
16+ import { UserSessionsDataTableRowComponent } from "@edition/user/components/UserSessionsDataTableRowComponent" ;
17+
18+ export interface UserSessionsDataTableComponentProps {
19+ userId : User [ 'id' ]
20+ }
21+
22+ export const UserSessionsDataTableComponent : React . FC < UserSessionsDataTableComponentProps > = ( props ) => {
23+
24+ const { userId} = props
25+
26+ const userService = useService ( UserService )
27+ const userStore = useStore ( UserService )
28+
29+ const sessions = React . useMemo (
30+ ( ) => ( userService . getById ( userId ) ?. sessions ?. nodes ?? [ ] ) . filter ( ( session ) : session is UserSession => ! ! session && ! ! session . active ) ,
31+ [ userStore , userId ]
32+ )
33+
34+ return < ScrollArea w = { "100%" } h = { "100%" } type = { "scroll" } >
35+ < ScrollAreaViewport >
36+ < DataTable filter = { { } }
37+ sort = { { } }
38+ emptyComponent = { < DataTableColumn >
39+ < Text > No sessions found for this user.</ Text >
40+ </ DataTableColumn > }
41+ data = { sessions } >
42+ { ( session ) => < UserSessionsDataTableRowComponent userId = { userId } sessionId = { session . id } /> }
43+ </ DataTable >
44+ </ ScrollAreaViewport >
45+ < ScrollAreaScrollbar orientation = { "vertical" } >
46+ < ScrollAreaThumb />
47+ </ ScrollAreaScrollbar >
48+ </ ScrollArea >
49+ }
You can’t perform that action at this time.
0 commit comments