@mikezimm/fps-library-v2
Version:
Library of reusable typescript/javascript functions, interfaces and constants
51 lines (50 loc) • 2.9 kB
JavaScript
/**
* CodeAnalizerComment: Updated 2 imports on 2024-09-22 14:49:52
* Update:: import { IFPSItem } to '@mikezimm/fps-core-v7/lib/components/molecules/AnyContent/IAnyContent;'
* Update:: import { IWebpartBannerProps } to '@mikezimm/fps-core-v7/lib/banner/mainReact/IWebpartBannerProps;'
*/
import { fetchMyHubsites } from '@mikezimm/fps-core-v7/lib/restAPIs/sites/HubsSubs/fetches/fetchMyHubsites';
import { processHubSubResults } from '@mikezimm/fps-core-v7/lib/restAPIs/sites/HubsSubs/functions/processHubSubResults';
import { createErrorFPSTileItem } from './Any/createErrorFPSTileItem';
import { makeFPSSubHubTiles } from './HubsSubs/makeFPSSubHubTiles';
import { CommonSuppressKeys } from '@mikezimm/fps-core-v7/lib/components/molecules/AnyContent/IsA/IFPSItemIsA';
/**
* getFPSHubTiles was built for Hub Connection's web part to fetch both sites and webs.
* Use the depth property to specify either sites or webs.
* @param bannerProps
* @param sourceProps
* @param search
* @param WPFPSItem - use buildFpsTileWPProps
* @param departmentId - if for current site, leave empty, will get from bannerProps
* @returns
*/
/**
* getFPSHubTiles was built for Hub Connection's web part to fetch both sites and webs.
* Use the depth property to specify either sites or webs.
* @param bannerProps
* @param sourceProps
* @param search
* @param WPFPSItem - use buildFpsTileWPProps
* @param departmentId - if for current site, leave empty, will get from bannerProps
* @returns
*/
export async function getFPSHubTiles(bannerProps, sourceProps, search, webPartFPSItem, departmentId, depth = 'site', surpressKeys = CommonSuppressKeys, filter = 'Associated') {
const useDepartmentId = departmentId ? departmentId : bannerProps.context.pageContext.legacyPageContext.departmentId;
let results = await fetchMyHubsites(bannerProps.fpsSpService, bannerProps.context.pageContext.web.absoluteUrl, depth, useDepartmentId, filter);
if (results.status !== 'Success') {
results.itemsY = [createErrorFPSTileItem(results, webPartFPSItem)];
}
else {
// Updated for https://github.com/fps-solutions/HubCon/issues/13
results = processHubSubResults(results, sourceProps, search, useDepartmentId, ['MSTeam',]);
// moved code from makeFPSSubHubTileItemsV2 directly into here
results = makeFPSSubHubTiles(results, bannerProps, webPartFPSItem, surpressKeys);
// results = buildFPSAnyTileItems( results, bannerProps, webPartFPSItem, ) as IStateSourceHubSubs;
// results = addFPSViewHighlightElements( results, surpressKeys ) as IStateSourceHubSubs;
// results.itemsY.map((item: IAnySourceItem ) => {
// if ( !item.FPSItem.Icon.name ) item.FPSItem.Icon.name = 'SharePointLogo';
// });
}
return results;
}
//# sourceMappingURL=getFPSHubTiles.js.map