1+ import { Meta } from "@storybook/react-vite" ;
2+ import { ContextStoreProvider , useReactiveArrayService } from "../../utils" ;
3+ import { DNamespaceMemberView } from "./DNamespaceMember.view" ;
4+ import { DUserView } from "../d-user" ;
5+ import { DUserReactiveServiceExtended } from "../d-user/DUserList.stories" ;
6+ import {
7+ DNamespaceMemberReactiveServiceExtended ,
8+ DNamespaceRoleReactiveServiceExtended
9+ } from "../d-role/DNamespaceRole.stories" ;
10+ import { DNamespaceRoleView } from "../d-role" ;
11+ import { NamespaceRoleAbility } from "@code0-tech/sagittarius-graphql-types" ;
12+ import { Container } from "../container/Container" ;
13+ import React from "react" ;
14+ import { DNamespaceMemberList } from "./DNamespaceMemberList" ;
15+
16+ const meta : Meta = {
17+ title : "DNamespaceMember" ,
18+ }
19+
20+ export default meta
21+
22+ export const MemberListExample = ( ) => {
23+
24+ const members = useReactiveArrayService < DNamespaceMemberView , DNamespaceMemberReactiveServiceExtended > ( DNamespaceMemberReactiveServiceExtended , [
25+ new DNamespaceMemberView ( {
26+ id : "gid://sagittarius/NamespaceMember/1" ,
27+ user : {
28+ id : "gid://sagittarius/User/1" ,
29+ } ,
30+ roles : {
31+ nodes : [ {
32+ id : "gid://sagittarius/NamespaceRole/1"
33+ } , {
34+ id : "gid://sagittarius/NamespaceRole/2"
35+ } ]
36+ } ,
37+ userAbilities : {
38+ deleteMember : true ,
39+ assignMemberRoles : true
40+ }
41+ } ) ,
42+ new DNamespaceMemberView ( {
43+ id : "gid://sagittarius/NamespaceMember/2" ,
44+ user : {
45+ id : "gid://sagittarius/User/2" ,
46+ } ,
47+ roles : {
48+ nodes : [ {
49+ id : "gid://sagittarius/NamespaceRole/1"
50+ } ]
51+ } ,
52+ userAbilities : {
53+ deleteMember : true
54+ }
55+ } )
56+ ] )
57+ const user = useReactiveArrayService < DUserView , DUserReactiveServiceExtended > ( DUserReactiveServiceExtended , [
58+ new DUserView ( {
59+ id : "gid://sagittarius/User/1" ,
60+ username : "nsammito" ,
61+ email : "nsammito@code0.tech" ,
62+ admin : true ,
63+ avatarPath : "" ,
64+ firstname : undefined ,
65+ lastname : undefined ,
66+ namespace : undefined ,
67+ namespaceMemberships : undefined ,
68+ createdAt : new Date ( ) . toString ( ) ,
69+ updatedAt : new Date ( ) . toString ( ) ,
70+ emailVerifiedAt : "sd"
71+ } ) ,
72+ new DUserView ( {
73+ id : "gid://sagittarius/User/2" ,
74+ username : "exampleuser" ,
75+ email : "test@gmail.com" ,
76+ admin : undefined ,
77+ avatarPath : "" ,
78+ firstname : undefined ,
79+ lastname : undefined ,
80+ namespace : undefined ,
81+ namespaceMemberships : undefined ,
82+ createdAt : new Date ( ) . toString ( ) ,
83+ updatedAt : new Date ( ) . toString ( ) ,
84+ emailVerifiedAt : "sd"
85+ } )
86+ ] )
87+ const role = useReactiveArrayService < DNamespaceRoleView , DNamespaceRoleReactiveServiceExtended > ( DNamespaceRoleReactiveServiceExtended , [
88+ new DNamespaceRoleView ( {
89+ id : "gid://sagittarius/NamespaceRole/1" ,
90+ name : "Admin" ,
91+ abilities : [ NamespaceRoleAbility . NamespaceAdministrator ] ,
92+ namespace : {
93+ id : "gid://sagittarius/Namespace/1"
94+ } ,
95+ userAbilities : {
96+ deleteNamespaceRole : true
97+ } ,
98+ assignedProjects : {
99+ nodes : [ {
100+ id : "gid://sagittarius/NamespaceProject/1"
101+ } , {
102+ id : "gid://sagittarius/NamespaceProject/2"
103+ } ]
104+ }
105+ } ) ,
106+ new DNamespaceRoleView ( {
107+ id : "gid://sagittarius/NamespaceRole/2" ,
108+ name : "Editor" ,
109+ abilities : [ NamespaceRoleAbility . UpdateFlow , NamespaceRoleAbility . DeleteFlow , NamespaceRoleAbility . AssignProjectRuntimes , NamespaceRoleAbility . DeleteNamespaceProject ] ,
110+ namespace : {
111+ id : "gid://sagittarius/Namespace/1"
112+ } ,
113+ userAbilities : {
114+ deleteNamespaceRole : true
115+ }
116+ } )
117+ ] )
118+
119+ return (
120+ < ContextStoreProvider
121+ services = { [ role , members , user ] } >
122+ < Container >
123+ { React . useMemo ( ( ) => {
124+ return < DNamespaceMemberList namespaceId = { "gid://sagittarius/Namespace/1" } />
125+ } , [ ] ) }
126+ </ Container >
127+ </ ContextStoreProvider >
128+ )
129+
130+ }
0 commit comments