@@ -38,19 +38,22 @@ export async function fetchContentData() {
38
38
] ) ;
39
39
40
40
const site = siteStructure . site ;
41
- const spaces = siteStructure . spaces ;
42
- const sections = siteStructure . sections ;
43
41
42
+ const sections = siteStructure . sections ;
43
+ const section = siteStructure . sections ?. find ( section => section . id === content . siteSectionId ) ;
44
+
45
+ const spaces = siteStructure . spaces ?? ( section ? parseSpacesFromSiteSpaces ( section . siteSpaces ) : [ ] ) ;
46
+
44
47
// we grab the space attached to the parent as it contains overriden customizations
45
- const spaceRelativeToParent = spaces . find ( ( space ) => space . id === content . spaceId ) ;
48
+ const spaceRelativeToParent = spaces ? .find ( ( space ) => space . id === content . spaceId ) ;
46
49
47
50
return {
48
51
content,
49
52
contentTarget,
50
53
space : spaceRelativeToParent ?? space ,
51
54
pages,
52
55
sections,
53
- section : siteStructure . section ,
56
+ section,
54
57
site,
55
58
spaces,
56
59
customization,
@@ -143,19 +146,30 @@ async function fetchSiteStructure(args: {
143
146
siteShareKey : string | undefined ;
144
147
siteSpaceId : string | undefined ;
145
148
} ) {
146
- const { organizationId, siteId, siteSpaceId } = args ;
149
+ const { organizationId, siteId, siteShareKey } = args ;
147
150
const [ orgSite , siteStructure , siteParentCustomizations ] = await Promise . all ( [
148
151
getSite ( organizationId , siteId ) ,
149
- getSiteStructure ( { organizationId, siteId } ) ,
152
+ getSiteStructure ( { organizationId, siteId, siteShareKey } ) ,
150
153
getCurrentSiteCustomization ( { organizationId, siteId, siteSpaceId : undefined } ) ,
151
154
] ) ;
152
155
153
- const siteSections = siteStructure . type === 'sections' && siteStructure . structure ? siteStructure . structure : [ ] ;
156
+ const siteSections = siteStructure . type === 'sections' && siteStructure . structure ? siteStructure . structure : null ;
157
+ const siteSpaces = siteStructure . type === 'siteSpaces' && siteStructure . structure ? parseSpacesFromSiteSpaces ( siteStructure . structure ) : null ;
158
+
159
+ // override the title with the customization title
160
+ const site = {
161
+ ...orgSite ,
162
+ ...( siteParentCustomizations ?. title ? { title : siteParentCustomizations . title } : { } ) ,
163
+ } ;
154
164
155
- const section = siteSections . find ( section => section . id === siteSpaceId || section . siteSpaces . find ( siteSpace => siteSpace . id === siteSpaceId ) ) ;
165
+ return {
166
+ site,
167
+ spaces : siteSpaces ,
168
+ sections : siteSections ,
169
+ } ;
170
+ }
156
171
157
- const siteSpaces : SiteSpace [ ] = siteStructure . type === 'siteSpaces' && siteStructure . structure ? siteStructure . structure : section ?. siteSpaces ?? [ ] ;
158
-
172
+ function parseSpacesFromSiteSpaces ( siteSpaces : SiteSpace [ ] ) {
159
173
const spaces : Record < string , Space > = { } ;
160
174
siteSpaces . forEach ( ( siteSpace ) => {
161
175
spaces [ siteSpace . space . id ] = {
@@ -167,19 +181,7 @@ async function fetchSiteStructure(args: {
167
181
} ,
168
182
} ;
169
183
} ) ;
170
-
171
- // override the title with the customization title
172
- const site = {
173
- ...orgSite ,
174
- ...( siteParentCustomizations ?. title ? { title : siteParentCustomizations . title } : { } ) ,
175
- } ;
176
-
177
- return {
178
- site,
179
- spaces : Object . values ( spaces ) ,
180
- sections : siteSections ,
181
- section
182
- } ;
184
+ return Object . values ( spaces ) ;
183
185
}
184
186
185
187
/**
0 commit comments