@@ -259,7 +259,7 @@ export async function fetchSiteContextByIds(
259259 } ;
260260
261261 const sections = ids . siteSection
262- ? parseSiteSectionsAndGroups ( siteStructure , ids . siteSection , ids . siteSpace )
262+ ? parseSiteSectionsAndGroups ( siteStructure , ids . siteSection )
263263 : null ;
264264
265265 // Parse the current siteSpace and siteSpaces based on the site structure type.
@@ -274,9 +274,7 @@ export async function fetchSiteContextByIds(
274274 ) ;
275275 }
276276
277- const visibleSiteSpaces = filterHiddenSiteSpaces ( siteSpaces , ids . siteSpace ) ;
278-
279- return { siteSpaces : visibleSiteSpaces , siteSpace } ;
277+ return { siteSpaces : filterHiddenSiteSpaces ( siteSpaces ) , siteSpace } ;
280278 }
281279
282280 if ( siteStructure . type === 'sections' ) {
@@ -286,7 +284,6 @@ export async function fetchSiteContextByIds(
286284 ) ;
287285
288286 const currentSection = sections . current ;
289- // hidden siteSpaces are already filtered in parseSiteSectionsAndGroups
290287 const siteSpaces = currentSection . siteSpaces ;
291288 const siteSpace = currentSection . siteSpaces . find (
292289 ( siteSpace ) => siteSpace . id === ids . siteSpace
@@ -298,7 +295,7 @@ export async function fetchSiteContextByIds(
298295 ) ;
299296 }
300297
301- return { siteSpaces, siteSpace } ;
298+ return { siteSpaces : filterHiddenSiteSpaces ( siteSpaces ) , siteSpace } ;
302299 }
303300
304301 // @ts -expect-error
@@ -432,56 +429,15 @@ export function checkIsRootSiteContext(context: GitBookSiteContext): boolean {
432429/**
433430 * Filter out hidden site spaces from a list of site spaces.
434431 */
435- function filterHiddenSiteSpaces ( siteSpaces : SiteSpace [ ] , currentSiteSpaceId ?: string ) : SiteSpace [ ] {
436- return siteSpaces . filter (
437- ( siteSpace ) => ! siteSpace . hidden || siteSpace . id === currentSiteSpaceId
438- ) ;
439- }
440-
441- /**
442- * Filter out hidden site spaces from sections and groups recursively.
443- */
444- function filterHiddenSiteSpacesFromSections (
445- sections : ( SiteSection | SiteSectionGroup ) [ ] ,
446- currentSiteSpaceId ?: string
447- ) : ( SiteSection | SiteSectionGroup ) [ ] {
448- return sections . map ( ( item ) => {
449- if ( item . object === 'site-section' ) {
450- return {
451- ...item ,
452- siteSpaces : filterHiddenSiteSpaces ( item . siteSpaces , currentSiteSpaceId ) ,
453- } ;
454- }
455- if ( item . object === 'site-section-group' ) {
456- return {
457- ...item ,
458- children : filterHiddenSiteSpacesFromSections ( item . children , currentSiteSpaceId ) ,
459- } ;
460- }
461- return item ;
462- } ) ;
432+ function filterHiddenSiteSpaces ( siteSpaces : SiteSpace [ ] ) : SiteSpace [ ] {
433+ return siteSpaces . filter ( ( siteSpace ) => ! siteSpace . hidden ) ;
463434}
464435
465- function parseSiteSectionsAndGroups (
466- structure : SiteStructure ,
467- siteSectionId : string ,
468- currentSiteSpaceId ?: string
469- ) {
436+ function parseSiteSectionsAndGroups ( structure : SiteStructure , siteSectionId : string ) {
470437 const sectionsAndGroups = getSiteStructureSections ( structure , { ignoreGroups : false } ) ;
471- const filteredSectionsAndGroups = filterHiddenSiteSpacesFromSections (
472- sectionsAndGroups ,
473- currentSiteSpaceId
474- ) ;
475438 const section = parseCurrentSection ( structure , siteSectionId ) ;
476439 assert ( section , `couldn't find section "${ siteSectionId } " in site structure` ) ;
477- const filteredSection = {
478- ...section ,
479- siteSpaces : filterHiddenSiteSpaces ( section . siteSpaces , currentSiteSpaceId ) ,
480- } ;
481- return {
482- list : filteredSectionsAndGroups ,
483- current : filteredSection ,
484- } satisfies SiteSections ;
440+ return { list : sectionsAndGroups , current : section } satisfies SiteSections ;
485441}
486442
487443function parseCurrentSection ( structure : SiteStructure , siteSectionId : string ) {
0 commit comments