@@ -21,6 +21,12 @@ const spaceFields = `
2121 }
2222 }
2323 }
24+ editorsList {
25+ memberSpaceId
26+ }
27+ membersList {
28+ memberSpaceId
29+ }
2430` ;
2531
2632const spacesQueryDocument = `
@@ -51,6 +57,8 @@ export const PublicSpaceSchema = EffectSchema.Struct({
5157 id : EffectSchema . String ,
5258 name : EffectSchema . String ,
5359 avatar : EffectSchema . optional ( EffectSchema . String ) ,
60+ editorIds : EffectSchema . Array ( EffectSchema . String ) ,
61+ memberIds : EffectSchema . Array ( EffectSchema . String ) ,
5462} ) ;
5563
5664export type PublicSpace = typeof PublicSpaceSchema . Type ;
@@ -69,6 +77,12 @@ type SpacesQueryResult = {
6977 } | null ;
7078 } [ ] ;
7179 } | null ;
80+ editorsList ?: {
81+ memberSpaceId : string ;
82+ } [ ] ;
83+ membersList ?: {
84+ memberSpaceId : string ;
85+ } [ ] ;
7286 } [ ] ;
7387} ;
7488
@@ -90,6 +104,18 @@ const getAvatarFromSpace = (space: SpaceQueryEntry) => {
90104 return undefined ;
91105} ;
92106
107+ const getEditorIdsFromSpace = ( space : SpaceQueryEntry ) : string [ ] => {
108+ return ( space . editorsList ?? [ ] )
109+ . map ( ( e ) => e . memberSpaceId )
110+ . filter ( ( id ) : id is string => typeof id === 'string' ) ;
111+ } ;
112+
113+ const getMemberIdsFromSpace = ( space : SpaceQueryEntry ) : string [ ] => {
114+ return ( space . membersList ?? [ ] )
115+ . map ( ( m ) => m . memberSpaceId )
116+ . filter ( ( id ) : id is string => typeof id === 'string' ) ;
117+ } ;
118+
93119export const parseSpacesQueryResult = ( queryResult : SpacesQueryResult ) => {
94120 const data : PublicSpace [ ] = [ ] ;
95121 const invalidSpaces : Record < string , unknown > [ ] = [ ] ;
@@ -100,6 +126,8 @@ export const parseSpacesQueryResult = (queryResult: SpacesQueryResult) => {
100126 id : space . id ,
101127 name : space . page ?. name ?? undefined ,
102128 avatar : getAvatarFromSpace ( space ) ,
129+ editorIds : getEditorIdsFromSpace ( space ) ,
130+ memberIds : getMemberIdsFromSpace ( space ) ,
103131 } ;
104132
105133 const decodedSpace = decodeSpace ( rawSpace ) ;
0 commit comments