{"version":3,"file":"967.js","mappings":"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","sources":["webpack:///./contentManager/Body/ContentBodyBreadcrumb.tsx?","webpack:///./contentManager/Body/ContentBodyDirectory.tsx?","webpack:///./contentManager/Body/ContentBodyLibraries.tsx?","webpack:///./contentManager/Body/ContentBodySPSearchResults.tsx?","webpack:///./contentManager/Body/ContentManagerBody.tsx?","webpack:///./contentManager/Body/Exchange/ExchangeContent.tsx?","webpack:///./contentManager/Body/Exchange/ExchangeDirectory.tsx?","webpack:///./contentManager/Body/Exchange/ExchangePreview.tsx?","webpack:///./contentManager/ContentManagerHeader.tsx?","webpack:///./contentManager/Home/ContentHomePinned.tsx?","webpack:///./contentManager/Home/ContentHomeRecent.tsx?","webpack:///./contentManager/Home/ContentHomeShared.tsx?","webpack:///./contentManager/Home/ContentManagerHome.tsx?","webpack:///./contentManager/Hooks/useMailboxPopUpAuth.tsx?","webpack:///./contentManager/Hooks/useWindowSize.ts?","webpack:///./contentManager/Panels/CMFAdvancedSearchPanel.tsx?","webpack:///./contentManager/Services/LocationService.ts?","webpack:///./src/taskpane/components/_v2/components/DroppableBreadcrumbItem/DroppableBreadcrumbItem.tsx?"],"sourcesContent":["import React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Breadcrumb, IBreadcrumbItem, MessageBar, MessageBarButton, MessageBarType } from \"@fluentui/react\";\r\nimport { RootState } from \"../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { ComponentTypes } from \"../../src/taskpane/config/config\";\r\nimport { resetContentManagerDirectory, setContentManagerExchange, setContentManagerFilterValue, setContentManagerMoveTo, setContentManagerSearchValue, toggleContentManagerReload } from \"../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { removeDirectoriesByIndex, resetWorkingDirectories } from \"../../src/taskpane/redux/modules/workingDirectory\";\r\nimport { ContentManagerCopyMoveModeEnum } from \"../../src/taskpane/components/enums/ContentManagerCopyMoveModeEnum\";\r\nimport { setFiles } from \"../../src/taskpane/redux/modules/file\";\r\nimport { LanguageContext } from \"../../utilities/LocalizationModule\";\r\nimport { DroppableBreadcrumbItem } from \"../../src/taskpane/components/_v2/components/DroppableBreadcrumbItem/DroppableBreadcrumbItem\";\r\n\r\nexport interface IContentBodyBreadcrumbProps {\r\n}\r\n\r\nexport const ContentBodyBreadcrumb = ({ }: IContentBodyBreadcrumbProps) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n const [breadCrumbItems, setBreadCrumbItems] = React.useState([]);\r\n\r\n const workingDirectories = useSelector((state: RootState) => state.workingDirectories.workingDirectories);\r\n const searchValue = useSelector((state: RootState) => state.contentManagerDirectory.searchValue?.value);\r\n const moveTo = useSelector((state: RootState) => state.contentManagerDirectory.moveTo);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const onBreadcrumbItemClicked = (ev: React.MouseEvent, item: IBreadcrumbItem): void => {\r\n dispatch(removeDirectoriesByIndex(item));\r\n dispatch(toggleContentManagerReload());\r\n dispatch(setContentManagerSearchValue(\"\"));\r\n dispatch(setContentManagerFilterValue(\"\"));\r\n ev?.preventDefault();\r\n ev?.stopPropagation();\r\n };\r\n\r\n const onBreadcrumbResetClicked = (ev: React.MouseEvent, item: IBreadcrumbItem): void => {\r\n dispatch(resetWorkingDirectories());\r\n dispatch(resetContentManagerDirectory());\r\n dispatch(setContentManagerSearchValue(\"\"));\r\n dispatch(setContentManagerFilterValue(\"\"));\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n };\r\n\r\n React.useEffect(() => {\r\n setWorkingDirectoriesBreadcrumb();\r\n }, [workingDirectories, searchValue]);\r\n\r\n const setWorkingDirectoriesBreadcrumb = () => {\r\n let items: IBreadcrumbItem[] = [{ text: \"Home\", key: \"Home\", href: \"#\", onClick: onBreadcrumbResetClicked }];\r\n\r\n if (workingDirectories.some(x => x.sharePointListId || x.type === ComponentTypes.SharePointDocuments || x.type === ComponentTypes.TessAccount || x.type === ComponentTypes.TessProject)) {\r\n workingDirectories.forEach((directory, index: number) => {\r\n if (directory.sharePointListId || directory.type === ComponentTypes.SharePointDocuments || directory.type === ComponentTypes.TessAccount || directory.type === ComponentTypes.TessProject) {\r\n if (index < workingDirectories.length - 1 || searchValue) {\r\n items.push({\r\n text: directory.displayName,\r\n key: index.toString(),\r\n href: \"#\",\r\n onClick: onBreadcrumbItemClicked,\r\n onRender: (item?: IBreadcrumbItem, defaultRender?: (item?: IBreadcrumbItem) => JSX.Element | null) => {\r\n return \r\n {defaultRender!(item)}\r\n ;\r\n }\r\n });\r\n } else {\r\n items.push({ text: directory.displayName, key: index.toString() });\r\n }\r\n }\r\n });\r\n } else if (workingDirectories.some(x => x.type === ComponentTypes.Exchange)) {\r\n workingDirectories.forEach((directory, index: number) => {\r\n items.push({ text: directory.displayName, key: index.toString() });\r\n });\r\n }\r\n\r\n if (searchValue) {\r\n items.push({ text: `Search: ${searchValue}`, key: \"search\" });\r\n }\r\n\r\n setBreadCrumbItems(items);\r\n }\r\n\r\n return (\r\n <>\r\n {moveTo.moveToEnabled && (moveTo.mode === ContentManagerCopyMoveModeEnum.CopySelectedEmails || moveTo.mode === ContentManagerCopyMoveModeEnum.CopyEntireFolderEmails) &&\r\n
\r\n \r\n {\r\n dispatch(setContentManagerMoveTo({\r\n moveToEnabled: false,\r\n workingDirectories: [],\r\n selectedFiles: [],\r\n siteUrl: \"\",\r\n sourceServerRelPath: \"\",\r\n }));\r\n dispatch(setContentManagerExchange({ selectedFolderId: \"\", selectedFolderName: \"\", selectedAccount: \"\" }));\r\n\r\n dispatch(setFiles([]));\r\n }}>{languageStrings.Reset}\r\n
\r\n }\r\n >\r\n {languageStrings.AttentionSaveModeActive}\r\n \r\n }\r\n \r\n \r\n )\r\n};","import React from \"react\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport { DirectionalHint, FontIcon, FontSizes, FontWeights, Icon, IIconProps, IIconStyleProps, IIconStyles, ISearchBoxStyles, IStackItemStyles, IStackTokens, IStyleFunctionOrObject, ITextStyles, ITooltipHostStyles, mergeStyles, SearchBox, Stack, Text, TooltipHost } from \"@fluentui/react\";\r\nimport Location from \"../../src/taskpane/components/directoryComponents/Locations\";\r\nimport SharePointSite from \"../../src/taskpane/components/directoryComponents/sharepoint/SharePointSite\";\r\nimport Teams from \"../../src/taskpane/components/directoryComponents/teams/Teams\";\r\nimport { ContentManagerDirectoryEnum } from \"../../src/taskpane/components/enums/ContentManagerDirectoryEnum\";\r\nimport { IAuthTokenResultDto } from \"../../src/taskpane/interfaces/IAuthTokenResultDto\";\r\nimport { RootState } from \"../../src/taskpane/redux\";\r\nimport { resetContentManagerDirectory, setContentManagerFilterValue } from \"../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { LanguageContext } from \"../../utilities/LocalizationModule\";\r\nimport { resetDuplicateFilesAndOverWriteSettings } from \"../../src/taskpane/redux/modules/file\";\r\nimport { resetLocationBeforeSaving } from \"../../src/taskpane/redux/modules/oneDrive\";\r\nimport { setIsSavingInBackground } from \"../../src/taskpane/redux/modules/savingInBackground\";\r\nimport { resetSavingLocation } from \"../../src/taskpane/redux/modules/savingLocation\";\r\nimport { setSearch } from \"../../src/taskpane/redux/modules/search\";\r\nimport { resetWorkingDirectories } from \"../../src/taskpane/redux/modules/workingDirectory\";\r\nimport ExchangeDirectory from \"./Exchange/ExchangeDirectory\";\r\nimport TessAccounts from \"../../src/taskpane/components/directoryComponents/Tess/TessAccounts\";\r\nimport { useTessPopUpAuth } from \"../Hooks/useTessPopUpAuth\";\r\n\r\nconst headerStackTokens: IStackTokens = { childrenGap: 10 };\r\n\r\nconst filterIcon: IIconProps = { iconName: 'Filter' };\r\n\r\nconst filterBoxStyles: Partial = {\r\n root: { width: \"100%\", borderColor: \"#c8c6c4\", borderRadius: 0 }\r\n};\r\n\r\nconst tooltipDisplayFlexStyle: Partial = {\r\n root: { display: \"flex\" }\r\n};\r\n\r\nconst textStyles: ITextStyles = {\r\n root: {\r\n display: \"flex\",\r\n marginLeft: 10,\r\n },\r\n};\r\n\r\nconst textRegular = mergeStyles({\r\n fontSize: FontSizes.size18,\r\n fontWeight: FontWeights.semibold,\r\n});\r\n\r\nconst menuIconStyles: IStyleFunctionOrObject = {\r\n root: {\r\n fontSize: 16,\r\n marginLeft: -5,\r\n paddingBottom: 10,\r\n // paddingTop: 7,\r\n // paddingRight: 15,\r\n selectors: {\r\n \":hover\": { cursor: 'pointer' }\r\n }\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = {\r\n resetContentManagerDirectory,\r\n setContentManagerFilterValue,\r\n resetWorkingDirectories,\r\n resetDuplicateFilesAndOverWriteSettings,\r\n resetSavingLocation,\r\n setIsSavingInBackground,\r\n resetLocationBeforeSaving,\r\n setSearch\r\n};\r\n\r\nconst mapStateToProps = (state: RootState) => {\r\n return {\r\n contentManagerDirectory: state.contentManagerDirectory.directory,\r\n isSideMenuCollapsed: state.contentManagerDirectory.isSideMenuCollapsed,\r\n files: state.files.files,\r\n isTessEnabled: state.tenantInfo?.isTessEnabled\r\n };\r\n};\r\n\r\nconst connector = connect(mapStateToProps, mapDispatchToProps);\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nconst directoryContainerStackStyles: IStackItemStyles = {\r\n root: {\r\n height: \"100%\",\r\n }\r\n};\r\n\r\nexport interface IContentBodyDirectoryProps extends PropsFromRedux {\r\n requestFlowResourceToken?: (loginCallback: (authResult: IAuthTokenResultDto) => Promise) => Promise;\r\n}\r\n\r\nconst ContentBodyDirectory: React.FunctionComponent = ({\r\n resetContentManagerDirectory,\r\n contentManagerDirectory,\r\n isSideMenuCollapsed,\r\n setContentManagerFilterValue,\r\n requestFlowResourceToken,\r\n resetWorkingDirectories,\r\n resetDuplicateFilesAndOverWriteSettings,\r\n resetSavingLocation,\r\n setIsSavingInBackground,\r\n resetLocationBeforeSaving,\r\n setSearch,\r\n files,\r\n isTessEnabled\r\n}: IContentBodyDirectoryProps) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const tessAuthHook = isTessEnabled && useTessPopUpAuth();\r\n\r\n const filter = React.useCallback((filterText: any) => {\r\n setContentManagerFilterValue(filterText?.trim());\r\n }, []);\r\n\r\n const clear = React.useCallback(() => {\r\n setContentManagerFilterValue(\"\");\r\n }, []);\r\n\r\n const goBack = React.useCallback(() => {\r\n resetContentManagerDirectory();\r\n }, []);\r\n\r\n const goHome = React.useCallback(() => {\r\n resetWorkingDirectories();\r\n resetDuplicateFilesAndOverWriteSettings(files);\r\n resetSavingLocation();\r\n setIsSavingInBackground(false);\r\n resetLocationBeforeSaving();\r\n setSearch(\"\");\r\n resetContentManagerDirectory();\r\n }, [files]);\r\n\r\n const filterBox = React.useMemo(() =>\r\n , []);\r\n\r\n return (\r\n \r\n {contentManagerDirectory !== ContentManagerDirectoryEnum.Home && !isSideMenuCollapsed && (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {contentManagerDirectory === ContentManagerDirectoryEnum.SharePoint && \"SharePoint\"}\r\n {contentManagerDirectory === ContentManagerDirectoryEnum.Teams && \"Teams\"}\r\n {contentManagerDirectory === ContentManagerDirectoryEnum.Exchange && \"Exchange\"}\r\n {contentManagerDirectory === ContentManagerDirectoryEnum.Tess && \"Tess\"}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {filterBox}\r\n \r\n \r\n
\r\n \r\n )}\r\n
\r\n
\r\n {isSideMenuCollapsed && \r\n \r\n }\r\n {/* {contentManagerDirectory === ContentManagerDirectoryEnum.Home && } */}\r\n \r\n {/* {!isSideMenuCollapsed && contentManagerDirectory === ContentManagerDirectoryEnum.SharePoint && } */}\r\n \r\n {/* {!isSideMenuCollapsed && contentManagerDirectory === ContentManagerDirectoryEnum.Teams && } */}\r\n \r\n {isTessEnabled && tessAuthHook?.isTessTokenAvailable && }\r\n {!isSideMenuCollapsed && contentManagerDirectory === ContentManagerDirectoryEnum.Exchange && }\r\n
\r\n
\r\n
\r\n )\r\n};\r\n\r\nexport default React.memo(connector(ContentBodyDirectory));","import React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { getLastSplittedStringItem, getRelativeDocumentUrl } from \"../../src/taskpane/components/helpers/stringHelper\";\r\nimport { RootState } from \"../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { CommandBar, ICommandBarItemProps, ICommandBarStyles, ConstrainMode, DetailsListLayoutMode, IColumn, IGroup, mergeStyleSets, ScrollablePane, ScrollbarVisibility, Selection, SelectionMode, ShimmeredDetailsList, TooltipHost, Icon, Label, Link, Dialog, DialogFooter, PrimaryButton, DialogType, IContextualMenuItem, Spinner, SpinnerSize, IIconProps, IDetailsListProps, DetailsHeader, Stack, FontIcon, IStackTokens, DetailsRow, ISpinnerStyles, } from \"@fluentui/react\";\r\nimport { ComponentTypes } from \"../../src/taskpane/config/config\";\r\nimport { IPageSettings } from \"../../src/taskpane/interfaces/IPageSettings\";\r\nimport { addWorkingDirectory, removeDirectoriesByIndexAndAddItem } from \"../../src/taskpane/redux/modules/workingDirectory\";\r\nimport { getItemCustomSelect, getSharePointSiteFromDriveId, getTeamChannelInfo, getTeamChannelRelatedSitesInfo } from \"../../src/taskpane/services/GraphService\";\r\nimport authModule from \"../../utilities/AuthModule\";\r\nimport { LanguageContext } from \"../../utilities/LocalizationModule\";\r\nimport { getLocationDocumentLibraries, getLocationSharepointLists, getLocationSubSites, getLocationTeamChannels, getLocationTessProjectLibrariesAndFolders, getLocationTessProjects, ILocation, ISharepointFolderLocation, ISharepointListLocation, ITeamChannelLocation, ITessProjectLocation, LocationType } from \"../Services/LocationService\";\r\nimport { gridSelectedItems } from \"./ContentManagerBody\";\r\nimport { DocLibraryIcon } from \"@fluentui/react-icons-mdl2\"\r\nimport { addPinnedItem, isFolderPinned, removePinnedItem } from \"../../src/taskpane/redux/modules/pinnedItems\";\r\nimport { ITeamChannelDocumentLibrary } from \"../../src/taskpane/interfaces/services/ITeamChannelDocumentLibrary\";\r\nimport { FileTypeEnum } from \"../../src/taskpane/components/enums/fileTypeEnum\";\r\nimport { FolderTypeIconEnum } from \"../../src/taskpane/components/enums/FolderTypeIconEnum\";\r\nimport { IStoreItem } from \"../../src/taskpane/interfaces/IStoredItem\";\r\nimport { CMFAdvancedSearchPanel } from \"../Panels/CMFAdvancedSearchPanel\";\r\nimport { detailRowLinkStyles } from \"../../src/taskpane/config/controlStyles\";\r\nimport { setIsContentManagerContentLoading } from \"../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { documentLibraryItem, SiteItem } from \"../../src/taskpane/redux/models/reduxModels\";\r\nimport { CMPermissionsPanel } from \"../Panels/CMPermissionsPanel\";\r\nimport { logger } from \"../../utilities/logger\";\r\nimport { gridFontIconStyles } from \"../../src/taskpane/styles/iconStyles\";\r\nimport { FileIconType, getFileTypeIconProps } from \"@fluentui/react-file-type-icons\";\r\nimport { displayHeight, SharePointFolderContentTypeIds } from \"../../src/taskpane/config/constants\";\r\nimport { DraggableContainer } from \"../../src/taskpane/components/_v2/components/Explorer/FolderView/DraggableContainer\";\r\nimport generalModule from \"../../utilities/GeneralModule\";\r\nimport { ChannelShareIcon } from \"../../src/taskpane/components/_v2/components/SvgIcons/ChannelShareIcon\";\r\nimport { ChannelPrivateIcon } from \"../../src/taskpane/components/_v2/components/SvgIcons/ChannelPrivateIcon\";\r\nimport { getLists } from \"../../src/taskpane/services/SharePointRestServices\";\r\nimport { IListInfo } from \"@pnp/sp/lists/types\";\r\nimport { TessProjectStatusEnum } from \"../../src/taskpane/services/TessService\";\r\nimport { IHit } from \"../../src/taskpane/interfaces/IGraphSearchQueryResult\";\r\nimport { tryGetSiteRelativeUrl } from \"../../src/taskpane/components/helpers/UrlHelper\";\r\nimport { tryDecodeUriComponent } from \"../../utilities/EncodeDecode\";\r\nimport { CancellableSharePointRestApi } from \"../../src/taskpane/services/CancellableSharePointRestApi\";\r\n\r\nconst classNames = mergeStyleSets({\r\n wrapper: {\r\n height: displayHeight,\r\n position: \"relative\",\r\n },\r\n svgIcon: {\r\n fontSize: 18\r\n }\r\n});\r\n\r\nconst openInBrowserIconProps: IIconProps = { iconName: \"SharepointLogo\" };\r\nconst unpinIconProps: IIconProps = { iconName: \"Unpin\" };\r\nconst pinIconProps: IIconProps = { iconName: \"Pin\" };\r\n// const advancedSearchIconProps: IIconProps = { iconName: \"SearchData\" };\r\nconst refreshIconProps: IIconProps = { iconName: \"Refresh\" };\r\nconst permissionsIconProps: IIconProps = { iconName: \"Permissions\" };\r\n\r\nconst commandBarStyle: Partial = {\r\n root: {\r\n borderTop: '1px solid rgb(237, 235, 233);',\r\n borderBottom: '1px solid rgb(237, 235, 233);',\r\n paddingLeft: 0,\r\n paddingRight: 10,\r\n paddingBottom: 3,\r\n paddingTop: 3\r\n }\r\n};\r\n\r\nconst gridLinkStackTokens: IStackTokens = {\r\n childrenGap: 5\r\n};\r\n\r\nconst rootLevelItemsSpinnerStyles: ISpinnerStyles = {\r\n root: {\r\n alignItems: \"flex-start\"\r\n }\r\n}\r\n\r\nfunction _copyAndSort(items: T[], columnKey: string, isSortedDescending?: boolean): T[] {\r\n const key = columnKey as keyof T;\r\n return items.slice(0).sort((a: T, b: T) => ((isSortedDescending ? a[key] < b[key] : a[key] > b[key]) ? 1 : -1));\r\n};\r\n\r\nconst _getKey = (item: any, index?: number): string => {\r\n return item?.key;\r\n};\r\n\r\ninterface IContentBodyLibrariesProps {\r\n}\r\n\r\nexport const ContentBodyLibraries: React.FunctionComponent = ({\r\n\r\n}: IContentBodyLibrariesProps) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const workingDirectories = useSelector((state: RootState) => state.workingDirectories.workingDirectories);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const siteInfo = useSelector((state: RootState) => state.tenantInfo.sites);\r\n const allowedSites = useSelector((state: RootState) => state.tenantInfo?.allowedSiteCollections);\r\n const tenantEnablePermissionManagement = useSelector((state: RootState) => state.tenantInfo?.enablePermissionManagement);\r\n const hideDocumentLibrariesInTeams = useSelector((state: RootState) => state.tenantInfo?.hideDocumentLibrariesInTeams);\r\n const allowOpenInSharePoint = useSelector((state: RootState) => state.user.tenantAllowOpenInSharePoint ?? true);\r\n const pinnedItems = useSelector((state: RootState) => state.pinned?.pinnedItems);\r\n const isTessEnabled = useSelector((state: RootState) => state.tenantInfo?.isTessEnabled);\r\n\r\n const [refresh, setRefresh] = React.useState(false);\r\n const [isLoading, setIsLoading] = React.useState(true);\r\n const [isUploadingFiles, setIsUploadingFiles] = React.useState(false);\r\n const [isTeamChannelInfoLoading, setIsTeamChannelInfoLoading] = React.useState(false);\r\n\r\n const [commandItems, setCommandItems] = React.useState();\r\n const [commandFarItems, setCommandFarItems] = React.useState();\r\n const [columns, setColumns] = React.useState(null);\r\n const [groups, setGroups] = React.useState(null);\r\n\r\n const [hubAssociatedHubs, setHubAssociatedHubs] = React.useState([]);\r\n const [hubAssociatedSites, setHubAssociatedSites] = React.useState([]);\r\n const [subSites, setSubSites] = React.useState([]);\r\n const [channels, setChannels] = React.useState([]);\r\n const [documentLibraries, setDocumentLibraries] = React.useState([]);\r\n const [sharepointLists, setSharepointLists] = React.useState([]);\r\n const [tessActiveProjectSites, setTessActiveProjectSites] = React.useState([]);\r\n const [tessDraftProjectSites, setTessDraftProjectSites] = React.useState([]);\r\n const [tessFinishedProjectSites, setTessFinishedProjectSites] = React.useState([]);\r\n const [tessProjectFolders, setTessProjectFolders] = React.useState([]);\r\n\r\n const [items, setItems] = React.useState<(ILocation | null)[] | undefined>(undefined);\r\n const [selectedLocation, setSelectedLocation] = React.useState();\r\n const [selectedItems, setSelectedItems] = React.useState({ items: [], count: 0 });\r\n const [selectedSharepointListId, setSelectedSharepointListId] = React.useState();\r\n\r\n const [isAdvancedSearchPanelOpen, setIsAdvancedSearchPanelOpen] = React.useState(false);\r\n const [isPermissionsPanelOpen, setIsPermissionsPanelOpen] = React.useState(false);\r\n\r\n const cancellableSharePointRestApiService = React.useRef();\r\n\r\n const _selection = React.useRef(new Selection({\r\n onSelectionChanged: () => _getSelectionDetails()\r\n }));\r\n\r\n const _getSelectionDetails = () => {\r\n setSelectedItems({ items: _selection.current.getSelection(), count: _selection.current.getSelectedCount() });\r\n };\r\n\r\n const [isChannelErrorDialogHidden, setIsChannelErrorDialogHidden] = React.useState(true);\r\n\r\n const hideChannelErrorDialog = () => {\r\n setIsChannelErrorDialogHidden(true);\r\n }\r\n const showChannelErrorDialog = () => {\r\n setIsChannelErrorDialogHidden(false);\r\n }\r\n\r\n React.useEffect(() => {\r\n const columns: IColumn[] = [\r\n {\r\n key: 'locationIcon',\r\n name: 'Icon',\r\n isIconOnly: true,\r\n minWidth: 20,\r\n maxWidth: 20,\r\n onRender: (item: ILocation) => getLocationImage(item),\r\n },\r\n {\r\n key: 'locationName',\r\n name: languageStrings.Name,\r\n fieldName: 'displayName',\r\n minWidth: 250,\r\n maxWidth: 350,\r\n isRowHeader: true,\r\n isResizable: true,\r\n isSorted: true,\r\n isSortedDescending: false,\r\n sortAscendingAriaLabel: 'Sorted A to Z',\r\n sortDescendingAriaLabel: 'Sorted Z to A',\r\n data: 'string',\r\n onRender: (item: ILocation) => (\r\n 0 ? item.description : null}>\r\n {\r\n getLocationLink(item)\r\n }\r\n \r\n ),\r\n isPadded: true,\r\n }\r\n ];\r\n\r\n const isTessLocation: boolean = isTessEnabled && (currentDirectory?.type === ComponentTypes.TessAccount || currentDirectory?.type === ComponentTypes.TessProject);\r\n const loadListsAndLibraries: boolean = !currentDirectory?.isSharedTeam && (!hideDocumentLibrariesInTeams || !currentDirectory?.teamGroupId);\r\n if (loadListsAndLibraries) {\r\n if (!isTessLocation) {\r\n columns.push(\r\n {\r\n key: 'locationRootItemCount',\r\n name: languageStrings.TopLevelItems,\r\n fieldName: 'rootItemCount',\r\n minWidth: 80,\r\n maxWidth: 80,\r\n isResizable: true,\r\n data: 'number',\r\n onRender: (item: ILocation) => {\r\n const listLocation: ISharepointListLocation = item as ISharepointListLocation;\r\n if (listLocation?.rootItemCount !== undefined) {\r\n return {listLocation.rootItemCount};\r\n }\r\n\r\n if (listLocation.type === LocationType.DocumentLibrary && listLocation.isCalculatingRootItemCount) {\r\n return ;\r\n }\r\n\r\n return null;\r\n },\r\n isPadded: true,\r\n }\r\n );\r\n }\r\n\r\n columns.push(\r\n {\r\n key: 'locationItemCount',\r\n name: languageStrings.Items,\r\n fieldName: 'itemCount',\r\n minWidth: 50,\r\n maxWidth: 50,\r\n isResizable: true,\r\n data: 'number',\r\n onRender: (item: ILocation) => {\r\n const listLocation: ISharepointListLocation = item as ISharepointListLocation;\r\n if (listLocation?.itemCount !== undefined) {\r\n return {listLocation.itemCount};\r\n }\r\n else {\r\n return null;\r\n }\r\n },\r\n isPadded: true,\r\n }\r\n );\r\n }\r\n\r\n columns.push(\r\n {\r\n key: 'locationType',\r\n name: \"Type\",\r\n fieldName: 'type',\r\n minWidth: 200,\r\n maxWidth: 200,\r\n isResizable: true,\r\n sortAscendingAriaLabel: 'Sorted A to Z',\r\n sortDescendingAriaLabel: 'Sorted Z to A',\r\n data: 'string',\r\n onRender: (item: ILocation) => getLocationTypeText(item),\r\n isPadded: true,\r\n },\r\n {\r\n key: 'locationCreated',\r\n name: languageStrings.Created,\r\n fieldName: 'createdDateTimeValue',\r\n minWidth: 70,\r\n maxWidth: 90,\r\n isResizable: true,\r\n data: 'number',\r\n onRender: (item: ILocation) => {\r\n return {item.createdDateTime};\r\n },\r\n isPadded: true,\r\n },\r\n {\r\n key: 'locaionModified',\r\n name: languageStrings.Modified,\r\n fieldName: 'lastModifiedDateTimeValue',\r\n minWidth: 70,\r\n isResizable: true,\r\n data: 'number',\r\n onRender: (item: ILocation) => {\r\n return {item.lastModifiedDateTime};\r\n },\r\n isPadded: true,\r\n }\r\n );\r\n\r\n setColumns(columns);\r\n\r\n if (currentDirectory?.siteId || currentDirectory.type === ComponentTypes.TessProject) {\r\n\r\n if (currentDirectory?.webUrl) {\r\n cancellableSharePointRestApiService.current = new CancellableSharePointRestApi(currentDirectory.webUrl);\r\n }\r\n\r\n (async () => {\r\n setIsLoading(true);\r\n\r\n try {\r\n const graphAccessToken = await authModule.getGraphAccessToken();\r\n let [hubSites, subSites, channels, documentLibraries, sharepointLists, allListCount, tessAccountContent, tessProjectLibsAndFolders] = await Promise.all([\r\n currentDirectory.isHub && !isTessLocation ? getLocationSubSites(graphAccessToken, currentDirectory.hubId, allowedSites, true) : [],\r\n !currentDirectory.isSharedTeam && !isTessLocation ? getLocationSubSites(graphAccessToken, currentDirectory.siteId, allowedSites) : [],\r\n !isTessLocation ? getLocationTeamChannels(graphAccessToken, currentDirectory.teamGroupId) : [],\r\n !currentDirectory.isSharedTeam && (!hideDocumentLibrariesInTeams || !currentDirectory.teamGroupId) && !isTessLocation ? getLocationDocumentLibraries(graphAccessToken, currentDirectory.siteId) : [],\r\n !currentDirectory.isSharedTeam && (!hideDocumentLibrariesInTeams || !currentDirectory.teamGroupId) && !isTessLocation ? getLocationSharepointLists(graphAccessToken, currentDirectory.siteId) : [],\r\n !currentDirectory.isSharedTeam && !isTessLocation ? getLists(await authModule.getSharePointAccessToken(), currentDirectory.webUrl) : [],\r\n currentDirectory.type === ComponentTypes.TessAccount && currentDirectory.tessAccountId ? getLocationTessProjects(graphAccessToken, currentDirectory.tessAccountId) : null,\r\n currentDirectory.type === ComponentTypes.TessProject && currentDirectory.tessAccountId && currentDirectory.tessProjectId ? getLocationTessProjectLibrariesAndFolders(graphAccessToken, currentDirectory.tessAccountId, currentDirectory.tessProjectId) : null\r\n ]);\r\n\r\n if (isTessLocation && (tessAccountContent?.libraries?.length > 0 || tessProjectLibsAndFolders?.libraries?.length > 0)) {\r\n allListCount = await getLists(await authModule.getSharePointAccessToken(), tessAccountContent?.libraries?.length > 0 ? tessAccountContent.libraries[0].siteUrl : tessProjectLibsAndFolders.libraries[0].siteUrl);\r\n }\r\n\r\n const groups: IGroup[] = [];\r\n const hubAssociatedHubs = hubSites?.filter(site => site.isHub);\r\n\r\n let nextGroupStartIndex: number = 0;\r\n\r\n if (hubAssociatedHubs?.length > 0) {\r\n groups.push({ key: 'hubAssociatedHubsGroup', name: languageStrings.HubAssociatedHubs, startIndex: nextGroupStartIndex, count: hubAssociatedHubs.length, level: 0 });\r\n nextGroupStartIndex += hubAssociatedHubs.length;\r\n }\r\n const hubAssociatedSites = hubSites?.filter(site => !site.isHub);\r\n if (hubAssociatedSites?.length > 0) {\r\n groups.push({ key: 'hubAssociatedSitesGroup', name: languageStrings.HubAssociatedSites, startIndex: nextGroupStartIndex, count: hubAssociatedSites.length, level: 0 });\r\n nextGroupStartIndex += hubAssociatedSites.length;\r\n }\r\n if (subSites?.length > 0) {\r\n groups.push({ key: 'subSitesGroup', name: languageStrings.Subsites, startIndex: nextGroupStartIndex, count: subSites.length, level: 0 });\r\n nextGroupStartIndex += subSites.length;\r\n }\r\n if (channels?.length > 0) {\r\n groups.push({ key: 'channelsGroup', name: languageStrings.Channels, startIndex: nextGroupStartIndex, count: channels.length, level: 0 });\r\n nextGroupStartIndex += channels.length;\r\n\r\n // Cache Private/Shared channel drive info\r\n if (currentDirectory?.teamGroupId && currentDirectory?.teamDriveId) {\r\n getTeamChannelRelatedSitesInfo(currentDirectory.teamGroupId, currentDirectory.teamDriveId, channels);\r\n }\r\n }\r\n const folders = tessAccountContent?.folders ?? tessProjectLibsAndFolders?.folders ?? [];\r\n if (folders.length > 0) {\r\n groups.push({ key: 'tessProjectFolders', name: languageStrings.TessFolders, startIndex: nextGroupStartIndex, count: folders.length, level: 0 });\r\n nextGroupStartIndex += folders.length;\r\n }\r\n\r\n documentLibraries = documentLibraries\r\n .concat(tessAccountContent?.libraries ?? [])\r\n .concat(tessProjectLibsAndFolders?.libraries ?? []);\r\n if (documentLibraries?.length > 0) {\r\n const sites: SiteItem[] = siteInfo?.filter(site => site.displayName?.trim().toLowerCase() === currentDirectory?.siteDisplayName?.trim().toLowerCase());\r\n const hiddenDocumentLibraries: documentLibraryItem[] = sites?.length > 0 ? sites[0]?.documentLibraries?.filter(docLib => docLib.hidden === true) : [];\r\n documentLibraries = documentLibraries.filter(docLib => !hiddenDocumentLibraries.some(hiddenLib => hiddenLib?.title?.trim().toLowerCase() === docLib?.displayName?.trim().toLowerCase()));\r\n groups.push({ key: 'documentLibrariesGroup', name: languageStrings.DocumentLibraries, startIndex: nextGroupStartIndex, count: documentLibraries.length, level: 0 });\r\n nextGroupStartIndex += documentLibraries.length;\r\n\r\n setSharepointListLocationItemCount(allListCount, documentLibraries);\r\n }\r\n\r\n let activeProjects: ITessProjectLocation[] = [];\r\n let draftProjects: ITessProjectLocation[] = [];\r\n let finishedProjects: ITessProjectLocation[] = [];\r\n if (tessAccountContent?.projects?.length > 0) {\r\n activeProjects = tessAccountContent.projects.filter(p => p.status === TessProjectStatusEnum.Active);\r\n if (activeProjects.length > 0) {\r\n groups.push({ key: 'activeProjects', name: languageStrings.TessActiveProjects, startIndex: nextGroupStartIndex, count: activeProjects.length, level: 0 });\r\n nextGroupStartIndex += activeProjects.length;\r\n }\r\n\r\n draftProjects = tessAccountContent.projects.filter(p => p.status === TessProjectStatusEnum.Draft);\r\n if (draftProjects.length > 0) {\r\n groups.push({ key: 'draftProjects', name: languageStrings.TessConceptProjects, startIndex: nextGroupStartIndex, count: draftProjects.length, level: 0 });\r\n nextGroupStartIndex += draftProjects.length;\r\n }\r\n\r\n finishedProjects = tessAccountContent.projects.filter(p => p.status === TessProjectStatusEnum.Finished);\r\n if (finishedProjects.length > 0) {\r\n groups.push({ key: 'finishedProjects', name: languageStrings.TessCompletedProjects, startIndex: nextGroupStartIndex, count: finishedProjects.length, level: 0 });\r\n nextGroupStartIndex += finishedProjects.length;\r\n }\r\n }\r\n\r\n if (sharepointLists?.length > 0) {\r\n groups.push({ key: 'sharepointListsGroup', name: languageStrings.Lists, startIndex: nextGroupStartIndex, count: sharepointLists.length, level: 0 });\r\n\r\n setSharepointListLocationItemCount(allListCount, sharepointLists, true);\r\n }\r\n\r\n setHubAssociatedHubs(hubAssociatedHubs);\r\n setHubAssociatedSites(hubAssociatedSites);\r\n setSubSites(subSites);\r\n setChannels(channels);\r\n\r\n setDocumentLibraries(documentLibraries);\r\n if (!isTessLocation && documentLibraries?.length > 0 && currentDirectory?.webUrl) {\r\n updateSharepointLibraryRootFolderCount(currentDirectory.webUrl, documentLibraries);\r\n }\r\n\r\n setSharepointLists(sharepointLists);\r\n setTessActiveProjectSites(activeProjects);\r\n setTessDraftProjectSites(draftProjects);\r\n setTessFinishedProjectSites(finishedProjects);\r\n setTessProjectFolders(folders);\r\n\r\n setItems([\r\n ...hubAssociatedHubs,\r\n ...hubAssociatedSites,\r\n ...subSites,\r\n ...channels,\r\n ...folders,\r\n ...documentLibraries,\r\n ...activeProjects,\r\n ...draftProjects,\r\n ...finishedProjects,\r\n ...sharepointLists]);\r\n setGroups(groups);\r\n } catch (error) {\r\n logger(error, \"ContentBodyLibraries.tsx (LoadSiteContent)\");\r\n }\r\n\r\n setIsLoading(false);\r\n })();\r\n }\r\n\r\n return () => {\r\n if (currentDirectory?.webUrl) {\r\n cancellableSharePointRestApiService.current.cancel(currentDirectory.webUrl);\r\n }\r\n };\r\n }, [currentDirectory?.siteId, currentDirectory?.tessProjectId, refresh]);\r\n\r\n React.useEffect(() => {\r\n (async () => {\r\n if (selectedItems?.count === 1) {\r\n let isLocationPinned: boolean = false;\r\n const selectedItem: ILocation = selectedItems.items[0];\r\n\r\n switch (selectedItem.type) {\r\n case LocationType.HubSite:\r\n setSelectedSharepointListId(null);\r\n isLocationPinned = pinnedItems && isFolderPinned(null, selectedItem.id, pinnedItems);\r\n break;\r\n\r\n case LocationType.SubSite:\r\n setSelectedSharepointListId(null);\r\n isLocationPinned = pinnedItems && isFolderPinned(null, selectedItem.id, pinnedItems);\r\n break;\r\n\r\n case LocationType.TeamChannel:\r\n setSelectedSharepointListId(null);\r\n const teamItem = selectedItem as ITeamChannelLocation;\r\n const cachedChannel = channels.find(channel => channel.id === teamItem.id) as ITeamChannelLocation;\r\n if (!cachedChannel?.driveInfo) {\r\n setIsTeamChannelInfoLoading(true);\r\n const teamChannelInfo = await getTeamChannelInfo({ channelId: teamItem.id, driveId: currentDirectory.teamDriveId, groupId: currentDirectory.teamGroupId, isPrivate: teamItem.isPrivate, isShared: teamItem.isShared });\r\n\r\n const channelsCopy = channels.slice();\r\n for (const channel of channelsCopy) {\r\n if (channel.id === teamItem.id) {\r\n (channel as ITeamChannelLocation).driveInfo = teamChannelInfo;\r\n break;\r\n }\r\n }\r\n setChannels(channelsCopy);\r\n\r\n isLocationPinned = pinnedItems && isFolderPinned(teamChannelInfo.driveId, teamChannelInfo.driveItemId, pinnedItems);\r\n setIsTeamChannelInfoLoading(false);\r\n }\r\n else {\r\n isLocationPinned = pinnedItems && isFolderPinned(cachedChannel.driveInfo.driveId, cachedChannel.driveInfo.driveItemId, pinnedItems);\r\n }\r\n break;\r\n\r\n case LocationType.DocumentLibrary:\r\n const documentLibraryItem = selectedItem as ISharepointListLocation;\r\n setSelectedSharepointListId(documentLibraryItem.sharePointListId);\r\n isLocationPinned = pinnedItems && isFolderPinned(documentLibraryItem.id, null, pinnedItems);\r\n break;\r\n\r\n case LocationType.SharepointList:\r\n const sharepointListItem = selectedItem as ISharepointListLocation;\r\n setSelectedSharepointListId(sharepointListItem.sharePointListId);\r\n isLocationPinned = pinnedItems && isFolderPinned(sharepointListItem.id, null, pinnedItems);\r\n break;\r\n\r\n case LocationType.TessProject:\r\n setSelectedSharepointListId(null);\r\n isLocationPinned = pinnedItems && isFolderPinned(null, selectedItem.id, pinnedItems);\r\n break;\r\n\r\n case LocationType.Folder:\r\n setSelectedSharepointListId(null);\r\n isLocationPinned = pinnedItems && isFolderPinned(null, selectedItem.id, pinnedItems);\r\n break;\r\n }\r\n\r\n setSelectedLocation({ ...selectedItem, isPinned: isLocationPinned });\r\n }\r\n else {\r\n setSelectedLocation(null);\r\n setSelectedSharepointListId(null);\r\n }\r\n })();\r\n }, [pinnedItems, selectedItems, currentDirectory?.webUrl]);\r\n\r\n React.useEffect(() => {\r\n const items: ICommandBarItemProps[] = allowOpenInSharePoint && (selectedLocation || currentDirectory?.webUrl)\r\n ? [\r\n {\r\n key: \"open\",\r\n disabled: isTeamChannelInfoLoading,\r\n text: `${languageStrings.OpenIn} SharePoint`,\r\n iconProps: openInBrowserIconProps,\r\n onClick: openLocationInBrowser,\r\n onRenderIcon: (isTeamChannelInfoLoading ? () => { return } : undefined)\r\n }\r\n ]\r\n : [];\r\n\r\n if (selectedLocation) {\r\n items.push({\r\n key: \"pinUnpin\",\r\n disabled: selectedLocation == null || isTeamChannelInfoLoading,\r\n text: selectedLocation?.isPinned ? languageStrings.UnpinFolder : languageStrings.PinThisFolder,\r\n iconProps: selectedLocation?.isPinned ? unpinIconProps : pinIconProps,\r\n onClick: pinUnpinLocation,\r\n onRenderIcon: (isTeamChannelInfoLoading ? () => { return } : undefined)\r\n });\r\n\r\n if (selectedSharepointListId && tenantEnablePermissionManagement) {\r\n items.push({\r\n key: \"libraryPermissions\",\r\n text: languageStrings.LibraryPermissions,\r\n iconProps: permissionsIconProps,\r\n onClick: () => {\r\n setIsPermissionsPanelOpen(true);\r\n },\r\n });\r\n }\r\n }\r\n else if (tenantEnablePermissionManagement) {\r\n items.push({\r\n key: \"permissions\",\r\n text: languageStrings.SitePermissions,\r\n iconProps: permissionsIconProps,\r\n onClick: () => {\r\n setIsPermissionsPanelOpen(true);\r\n },\r\n });\r\n }\r\n\r\n setCommandItems(items);\r\n\r\n const farItems: ICommandBarItemProps[] = [\r\n // {\r\n // key: \"advancedSearch\",\r\n // iconProps: advancedSearchIconProps,\r\n // iconOnly: true,\r\n // tooltipHostProps: {\r\n // content: languageStrings.AdvancedSearch,\r\n // },\r\n // onClick: () => {\r\n // // logMessage(\"Content manager Advanced search clicked\", \"Click\");\r\n // dispatch(setMode(ModeEnum.contentManagerAdvancedSearch));\r\n // }\r\n // },\r\n {\r\n key: \"refresh\",\r\n iconProps: refreshIconProps,\r\n iconOnly: true,\r\n tooltipHostProps: {\r\n content: languageStrings.Refresh,\r\n },\r\n onClick: () => {\r\n setRefresh(currentValue => !currentValue);\r\n }\r\n },\r\n ];\r\n\r\n setCommandFarItems(farItems);\r\n }, [currentDirectory?.webUrl, tenantEnablePermissionManagement, selectedLocation, isTeamChannelInfoLoading, selectedSharepointListId, currentDirectory.type]);\r\n\r\n const openLocationInBrowser = React.useCallback((ev?: React.MouseEvent | React.KeyboardEvent, item?: IContextualMenuItem) => {\r\n if (!selectedLocation) {\r\n window.open(currentDirectory.webUrl);\r\n }\r\n else {\r\n (async () => {\r\n switch (selectedLocation.type) {\r\n case LocationType.HubSite:\r\n window.open(selectedLocation.webUrl);\r\n break;\r\n\r\n case LocationType.SubSite:\r\n window.open(selectedLocation.webUrl);\r\n break;\r\n\r\n case LocationType.TeamChannel:\r\n const teamItem = selectedLocation as ITeamChannelLocation;\r\n const cachedChannel = channels.find(channel => channel.id === teamItem.id) as ITeamChannelLocation;\r\n if (!cachedChannel?.driveInfo) {\r\n setIsTeamChannelInfoLoading(true);\r\n const teamChannelInfo: ITeamChannelDocumentLibrary = await getTeamChannelInfo({ channelId: teamItem.id, driveId: currentDirectory.teamDriveId, groupId: currentDirectory.teamGroupId, isPrivate: teamItem.isPrivate, isShared: teamItem.isShared });\r\n if (!teamChannelInfo) {\r\n setIsTeamChannelInfoLoading(false);\r\n showChannelErrorDialog();\r\n break;\r\n }\r\n cachedChannel.driveInfo = teamChannelInfo;\r\n setIsTeamChannelInfoLoading(false);\r\n }\r\n window.open(cachedChannel.driveInfo.driveItemWebUrl);\r\n break;\r\n\r\n case LocationType.DocumentLibrary:\r\n window.open(selectedLocation.webUrl);\r\n break;\r\n\r\n case LocationType.SharepointList:\r\n window.open(selectedLocation.webUrl);\r\n break;\r\n\r\n case LocationType.TessProject:\r\n const project: ITessProjectLocation = selectedLocation as ITessProjectLocation;\r\n if (Array.isArray(project.dossierMetadata) && project.dossierMetadata.length > 0) {\r\n const siteHit: IHit = await getSharePointSiteFromDriveId(project.dossierMetadata[0].driveId);\r\n if (siteHit) {\r\n window.open(siteHit.resource.webUrl);\r\n }\r\n }\r\n break;\r\n\r\n case LocationType.Folder:\r\n window.open(selectedLocation.webUrl);\r\n break;\r\n }\r\n })();\r\n }\r\n }, [currentDirectory?.webUrl, selectedLocation]);\r\n\r\n const pinUnpinLocation = React.useCallback((ev?: React.MouseEvent | React.KeyboardEvent, item?: IContextualMenuItem) => {\r\n (async () => {\r\n const accountId: string = (await authModule.getAccount())?.accountId;\r\n let locations: IPageSettings[];\r\n let driveId: string;\r\n let itemId: string;\r\n let folderTypeIcon: FolderTypeIconEnum;\r\n let webUrl: string;\r\n let sharePointListId: string;\r\n let parentSiteId: string;\r\n let tessAccountId: string;\r\n let tessProjectId: string;\r\n\r\n switch (selectedLocation.type) {\r\n case LocationType.HubSite:\r\n itemId = selectedLocation.id;\r\n folderTypeIcon = FolderTypeIconEnum.sharepointHubSite;\r\n webUrl = selectedLocation.webUrl;\r\n\r\n if (!selectedLocation.isPinned) {\r\n locations = [\r\n ...workingDirectories,\r\n ...[{\r\n type: ComponentTypes.SharePointDocuments,\r\n siteId: selectedLocation.id,\r\n siteDisplayName: selectedLocation.displayName,\r\n webUrl: selectedLocation.webUrl,\r\n directory: \"\",\r\n DocumentLibrary: \"\",\r\n displayName: selectedLocation.displayName\r\n }]\r\n ];\r\n }\r\n break;\r\n\r\n case LocationType.SubSite:\r\n itemId = selectedLocation.id;\r\n folderTypeIcon = FolderTypeIconEnum.sharepointSite;\r\n webUrl = selectedLocation.webUrl;\r\n\r\n if (!selectedLocation.isPinned) {\r\n locations = [\r\n ...workingDirectories,\r\n ...[{\r\n type: ComponentTypes.SharePointDocuments,\r\n siteId: selectedLocation.id,\r\n siteDisplayName: selectedLocation.displayName,\r\n webUrl: selectedLocation.webUrl,\r\n directory: \"\",\r\n DocumentLibrary: \"\",\r\n displayName: selectedLocation.displayName\r\n }]\r\n ];\r\n }\r\n break;\r\n\r\n case LocationType.TeamChannel:\r\n const teamItem = selectedLocation as ITeamChannelLocation;\r\n const cachedChannel = channels.find(channel => channel.id === teamItem.id) as ITeamChannelLocation;\r\n if (!cachedChannel?.driveInfo) {\r\n setIsTeamChannelInfoLoading(true);\r\n const teamChannelInfo: ITeamChannelDocumentLibrary = await getTeamChannelInfo({ channelId: teamItem.id, driveId: currentDirectory.teamDriveId, groupId: currentDirectory.teamGroupId, isPrivate: teamItem.isPrivate, isShared: teamItem.isShared });\r\n if (!teamChannelInfo) {\r\n setIsTeamChannelInfoLoading(false);\r\n showChannelErrorDialog();\r\n break;\r\n }\r\n cachedChannel.driveInfo = teamChannelInfo;\r\n setIsTeamChannelInfoLoading(false);\r\n }\r\n\r\n driveId = cachedChannel.driveInfo.driveId;\r\n itemId = cachedChannel.driveInfo.driveItemId;\r\n folderTypeIcon = FolderTypeIconEnum.teamChannel;\r\n\r\n if (!selectedLocation.isPinned) {\r\n locations = [\r\n ...workingDirectories,\r\n ...[{\r\n id: teamItem.isShared ? driveId : itemId,\r\n parentId: teamItem.isShared ? null : driveId,\r\n fileTitle: teamItem.displayName,\r\n displayName: teamItem.displayName,\r\n siteId: currentDirectory.siteId,\r\n siteDisplayName: currentDirectory.siteDisplayName,\r\n type: ComponentTypes.SharePointFolders,\r\n directory: getRelativeDocumentUrl(cachedChannel.driveInfo.driveItemWebUrl, teamItem.isShared),\r\n DocumentLibrary: cachedChannel.driveInfo.documentLibraryName,\r\n isTeamsRootFolder: true,\r\n isTeamsFolder: true,\r\n isSharedTeamsChannel: teamItem.isShared,\r\n sharePointListId: cachedChannel.driveInfo.sharePointListId,\r\n webUrl: cachedChannel.driveInfo.sharePointSiteUrl,\r\n teamChannelId: teamItem.id\r\n }]\r\n ];\r\n }\r\n break;\r\n\r\n case LocationType.DocumentLibrary:\r\n const documentLibraryItem = selectedLocation as ISharepointListLocation;\r\n\r\n driveId = documentLibraryItem.id;\r\n folderTypeIcon = FolderTypeIconEnum.documentLibrary;\r\n webUrl = documentLibraryItem.webUrl;\r\n sharePointListId = documentLibraryItem.sharePointListId;\r\n\r\n if (!selectedLocation.isPinned) {\r\n locations = [\r\n ...workingDirectories,\r\n ...[{\r\n fileTitle: documentLibraryItem.displayName,\r\n displayName: documentLibraryItem.displayName,\r\n webUrl: currentDirectory.webUrl,\r\n siteId: currentDirectory.siteId,\r\n siteDisplayName: currentDirectory.siteDisplayName,\r\n id: documentLibraryItem.id,\r\n parentId: null,\r\n type: ComponentTypes.SharePointFolders,\r\n directory: !currentDirectory.directory ? (documentLibraryItem.webUrl ? `${getLastSplittedStringItem(documentLibraryItem.webUrl, /[\\s/]+/)}` : documentLibraryItem.displayName) : `${currentDirectory.directory}/${documentLibraryItem.displayName}`,\r\n DocumentLibrary: currentDirectory.DocumentLibrary?.length > 0 ? currentDirectory.DocumentLibrary : documentLibraryItem.displayName,\r\n isTeamsFolder: false,\r\n isTeamsRootFolder: false,\r\n sharePointListId: documentLibraryItem.sharePointListId,\r\n }]\r\n ];\r\n }\r\n break;\r\n\r\n case LocationType.SharepointList:\r\n const sharepointListItem = selectedLocation as ISharepointListLocation;\r\n\r\n driveId = sharepointListItem.id;\r\n folderTypeIcon = FolderTypeIconEnum.sharepointList;\r\n webUrl = sharepointListItem.webUrl;\r\n sharePointListId = sharepointListItem.sharePointListId;\r\n\r\n if (!currentDirectory.siteId) {\r\n const site = workingDirectories.filter(x => x.siteId).slice(-1)[0] as IPageSettings;\r\n parentSiteId = site.siteId;\r\n }\r\n\r\n if (!selectedLocation.isPinned) {\r\n locations = [\r\n ...workingDirectories,\r\n ...[{\r\n fileTitle: sharepointListItem.displayName,\r\n displayName: sharepointListItem.displayName,\r\n webUrl: currentDirectory.webUrl,\r\n siteId: currentDirectory.siteId ? currentDirectory.siteId : parentSiteId,\r\n siteDisplayName: currentDirectory.siteDisplayName,\r\n id: sharepointListItem.id,\r\n parentId: null,\r\n type: ComponentTypes.SharePointList,\r\n directory: !currentDirectory.directory ? (sharepointListItem.webUrl ? `${getLastSplittedStringItem(sharepointListItem.webUrl, /[\\s/]+/)}` : sharepointListItem.displayName) : `${currentDirectory.directory}/${sharepointListItem.displayName}`,\r\n DocumentLibrary: currentDirectory.DocumentLibrary?.length > 0 ? currentDirectory.DocumentLibrary : sharepointListItem.displayName,\r\n isTeamsFolder: false,\r\n isTeamsRootFolder: false,\r\n sharePointListId: sharepointListItem.sharePointListId,\r\n }]\r\n ];\r\n }\r\n break;\r\n\r\n case LocationType.TessProject:\r\n itemId = selectedLocation.id;\r\n folderTypeIcon = FolderTypeIconEnum.sharepointSite;\r\n\r\n if (!selectedLocation.isPinned) {\r\n const project: ITessProjectLocation = selectedLocation as ITessProjectLocation;\r\n if (Array.isArray(project.dossierMetadata) && project.dossierMetadata.length > 0) {\r\n const siteHit: IHit = await getSharePointSiteFromDriveId(project.dossierMetadata[0].driveId);\r\n if (siteHit) {\r\n webUrl = siteHit.resource.webUrl;\r\n }\r\n }\r\n\r\n tessAccountId = workingDirectories.find(x => x.tessAccountId)?.tessAccountId;\r\n tessProjectId = project.tessProjectId;\r\n\r\n locations = [\r\n ...workingDirectories,\r\n ...[{\r\n type: ComponentTypes.TessProject,\r\n siteDisplayName: selectedLocation.displayName,\r\n directory: \"\",\r\n DocumentLibrary: \"\",\r\n displayName: selectedLocation.displayName,\r\n tessAccountId,\r\n tessProjectId\r\n }]\r\n ];\r\n }\r\n break;\r\n\r\n case LocationType.Folder:\r\n const sharepointFolderItem = selectedLocation as ISharepointFolderLocation;\r\n\r\n itemId = sharepointFolderItem.id;\r\n driveId = sharepointFolderItem.driveId;\r\n folderTypeIcon = FolderTypeIconEnum.sharepointFolder;\r\n sharePointListId = sharepointFolderItem.sharePointListId;\r\n let siteDisplayName: string;\r\n\r\n if (!selectedLocation.isPinned) {\r\n const project: ITessProjectLocation = selectedLocation as ITessProjectLocation;\r\n if (Array.isArray(project.dossierMetadata) && project.dossierMetadata.length > 0) {\r\n const siteHit: IHit = await getSharePointSiteFromDriveId(project.dossierMetadata[0].driveId);\r\n if (siteHit) {\r\n webUrl = siteHit.resource.webUrl;\r\n parentSiteId = siteHit.resource.id;\r\n siteDisplayName = siteHit.resource.displayName;\r\n }\r\n }\r\n\r\n const accessToken = await authModule.getGraphAccessToken();\r\n const documentLibraryData = await getItemCustomSelect(accessToken, driveId, null, \"id,name,webDavUrl\");\r\n\r\n if (documentLibraryData) {\r\n locations = [\r\n ...workingDirectories,\r\n ...[{\r\n fileTitle: documentLibraryData.name,\r\n displayName: documentLibraryData.name,\r\n webUrl: webUrl,\r\n siteId: parentSiteId,\r\n siteDisplayName: siteDisplayName,\r\n id: documentLibraryData.id,\r\n type: ComponentTypes.SharePointFolders,\r\n directory: tryGetSiteRelativeUrl(webUrl, tryDecodeUriComponent(new URL(documentLibraryData.webDavUrl).pathname)),\r\n DocumentLibrary: documentLibraryData.name,\r\n sharePointListId: sharePointListId\r\n }],\r\n ...[{\r\n id: sharepointFolderItem.id,\r\n parentId: sharepointFolderItem.driveId,\r\n type: ComponentTypes.SharePointFolders,\r\n siteId: parentSiteId,\r\n siteDisplayName: siteDisplayName,\r\n webUrl: webUrl,\r\n fileTitle: sharepointFolderItem.displayName,\r\n directory: tryGetSiteRelativeUrl(sharepointFolderItem.webUrl, sharepointFolderItem.path),\r\n DocumentLibrary: documentLibraryData?.name,\r\n displayName: sharepointFolderItem.displayName,\r\n isTeamsFolder: false,\r\n sharePointListId: sharepointFolderItem.sharePointListId,\r\n contentTypeId: sharepointFolderItem.contentTypeId,\r\n serverRelativePath: sharepointFolderItem.path,\r\n sharePointUniqueId: sharepointFolderItem.sharePointUniqueId\r\n }]\r\n ];\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (selectedLocation.isPinned) {\r\n dispatch(removePinnedItem(accountId, { driveId: driveId, itemId: itemId }, FileTypeEnum.folder));\r\n }\r\n else {\r\n const pinItem: IStoreItem = {\r\n driveId: driveId,\r\n locations: [...locations],\r\n name: selectedLocation.displayName,\r\n itemId: itemId,\r\n fileType: FileTypeEnum.folder,\r\n folderTypeIcon: folderTypeIcon,\r\n datePinned: new Date(),\r\n folderId: itemId,\r\n webUrl: webUrl,\r\n sharePointListId: sharePointListId,\r\n siteId: parentSiteId ? parentSiteId : currentDirectory.siteId,\r\n tessAccountId,\r\n tessProjectId\r\n };\r\n dispatch(addPinnedItem(accountId, pinItem));\r\n }\r\n })();\r\n }, [selectedLocation]);\r\n\r\n const getLocationImage = React.useCallback((item: ILocation): JSX.Element => {\r\n switch (item.type) {\r\n case LocationType.HubSite:\r\n return \r\n\r\n case LocationType.SubSite:\r\n return ;\r\n\r\n case LocationType.TeamChannel:\r\n return ;\r\n\r\n case LocationType.DocumentLibrary:\r\n return \r\n\r\n case LocationType.SharepointList:\r\n return \r\n\r\n case LocationType.TessProject:\r\n return ;\r\n\r\n case LocationType.Folder:\r\n return \r\n\r\n default:\r\n return ;\r\n }\r\n }, []);\r\n\r\n const browseDocumentLibraryOrFolder = async (item: ILocation) => {\r\n try {\r\n const documentLibraryItem = item as ISharepointListLocation;\r\n if (documentLibraryItem.contentTypeId === SharePointFolderContentTypeIds.folder) {\r\n const folderItem = item as ISharepointFolderLocation;\r\n const accessToken = await authModule.getGraphAccessToken();\r\n const documentLibraryData = await getItemCustomSelect(accessToken, folderItem.driveId, null, \"id,name\");\r\n const folderToAdd: IPageSettings = {\r\n id: folderItem.id,\r\n parentId: folderItem.driveId,\r\n type: ComponentTypes.SharePointFolders,\r\n siteId: workingDirectories.find(x => x.siteId)?.siteId,\r\n siteDisplayName: workingDirectories.find(x => x.siteDisplayName)?.siteDisplayName,\r\n webUrl: folderItem.siteUrl,\r\n fileTitle: folderItem.displayName,\r\n directory: tryGetSiteRelativeUrl(folderItem.webUrl, folderItem.path),\r\n DocumentLibrary: documentLibraryData?.name,\r\n displayName: folderItem.displayName,\r\n isTeamsFolder: false,\r\n sharePointListId: folderItem.sharePointListId,\r\n contentTypeId: folderItem.contentTypeId,\r\n serverRelativePath: folderItem.path,\r\n sharePointUniqueId: folderItem.sharePointUniqueId\r\n };\r\n dispatch(addWorkingDirectory(folderToAdd));\r\n }\r\n else {\r\n const itemToAdd: IPageSettings = {\r\n id: item.id,\r\n type: ComponentTypes.SharePointFolders,\r\n siteId: currentDirectory.siteId,\r\n siteDisplayName: currentDirectory.siteDisplayName,\r\n webUrl: documentLibraryItem.siteUrl || currentDirectory.webUrl,\r\n fileTitle: documentLibraryItem.displayName,\r\n directory: documentLibraryItem.siteUrl && documentLibraryItem.webUrl\r\n ? documentLibraryItem.webUrl.replace(documentLibraryItem.siteUrl, \"\")\r\n : getLastSplittedStringItem(documentLibraryItem.webUrl, /[\\s/]+/),\r\n DocumentLibrary: documentLibraryItem.displayName,\r\n displayName: documentLibraryItem.displayName,\r\n isTeamsFolder: currentDirectory.isTeamsFolder,\r\n sharePointListId: documentLibraryItem.sharePointListId\r\n };\r\n\r\n const sharepointListItemIndex = workingDirectories.findIndex(x => x.sharePointListId);\r\n if (sharepointListItemIndex === -1) {\r\n dispatch(addWorkingDirectory(itemToAdd));\r\n } else {\r\n dispatch(removeDirectoriesByIndexAndAddItem(sharepointListItemIndex, itemToAdd));\r\n }\r\n }\r\n } catch (error) {\r\n logger(error, \"ContentBodyLibraries.tsx (browseDocumentLibraryOrFolder)\");\r\n }\r\n }\r\n\r\n const getLocationLink = React.useCallback((item: ILocation): JSX.Element => {\r\n try {\r\n switch (item.type) {\r\n case LocationType.HubSite:\r\n return {\r\n const itemToAdd: IPageSettings = {\r\n type: ComponentTypes.SharePointDocuments,\r\n siteId: item.id,\r\n siteDisplayName: item.displayName,\r\n webUrl: item.webUrl,\r\n directory: \"\",\r\n DocumentLibrary: \"\",\r\n displayName: item.displayName,\r\n isHub: item.isHub,\r\n hubId: item.hubId,\r\n parentHubId: item.parentHubId\r\n };\r\n dispatch(addWorkingDirectory(itemToAdd));\r\n }}\r\n >\r\n {item.displayName}\r\n \r\n\r\n case LocationType.SubSite:\r\n return {\r\n const itemToAdd: IPageSettings = {\r\n type: ComponentTypes.SharePointDocuments,\r\n siteId: item.id,\r\n siteDisplayName: item.displayName,\r\n webUrl: item.webUrl,\r\n directory: \"\",\r\n DocumentLibrary: \"\",\r\n displayName: item.displayName,\r\n tessProjectId: item.tessProjectId\r\n };\r\n dispatch(addWorkingDirectory(itemToAdd));\r\n }}\r\n >\r\n {item.displayName}\r\n \r\n\r\n case LocationType.TeamChannel:\r\n return {\r\n dispatch(setIsContentManagerContentLoading(true));\r\n const teamItem = item as ITeamChannelLocation;\r\n const teamChannelInfo = await getTeamChannelInfo({ channelId: teamItem.id, driveId: currentDirectory.teamDriveId, groupId: currentDirectory.teamGroupId, isPrivate: teamItem.isPrivate, isShared: teamItem.isShared });\r\n if (!teamChannelInfo) {\r\n dispatch(setIsContentManagerContentLoading(false));\r\n showChannelErrorDialog();\r\n return;\r\n }\r\n const itemToAdd: IPageSettings = {\r\n id: teamItem.isShared ? teamChannelInfo.driveId : teamChannelInfo.driveItemId,\r\n parentId: teamItem.isShared ? null : teamChannelInfo.driveId,\r\n type: ComponentTypes.SharePointFolders,\r\n siteDisplayName: currentDirectory.siteDisplayName,\r\n webUrl: teamChannelInfo.sharePointSiteUrl,\r\n fileTitle: teamItem.displayName,\r\n directory: getRelativeDocumentUrl(teamChannelInfo.driveItemWebUrl, teamItem.isShared),\r\n DocumentLibrary: teamChannelInfo.documentLibraryName,\r\n displayName: teamItem.displayName,\r\n isTeamsRootFolder: true,\r\n isTeamsFolder: currentDirectory.isTeamsFolder,\r\n isSharedTeamsChannel: teamItem.isShared,\r\n sharePointListId: teamChannelInfo.sharePointListId,\r\n teamChannelId: teamItem.id\r\n };\r\n dispatch(setIsContentManagerContentLoading(false));\r\n dispatch(addWorkingDirectory(itemToAdd));\r\n }}\r\n >\r\n \r\n {item.displayName}\r\n {(item as ITeamChannelLocation)?.isPrivate && }\r\n {(item as ITeamChannelLocation)?.isShared && }\r\n \r\n \r\n\r\n case LocationType.DocumentLibrary:\r\n return {\r\n browseDocumentLibraryOrFolder(item);\r\n }}\r\n >\r\n {item.displayName}\r\n \r\n\r\n case LocationType.SharepointList:\r\n return {\r\n const sharepointListItem = item as ISharepointListLocation;\r\n\r\n const itemToAdd: IPageSettings = {\r\n id: item.id,\r\n type: ComponentTypes.SharePointList,\r\n siteId: currentDirectory.siteId,\r\n siteDisplayName: currentDirectory.siteDisplayName,\r\n webUrl: currentDirectory.webUrl,\r\n fileTitle: sharepointListItem.displayName,\r\n directory: getLastSplittedStringItem(sharepointListItem.webUrl, /[\\s/]+/),\r\n sharepointList: sharepointListItem.displayName,\r\n displayName: sharepointListItem.displayName,\r\n isTeamsFolder: currentDirectory.isTeamsFolder,\r\n sharePointListId: sharepointListItem.sharePointListId\r\n };\r\n\r\n const sharepointListItemIndex = workingDirectories.findIndex(x => x.sharePointListId);\r\n if (sharepointListItemIndex === -1) {\r\n dispatch(addWorkingDirectory(itemToAdd));\r\n } else {\r\n dispatch(removeDirectoriesByIndexAndAddItem(sharepointListItemIndex, itemToAdd));\r\n }\r\n }}\r\n >\r\n {item.displayName}\r\n \r\n\r\n case LocationType.TessProject:\r\n return {\r\n const itemToAdd: IPageSettings = {\r\n type: ComponentTypes.TessProject,\r\n siteDisplayName: item.displayName,\r\n directory: \"\",\r\n DocumentLibrary: \"\",\r\n displayName: item.displayName,\r\n tessAccountId: workingDirectories.find(x => x.tessAccountId)?.tessAccountId,\r\n tessProjectId: item.tessProjectId\r\n };\r\n dispatch(addWorkingDirectory(itemToAdd));\r\n }}\r\n >\r\n {item.displayName}\r\n \r\n\r\n case LocationType.Folder:\r\n return {\r\n dispatch(setIsContentManagerContentLoading(true));\r\n browseDocumentLibraryOrFolder(item);\r\n dispatch(setIsContentManagerContentLoading(false));\r\n }}\r\n >\r\n {item.displayName}\r\n \r\n\r\n default:\r\n return ;\r\n }\r\n } catch (error) {\r\n logger(error, \"ContentBodyLibraries.tsx (getLocationLink)\");\r\n return ;\r\n }\r\n }, [currentDirectory]);\r\n\r\n const getLocationTypeText = React.useCallback((item: ILocation): JSX.Element => {\r\n switch (item.type) {\r\n case LocationType.HubSite:\r\n return {languageStrings.HubSite};\r\n\r\n case LocationType.SubSite:\r\n return {\"Subsite\"};\r\n\r\n case LocationType.TeamChannel:\r\n return {\"Team channel\"};\r\n\r\n case LocationType.DocumentLibrary:\r\n return {languageStrings.DocumentLibrary};\r\n\r\n case LocationType.SharepointList:\r\n return {languageStrings.List};\r\n\r\n case LocationType.TessProject:\r\n return {\"Project\"};\r\n\r\n default:\r\n return ;\r\n }\r\n }, []);\r\n\r\n const setSharepointListLocationItemCount = React.useCallback((allListCount: IListInfo[], locations: ISharepointListLocation[], syncTopLevelCount: boolean = false): void => {\r\n if (allListCount?.length > 0) {\r\n locations.forEach(location => {\r\n const list: IListInfo = allListCount.find(list => list.Id === location.sharePointListId);\r\n if (list) {\r\n const listItemCount: number = list.ItemCount;\r\n location.itemCount = listItemCount;\r\n if (syncTopLevelCount || listItemCount === 0) {\r\n location.rootItemCount = listItemCount;\r\n }\r\n }\r\n });\r\n }\r\n }, []);\r\n\r\n const updateSharepointLibraryRootFolderCount = React.useCallback(async (webUrl: string, locations: ISharepointListLocation[]): Promise => {\r\n if (locations?.filter(location => location.itemCount > 0)?.length > 0) {\r\n const timeout = setTimeout(() => {\r\n if (!cancellableSharePointRestApiService.current.getIsCancellationRequested(webUrl)) {\r\n for (let l = 0; l < locations.length; l++) {\r\n if (locations[l].rootItemCount === undefined) {\r\n locations[l].isCalculatingRootItemCount = true;\r\n }\r\n }\r\n setDocumentLibraries([...locations]);\r\n }\r\n }, 1000);\r\n\r\n for (let i = 0; i < locations.length; i += 20) {\r\n const locationsSlices: ISharepointListLocation[] = locations.slice(i, i + 20);\r\n\r\n await Promise.all(locationsSlices.map(async location => {\r\n if (location.itemCount > 0) {\r\n if (!cancellableSharePointRestApiService.current.getIsCancellationRequested(webUrl)) {\r\n let rootItemCount: number = await cancellableSharePointRestApiService.current.getSharepointLibraryRootItemCount(webUrl, location.sharePointListId);\r\n if (rootItemCount > location.itemCount) {\r\n rootItemCount = location.itemCount;\r\n }\r\n location.rootItemCount = rootItemCount;\r\n location.isCalculatingRootItemCount = false;\r\n\r\n if (!cancellableSharePointRestApiService.current.getIsCancellationRequested(webUrl)) {\r\n setDocumentLibraries([...locations]);\r\n }\r\n }\r\n }\r\n }));\r\n }\r\n\r\n clearTimeout(timeout);\r\n }\r\n }, [currentDirectory]);\r\n\r\n const onColumnHeaderClick = React.useCallback((ev: React.MouseEvent, column: IColumn): void => {\r\n const newColumns: IColumn[] = columns.slice();\r\n const currColumn: IColumn = newColumns.filter(currCol => column.key === currCol.key)[0];\r\n newColumns.forEach((newCol: IColumn) => {\r\n if (newCol === currColumn) {\r\n currColumn.isSortedDescending = !currColumn.isSortedDescending;\r\n currColumn.isSorted = true;\r\n } else {\r\n newCol.isSorted = false;\r\n newCol.isSortedDescending = true;\r\n }\r\n });\r\n\r\n const newItems = [\r\n ..._copyAndSort(hubAssociatedHubs, currColumn.fieldName!, currColumn.isSortedDescending),\r\n ..._copyAndSort(hubAssociatedSites, currColumn.fieldName!, currColumn.isSortedDescending),\r\n ..._copyAndSort(subSites, currColumn.fieldName!, currColumn.isSortedDescending),\r\n ..._copyAndSort(channels, currColumn.fieldName!, currColumn.isSortedDescending),\r\n ..._copyAndSort(tessProjectFolders, currColumn.fieldName!, currColumn.isSortedDescending),\r\n ..._copyAndSort(documentLibraries, currColumn.fieldName!, currColumn.isSortedDescending),\r\n ..._copyAndSort(tessActiveProjectSites, currColumn.fieldName!, currColumn.isSortedDescending),\r\n ..._copyAndSort(tessDraftProjectSites, currColumn.fieldName!, currColumn.isSortedDescending),\r\n ..._copyAndSort(tessFinishedProjectSites, currColumn.fieldName!, currColumn.isSortedDescending),\r\n ..._copyAndSort(sharepointLists, currColumn.fieldName!, currColumn.isSortedDescending)\r\n ];\r\n setColumns(newColumns);\r\n setItems(newItems);\r\n }, [columns, hubAssociatedHubs, hubAssociatedSites, subSites, channels, documentLibraries, tessActiveProjectSites, tessDraftProjectSites, tessFinishedProjectSites, sharepointLists, tessProjectFolders, setColumns, setItems]);\r\n\r\n const channelDialogContentProps = {\r\n type: DialogType.largeHeader,\r\n title: languageStrings.TeamsChannel,\r\n closeButtonAriaLabel: \"Close\",\r\n subText: languageStrings.TeamsChannelNotLoaded\r\n };\r\n\r\n const channelErrorDialog = !isChannelErrorDialogHidden && (\r\n \r\n );\r\n\r\n const _onRenderDetailsHeader: IDetailsListProps['onRenderDetailsHeader'] = props => {\r\n if (props) {\r\n return 0 ? !groups?.some(g => !g.isCollapsed) : false} />;\r\n }\r\n return null;\r\n };\r\n\r\n const onGridItemDrop = async (item) => {\r\n browseDocumentLibraryOrFolder(item);\r\n }\r\n\r\n const onDragHover = async (item) => {\r\n browseDocumentLibraryOrFolder(item);\r\n }\r\n\r\n const _onRenderRow: IDetailsListProps['onRenderRow'] = rowProps => {\r\n return (\r\n onDragHover(rowProps.item)} onDropBeforeFiles={() => { generalModule.setOpenPanelUploadPanel(true), setIsUploadingFiles(true) }} onDropAfterFiles={() => onGridItemDrop(rowProps.item)}>\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n \r\n {!isUploadingFiles && }\r\n {isUploadingFiles && }\r\n \r\n
\r\n {channelErrorDialog}\r\n {isAdvancedSearchPanelOpen && setIsAdvancedSearchPanelOpen(false)} />}\r\n {isPermissionsPanelOpen && setIsPermissionsPanelOpen(false)} sharePointListId={selectedSharepointListId} />}\r\n \r\n )\r\n};","import { CommandBarButton, FontIcon, getTheme, IButtonStyles, Icon, IContextualMenuItem, IContextualMenuItemProps, IRenderFunction, Link, mergeStyleSets, Persona, PersonaSize, ScrollablePane, ScrollbarVisibility, Stack, StackItem } from \"@fluentui/react\";\r\nimport { FileIconType, getFileTypeIconProps } from \"@fluentui/react-file-type-icons\";\r\nimport dayjs from \"dayjs\";\r\nimport { IStackItemStyles, IStackStyles, Label } from \"office-ui-fabric-react\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { FileDownLoader } from \"../../src/taskpane/components/helpers/fileDownloader\";\r\nimport { SearchedOneDriveDirectoryBuilder } from \"../../src/taskpane/components/helpers/searchedOneDriveDirectoryBuilder\";\r\nimport { SearchedSharepointFoldersDirectoryBuilder } from \"../../src/taskpane/components/helpers/searchedSharepointFoldersDirectoryBuilder\";\r\nimport { SearchOpenExtensionHelper } from \"../../src/taskpane/components/helpers/SearchOpenExtensionHelper\";\r\nimport { getExtension, removeExtension } from \"../../src/taskpane/components/helpers/stringHelper\";\r\nimport Loader from \"../../src/taskpane/components/Loader\";\r\nimport { IGraphSearchSharePointResponse } from \"../../src/taskpane/components/_v2/redux/api/graph/api-graph-interfaces\";\r\nimport { useLazySearchSharePointQuery } from \"../../src/taskpane/components/_v2/redux/api/graph/api-graph-slice\";\r\nimport { RootState } from \"../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { WebPanel } from \"../../src/taskpane/components/_v2/_shared/WebPanel/WebPanel\";\r\nimport { ComponentTypes } from \"../../src/taskpane/config/config\";\r\nimport { displayHeight, extensions, officeFileType, SharePointFolderContentTypeIds, validPdfExtensions } from \"../../src/taskpane/config/constants\";\r\nimport { IDirectoryBuilder } from \"../../src/taskpane/interfaces/IDirectoryBuilder\";\r\nimport { IOneDriveRootDetails } from \"../../src/taskpane/interfaces/IOneDriveRootDetails\";\r\nimport { setContentManagerSearchValue, setIsContentManagerContentLoading } from \"../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { resetWorkingDirectories, setOneDriveDetails, setWorkingDirectories } from \"../../src/taskpane/redux/modules/workingDirectory\";\r\nimport { checkIfFileOrFolderExist, getFilePdfByteContent, getItem, getItemCustomSelect, getItemWebViewUrl, getListItemWebUrl, getOneDriveRootDetails, getTeamChannelRelatedSitesInfo } from \"../../src/taskpane/services/GraphService\";\r\nimport authModule from \"../../utilities/AuthModule\";\r\nimport { OpenPdfInBrowser } from \"../../utilities/BrowserUtils\";\r\nimport { tryDecodeUriComponent } from \"../../utilities/EncodeDecode\";\r\nimport { LanguageContext } from \"../../utilities/LocalizationModule\";\r\nimport { logger } from \"../../utilities/logger\";\r\nimport { CMErrorModal } from \"../Panels/CMErrorModal\";\r\nimport { CMFilePreviewPanel, MoveDirection, SearchSource } from \"../Panels/CMFilePreviewPanel\";\r\nimport \"../styles/contentmanager.css\";\r\nimport { CMDeleteModal } from \"../Panels/CMDeleteModal\";\r\nimport { brandedCommandbarIconStyles, previewWebPanelStyles } from \"../../src/taskpane/config/controlStyles\";\r\nimport { OneDriveUrlHelper } from \"../../src/taskpane/components/helpers/oneDriveUrlHelper\";\r\nimport { SearchValue } from \"../../src/taskpane/redux/models/reduxModels\";\r\nimport { SearchFilterBuilder } from \"../../utilities/SearchFilterBuilder\";\r\nimport { ModeEnum } from \"../../src/taskpane/components/enums/modeEnum\";\r\nimport * as microsoftTeams from '@microsoft/teams-js'\r\nimport shareToTeams from \"../Services/ShareToTeamsService\";\r\nimport { SharePointSiteHelper } from \"../../utilities/SharePointSiteHelper\";\r\nimport { ISiteInfo } from \"../../src/taskpane/interfaces/ISiteInfo\";\r\nimport { ITeam } from \"../../src/taskpane/interfaces/services/ITeam\";\r\nimport { IPageSettings } from \"../../src/taskpane/interfaces/IPageSettings\";\r\nimport { getFileNameDownloadTemplateAvailable, getFilenameFromTemplate } from \"../../utilities/FileNameDownloadTemplateHelper\";\r\nimport { ImageSizeEnum } from \"../../src/taskpane/components/enums/ImageSizeEnum\";\r\nimport { FolderTypeIconQuery } from \"../../src/taskpane/components/helpers/folderTypeIconQuery\";\r\nimport { ImageTypeEnum } from \"../../src/taskpane/components/enums/ImageTypeEnum\";\r\nimport { HomeItemType } from \"../Home/ContentManagerHome\";\r\nimport { homeBrandIconStyles, homeFontIconStyles, homeFontIconStylesMedium, iconDisplayStyle } from \"../../src/taskpane/styles/iconStyles\";\r\nimport { FolderTypeIconEnum } from \"../../src/taskpane/components/enums/FolderTypeIconEnum\";\r\nimport { CMFileSharePanel, SharePanelMode } from \"../Panels/CMFileSharePanel\";\r\nimport { ITeamChannelDocumentLibrary } from \"../../src/taskpane/interfaces/services/ITeamChannelDocumentLibrary\";\r\nconst searchIconSrc = require(\"../../assets/empty_search.svg\");\r\n\r\nconst theme = getTheme();\r\n\r\nconst modifiedStyle: React.CSSProperties = {\r\n paddingBottom: 4,\r\n};\r\n\r\nconst titleStyle: React.CSSProperties = {\r\n paddingBottom: 3,\r\n fontSize: 14\r\n};\r\n\r\nconst linkStyle: React.CSSProperties = {\r\n fontSize: 16,\r\n color: '#026d70',\r\n fontWeight: 600\r\n};\r\n\r\nconst classNames = mergeStyleSets({\r\n wrapper: {\r\n height: displayHeight,\r\n position: \"relative\",\r\n }\r\n});\r\n\r\nconst headerContainerStackItemStyles: IStackItemStyles = {\r\n root: {\r\n padding: 5,\r\n overflowX: \"auto\",\r\n overflowY: \"hidden\",\r\n maxWidth: \"calc(100vw - 400px)\"\r\n }\r\n};\r\n\r\nconst headerContainerCollapsedStackItemStyles: IStackItemStyles = {\r\n root: {\r\n padding: 5,\r\n overflowX: \"auto\",\r\n overflowY: \"hidden\",\r\n maxWidth: \"calc(100vw - 85px)\"\r\n }\r\n};\r\n\r\nconst selectedSearchResult: React.CSSProperties = {\r\n backgroundColor: theme.palette.themeLighter\r\n};\r\n\r\nconst selectedSearchResultCommandButton: IButtonStyles = {\r\n root: {\r\n backgroundColor: theme.palette.themeLighter\r\n }\r\n}\r\n\r\nconst noResultsStackStyles: Partial = {\r\n root: { width: \"100%\", height: \"calc(100vh - 250px)\", margin: 0, padding: 0, overflow: \"auto\" }\r\n};\r\n\r\nconst odataTypeProp: string = \"@odata.type\";\r\nconst odataSiteType: string = \"#microsoft.graph.site\";\r\n\r\nconst EnsureDistinctResults = (searchResultHits: any[]) => {\r\n return searchResultHits?.filter((obj, index, self) => index === self.findIndex((o) => o.hitId === obj.hitId));\r\n}\r\n\r\ninterface IContentBodySPSearchResultsProps {\r\n searchResults?: IGraphSearchSharePointResponse,\r\n isFetchingResults?: boolean;\r\n searchValue: SearchValue;\r\n}\r\n\r\ninterface IScrollToSelectedListItem {\r\n isSelected: boolean;\r\n}\r\n\r\nconst FocusableListItem: React.FC = ({ isSelected, children }) => {\r\n const listItemRef = React.useRef();\r\n React.useEffect(() => {\r\n if (isSelected && listItemRef.current) {\r\n listItemRef.current.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\r\n }\r\n }, [isSelected]);\r\n return
{children}
;\r\n};\r\n\r\nexport const ContentBodySPSearchResults = (props: IContentBodySPSearchResultsProps) => {\r\n const { searchValue } = props;\r\n\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const sites = useSelector((state: RootState) => state.sharePointInfo.sites);\r\n const teams: ITeam[] = useSelector((state: RootState) => state.teams.teams);\r\n const oneDriveWebUrl = useSelector((state: RootState) => state.user.oneDriveWebUrl);\r\n const oneDriveRootDetails = useSelector((state: RootState) => state.workingDirectories.oneDriveRootDetails);\r\n const tenantOpenDocumentsInClientApp = useSelector((state: RootState) => state.tenantInfo?.openDocumentsInClientApp);\r\n const userAccount = useSelector((state: RootState) => state.user.account);\r\n const mode = useSelector((state: RootState) => state.mode.mode);\r\n const siteInfo = useSelector((state: RootState) => state.tenantInfo?.sites);\r\n const isSideMenuCollapsed = useSelector((state: RootState) => state.contentManagerDirectory.isSideMenuCollapsed);\r\n\r\n const [searchSharepoint, { isFetching: isFetchingSPSearchResults }] = useLazySearchSharePointQuery();\r\n\r\n const [fileTypeList, setFileTypeList] = React.useState([]);\r\n const [selectedFileTypeFilter, setSelectedFileTypeFilter] = React.useState();\r\n\r\n const [spSearchResults, setSpSearchResults] = React.useState(null);\r\n const [isSearchingResults, setIsSearchingResults] = React.useState(false);\r\n const [selectedItem, setSelectedItem] = React.useState(null);\r\n // const [selectedView, setSelectedView] = React.useState(undefined);\r\n const [isCMFilePreviewPanelOpen, setIsCMFilePreviewPanelOpen] = React.useState(false);\r\n const [isCMErrorModalOpen, setIsCMErrorModalOpen] = React.useState(false);\r\n const [errorMessage, setErrorMessage] = React.useState(\"\");\r\n const [showDeleteDialog, setShowDeleteDialog] = React.useState(false);\r\n const [teamsContext, setTeamsContext] = React.useState(null);\r\n\r\n const isInOneDrive = React.useRef(false);\r\n React.useEffect(() => {\r\n if (currentDirectory) {\r\n isInOneDrive.current = (currentDirectory.type == ComponentTypes.OneDrive || currentDirectory.type == ComponentTypes.OneDriveSubFolder);\r\n }\r\n }, [currentDirectory?.type]);\r\n\r\n React.useEffect(() => {\r\n if (searchValue?.value?.trim().length > 0) {\r\n const searchFilter = searchValue?.filterType !== \"\" ? SearchFilterBuilder(searchValue.filterType, oneDriveWebUrl) : \"\";\r\n searchSP(searchValue.value, searchFilter);\r\n // setSelectedView(undefined);\r\n }\r\n }, [searchValue]);\r\n\r\n React.useEffect(() => {\r\n if (mode === ModeEnum.contentManagerTeams) {\r\n microsoftTeams.getContext((context) => {\r\n return setTeamsContext(context);\r\n });\r\n }\r\n }, [mode]);\r\n\r\n React.useEffect(() => {\r\n const uniqueFileTypeList: HomeItemType[] = [{\r\n fileType: 0\r\n }];\r\n\r\n if (Array.isArray(spSearchResults?.hits)) {\r\n const sites = spSearchResults.hits.filter(hit => hit.resource && hit.resource[odataTypeProp] === odataSiteType);\r\n if (sites && sites.length > 0) {\r\n uniqueFileTypeList.push({\r\n fileType: 1\r\n });\r\n }\r\n\r\n const files = spSearchResults.hits.filter(hit => hit.resource?.listItem?.fields?.isDocument || hit.resource?.listItem?.fields?.contentTypeID?.startsWith(SharePointFolderContentTypeIds.document));\r\n if (files && files.length > 0) {\r\n uniqueFileTypeList.push({\r\n fileType: 2\r\n });\r\n }\r\n\r\n const documentSets = spSearchResults.hits.filter(hit => hit.resource?.listItem?.fields?.isContainer && hit.resource?.listItem?.fields?.contentTypeID?.startsWith(SharePointFolderContentTypeIds.documentSet));\r\n if (documentSets && documentSets.length > 0) {\r\n uniqueFileTypeList.push({\r\n fileType: 4\r\n });\r\n }\r\n\r\n const folders = spSearchResults.hits.filter(hit => hit.resource?.listItem?.fields?.isContainer && hit.resource?.listItem?.fields?.contentTypeID?.startsWith(SharePointFolderContentTypeIds.folder) && !hit.resource?.listItem?.fields?.contentTypeID?.startsWith(SharePointFolderContentTypeIds.documentSet));\r\n if (folders && folders.length > 0) {\r\n uniqueFileTypeList.push({\r\n fileType: 3\r\n });\r\n }\r\n\r\n let uniqueExtensions = new Set();\r\n spSearchResults.hits.forEach(obj => {\r\n if (obj.resource?.name && obj.resource.listItem?.fields && (obj.resource.listItem.fields.isDocument || obj.resource.listItem.fields.contentTypeID?.startsWith(SharePointFolderContentTypeIds.document))) {\r\n const fileExt: string = getExtension(obj.resource.name)?.toLowerCase();\r\n if (fileExt) {\r\n uniqueExtensions.add(fileExt);\r\n }\r\n }\r\n });\r\n\r\n let uniqueExtensionsList: string[] = Array.from(uniqueExtensions) as string[];\r\n\r\n uniqueExtensionsList?.forEach(ext => {\r\n uniqueFileTypeList.push({\r\n fileType: 0,\r\n extension: ext\r\n })\r\n });\r\n }\r\n\r\n setFileTypeList(uniqueFileTypeList);\r\n\r\n }, [spSearchResults]);\r\n\r\n React.useEffect(() => {\r\n if (fileTypeList?.length > 0) {\r\n const allFilterItem = fileTypeList.find(x => !x.extension && !x.folderTypeIcon && x.fileType === 0);\r\n setSelectedFileTypeFilter(allFilterItem);\r\n }\r\n }, [fileTypeList]);\r\n\r\n const searchSP = async (searchValue: string, searchFilter: string) => {\r\n setIsSearchingResults(true);\r\n try {\r\n const siteUrlList: string[] = [isInOneDrive.current ? oneDriveRootDetails?.sharePointSiteUrl : currentDirectory?.webUrl];\r\n if (currentDirectory?.teamGroupId && currentDirectory?.teamDriveId) {\r\n const channelSiteInfo: ITeamChannelDocumentLibrary[] = await getTeamChannelRelatedSitesInfo(currentDirectory.teamGroupId, currentDirectory.teamDriveId);\r\n if (Array.isArray(channelSiteInfo) && channelSiteInfo.length > 0) {\r\n channelSiteInfo.forEach(channelInfo => {\r\n if (channelInfo?.sharePointSiteUrl) {\r\n siteUrlList.push(channelInfo?.sharePointSiteUrl);\r\n }\r\n });\r\n }\r\n }\r\n\r\n let siteSearchResults: IGraphSearchSharePointResponse = {\r\n ...(await searchSharepoint({\r\n siteUrlList: siteUrlList,\r\n searchValue: searchValue?.trim(),\r\n searchFilter: searchFilter?.trim(),\r\n accessToken: await authModule.getGraphAccessToken()\r\n }).unwrap())\r\n }\r\n\r\n siteSearchResults.hits = EnsureDistinctResults(siteSearchResults.hits);\r\n\r\n setSpSearchResults(siteSearchResults);\r\n\r\n setIsSearchingResults(false);\r\n\r\n let pageLimit: number = 2;\r\n let from: number = 100;\r\n while (siteSearchResults?.moreResultsAvailable && pageLimit > 0) {\r\n try {\r\n const moreSiteSearchResults = await searchSharepoint({\r\n siteUrlList: siteUrlList,\r\n searchValue: searchValue?.trim(),\r\n searchFilter: searchFilter?.trim(),\r\n from: from,\r\n size: 100,\r\n accessToken: await authModule.getGraphAccessToken()\r\n }).unwrap();\r\n\r\n if (moreSiteSearchResults) {\r\n const resultCopy: IGraphSearchSharePointResponse = {\r\n hits: [],\r\n moreResultsAvailable: moreSiteSearchResults.moreResultsAvailable ?? false,\r\n moreResulttotalsAvailable: moreSiteSearchResults.moreResulttotalsAvailable ?? 0\r\n }\r\n if (moreSiteSearchResults.hits?.length > 0) {\r\n resultCopy.hits = EnsureDistinctResults(siteSearchResults.hits.concat(moreSiteSearchResults.hits));\r\n }\r\n else {\r\n resultCopy.hits = siteSearchResults.hits;\r\n }\r\n siteSearchResults = resultCopy;\r\n\r\n if (siteSearchResults?.moreResultsAvailable) {\r\n from += 100;\r\n pageLimit--;\r\n }\r\n }\r\n } catch (error) {\r\n logger(error, \"ContentBodySPSearchResults.tsx (searchSPSites - moreResultsAvailable)\");\r\n pageLimit = 0;\r\n }\r\n }\r\n\r\n setSpSearchResults(siteSearchResults);\r\n\r\n } catch (error) {\r\n logger(error, \"ContentBodySPSearchResults.tsx (searchSPSites)\");\r\n setErrorMessage(languageStrings.ErrorMessageGeneric);\r\n setIsCMErrorModalOpen(true);\r\n }\r\n setIsSearchingResults(false);\r\n }\r\n\r\n const verifyItemExists = async (hit: any) => {\r\n try {\r\n const exists = await checkIfFileOrFolderExist({ driveId: hit.resource.parentReference.driveId, id: hit.hitId });\r\n if (exists) {\r\n return true;\r\n }\r\n } catch (error) {\r\n // Ignore\r\n }\r\n setErrorMessage(hit?.resource?.listItem?.fields?.isDocument || hit?.resource?.listItem?.fields?.contentTypeID?.startsWith(SharePointFolderContentTypeIds.document)\r\n ? languageStrings.FileRecentlyDeleted\r\n : languageStrings.FolderRecentlyDeleted);\r\n setIsCMErrorModalOpen(true);\r\n return false;\r\n }\r\n\r\n const openFileInBrowser = async (hit: any) => {\r\n try {\r\n const extension: string = getExtension(hit.resource.name);\r\n if (extension?.toLowerCase() === extensions.pdf) {\r\n OpenPdfInBrowser((await authModule.getAccount(false)), hit.resource.parentReference.driveId, hit.hitId, hit.resource.webUrl?.startsWith(oneDriveWebUrl));\r\n }\r\n else {\r\n const url = await getItemWebViewUrl(await authModule.getGraphAccessToken(), hit.resource.parentReference.driveId, hit.hitId);\r\n window.open(url, \"_blank\");\r\n }\r\n } catch (error) {\r\n logger(error, \"ContentBodySPSearchResults.tsx (openFileInBrowser)\");\r\n }\r\n }\r\n\r\n const openFileInApp = async (hit: any, contextMenuClick: boolean = false) => {\r\n if (!contextMenuClick && hit?.hitId && hit.resource && hit.resource.parentReference?.driveId && !(await verifyItemExists(hit))) {\r\n return;\r\n }\r\n\r\n try {\r\n const extension: string = getExtension(hit.resource.name);\r\n if (!contextMenuClick && extension?.toLowerCase() === extensions.pdf) {\r\n OpenPdfInBrowser((await authModule.getAccount(false)), hit.resource.parentReference.driveId, hit.hitId, hit.resource.webUrl?.startsWith(oneDriveWebUrl));\r\n }\r\n else {\r\n const itemInfo = SearchOpenExtensionHelper.determineOfficeFileType(extension);\r\n if (itemInfo.type === officeFileType.App) {\r\n const file = await getItemCustomSelect(await authModule.getGraphAccessToken(), hit.resource.parentReference.driveId, hit.hitId, \"name,sharepointIds\");\r\n if (file?.sharepointIds) {\r\n const fileId: string = file.sharepointIds.listItemUniqueId;\r\n const fileName: string = file.name;\r\n const userEmail: string = userAccount.username;\r\n const userId: string = userAccount.uniqueId;\r\n const siteId: string = file.sharepointIds.siteId;\r\n const listId: string = file.sharepointIds.listId;\r\n const webUrl: string = file.sharepointIds.siteUrl;\r\n window.open(OneDriveUrlHelper.getOpenInOneDriveDesktopUrl(fileId, siteId, listId, userEmail, userId, webUrl, fileName), \"_self\");\r\n }\r\n }\r\n else {\r\n const url = await getListItemWebUrl(await authModule.getGraphAccessToken(), hit.resource.parentReference.driveId, hit.hitId);\r\n window.open(`${itemInfo.localUrlPrepended}${url}`, itemInfo.localUrlPrepended ? \"_self\" : \"_blank\");\r\n }\r\n }\r\n } catch (error) {\r\n logger(error, \"ContentBodySPSearchResults.tsx (openFileInApp)\");\r\n }\r\n }\r\n\r\n const downloadFile = async (hit: any) => {\r\n try {\r\n const driveId: string = hit.resource.parentReference.driveId;\r\n const itemId: string = hit.hitId;\r\n const isOneDriveFile: boolean = oneDriveWebUrl && hit.resource.webUrl?.startsWith(oneDriveWebUrl ?? \"<>\");\r\n\r\n let fileName: string;\r\n\r\n if (!isOneDriveFile && getFileNameDownloadTemplateAvailable(siteInfo)) {\r\n const fileItem: any = await getItem(await authModule.getGraphAccessToken(), driveId, itemId);\r\n\r\n if (fileItem?.sharepointIds) {\r\n const fileNameFromTemplate: string = await getFilenameFromTemplate(\r\n siteInfo,\r\n driveId,\r\n itemId,\r\n fileItem.sharepointIds.siteUrl,\r\n fileItem.sharepointIds.listId,\r\n fileItem.sharepointIds.listItemUniqueId);\r\n\r\n if (fileNameFromTemplate) {\r\n fileName = fileNameFromTemplate;\r\n }\r\n }\r\n }\r\n\r\n if (!fileName) {\r\n fileName = hit.resource.name;\r\n }\r\n\r\n const downloadRequestPayload = {\r\n accessToken: await authModule.getGraphAccessToken(),\r\n items: [{\r\n driveId: hit.resource.parentReference.driveId,\r\n itemId: hit.hitId,\r\n name: fileName\r\n }]\r\n };\r\n\r\n await FileDownLoader.downloadFileStream(downloadRequestPayload);\r\n } catch (error) {\r\n logger(error, \"ContentBodySPSearchResults.tsx (downloadFile)\");\r\n setErrorMessage(languageStrings.DownloadFailure);\r\n setIsCMErrorModalOpen(true);\r\n }\r\n }\r\n\r\n const downloadFileAsPDF = async (hit: any) => {\r\n try {\r\n const driveId: string = hit.resource.parentReference.driveId;\r\n const itemId: string = hit.hitId;\r\n const isOneDriveFile: boolean = oneDriveWebUrl && hit.resource.webUrl?.startsWith(oneDriveWebUrl ?? \"<>\");\r\n\r\n let [pdfContent, fileName] = await Promise.all([\r\n getFilePdfByteContent({\r\n id: itemId,\r\n driveId: driveId\r\n }),\r\n (async () => {\r\n if (!isOneDriveFile && getFileNameDownloadTemplateAvailable(siteInfo)) {\r\n const fileItem: any = await getItem(await authModule.getGraphAccessToken(), driveId, itemId);\r\n\r\n if (fileItem?.sharepointIds) {\r\n const fileNameFromTemplate: string = await getFilenameFromTemplate(\r\n siteInfo,\r\n driveId,\r\n itemId,\r\n fileItem.sharepointIds.siteUrl,\r\n fileItem.sharepointIds.listId,\r\n fileItem.sharepointIds.listItemUniqueId,\r\n extensions.pdf\r\n );\r\n\r\n if (fileNameFromTemplate) {\r\n return fileNameFromTemplate;\r\n }\r\n }\r\n }\r\n return null;\r\n })()\r\n ]);\r\n\r\n if (!fileName) {\r\n fileName = `${removeExtension(hit.resource.name)}.${extensions.pdf}`;\r\n }\r\n\r\n if (!pdfContent) {\r\n setErrorMessage(languageStrings.DownloadAsPdfFailure);\r\n setIsCMErrorModalOpen(true);\r\n }\r\n else {\r\n FileDownLoader.downloadFile(pdfContent, fileName);\r\n }\r\n } catch (error) {\r\n logger(error, \"ContentBodySPSearchResults.tsx (downloadFileAsPDF)\");\r\n setErrorMessage(languageStrings.DownloadAsPdfFailure);\r\n setIsCMErrorModalOpen(true);\r\n }\r\n }\r\n\r\n const [isSharePanelOpen, setIsSharePanelOpen] = React.useState(false);\r\n const sharePanelModeRef = React.useRef(SharePanelMode.Share);\r\n const openSharePanel = React.useCallback((mode: SharePanelMode) => {\r\n sharePanelModeRef.current = mode;\r\n setIsSharePanelOpen(true);\r\n }, []);\r\n\r\n const getContextOptions = (hit: any): IContextualMenuItem[] => {\r\n const contextOptions: IContextualMenuItem[] = [];\r\n try {\r\n if (hit.resource) {\r\n const isInOneDrive: boolean = hit.resource.webUrl?.startsWith(oneDriveWebUrl);\r\n const isSiteResult: boolean = hit.resource[odataTypeProp] === odataSiteType;\r\n const extension: string = !isSiteResult ? getExtension(hit.resource.name) : \"\";\r\n\r\n if (mode === ModeEnum.contentManagerTeams\r\n && hit.resource?.listItem?.fields\r\n && (teamsContext?.frameContext === \"task\" || teamsContext?.frameContext === \"content\")) {\r\n contextOptions.push(\r\n {\r\n key: \"message\",\r\n text: languageStrings.ShareToTeams,\r\n iconProps: { iconName: \"TeamsLogo\" },\r\n onClick: () => {\r\n shareToTeams(\r\n hit.resource.parentReference.driveId,\r\n hit.resource.id,\r\n hit.resource.listItem?.fields?.isDocument || hit.resource.listItem?.fields?.contentTypeID?.startsWith(SharePointFolderContentTypeIds.document),\r\n hit.resource.name,\r\n hit.resource.listItem?.fields?.contentTypeID,\r\n hit.resource.webUrl\r\n );\r\n }\r\n },\r\n )\r\n }\r\n\r\n if (isSiteResult) {\r\n contextOptions.push(\r\n {\r\n key: \"openSiteDocubird\",\r\n iconProps: { iconName: \"FolderOpen\" },\r\n text: languageStrings.Open,\r\n onClick: () => { openLocation(hit, true); }\r\n },\r\n {\r\n key: \"openSiteBrowser\",\r\n iconProps: { iconName: isInOneDrive ? \"OneDriveLogo\" : \"SharepointLogo\" },\r\n text: `${languageStrings.OpenIn} ${isInOneDrive ? \"OneDrive\" : \"SharePoint\"}`,\r\n onClick: () => { openLocation(hit); }\r\n }\r\n );\r\n }\r\n else {\r\n if (hit.resource.listItem?.fields?.isDocument || hit.resource.listItem?.fields?.contentTypeID?.startsWith(SharePointFolderContentTypeIds.document)) { //File\r\n const itemInfo = SearchOpenExtensionHelper.determineOfficeFileType(extension);\r\n if (itemInfo?.type == officeFileType.Browser) {\r\n contextOptions.push({\r\n key: \"openFile\",\r\n iconProps: { iconName: \"BrowserTab\" },\r\n text: languageStrings.OpenFileInBrowser,\r\n onClick: () => { openFileInBrowser(hit); }\r\n });\r\n }\r\n else {\r\n contextOptions.push(\r\n {\r\n key: \"online\",\r\n text: `${languageStrings.OpenIn} ${languageStrings.Browser}`,\r\n iconProps: { iconName: \"BrowserTab\" },\r\n onClick: () => { openFileInBrowser(hit); },\r\n onRenderIcon: (props: IContextualMenuItemProps, defaultRender?: IRenderFunction) => {\r\n return itemInfo && itemInfo.iconSrc ? : defaultRender({ ...props });\r\n },\r\n },\r\n {\r\n key: \"app\",\r\n text: `${languageStrings.OpenIn} ${languageStrings.App}`,\r\n iconProps: { iconName: \"CloneToDesktop\" },\r\n onClick: () => { openFileInApp(hit, true) },\r\n onRenderIcon: (props: IContextualMenuItemProps, defaultRender?: IRenderFunction) => {\r\n return itemInfo && itemInfo.iconSrc ? : defaultRender({ ...props });\r\n },\r\n }\r\n );\r\n }\r\n\r\n contextOptions.push(\r\n {\r\n key: 'preview',\r\n iconProps: { iconName: 'PreviewLink' },\r\n text: languageStrings.ShowPreview,\r\n onClick: () => { openPreview(hit); }\r\n },\r\n {\r\n key: 'download',\r\n iconProps: { iconName: 'Download' },\r\n text: languageStrings.Download,\r\n onClick: () => { downloadFile(hit); }\r\n }\r\n );\r\n\r\n if (validPdfExtensions.some(validExt => getExtension(hit.resource.name)?.toLowerCase() === validExt)) {\r\n contextOptions.push({\r\n key: \"downloadAsPDF\",\r\n text: languageStrings.DownloadAsPdf,\r\n iconProps: { iconName: \"PDF\" },\r\n onClick: () => {\r\n downloadFileAsPDF(hit);\r\n }\r\n });\r\n }\r\n\r\n contextOptions.push(\r\n {\r\n key: \"openFileLocationDocubird\",\r\n iconProps: { iconName: \"FolderOpen\" },\r\n text: languageStrings.OpenFileLocation,\r\n onClick: () => { openLocation(hit, true) }\r\n },\r\n {\r\n key: \"openFileLocationBrowser\",\r\n text: `${languageStrings.OpenFileLocationIn} ${isInOneDrive ? \"OneDrive\" : \"SharePoint\"}`,\r\n iconProps: { iconName: isInOneDrive ? \"OneDriveLogo\" : \"SharepointLogo\" },\r\n onClick: () => { openLocation(hit); }\r\n }\r\n );\r\n }\r\n else { //Folder\r\n contextOptions.push(\r\n {\r\n key: \"openFolderDocubird\",\r\n iconProps: { iconName: \"FolderOpen\" },\r\n text: languageStrings.OpenFolder,\r\n onClick: () => { openLocation(hit, true); }\r\n },\r\n {\r\n key: \"openFolderBrowser\",\r\n iconProps: { iconName: isInOneDrive ? \"OneDriveLogo\" : \"SharepointLogo\" },\r\n text: `${languageStrings.OpenIn} ${isInOneDrive ? \"OneDrive\" : \"SharePoint\"}`,\r\n onClick: () => { openLocation(hit); }\r\n }\r\n );\r\n }\r\n\r\n // Shared options\r\n if (hit.resource.id && hit.resource.parentReference) {\r\n contextOptions.push(\r\n {\r\n key: \"share\",\r\n iconProps: { iconName: \"Share\" },\r\n text: `${languageStrings.Share}`,\r\n onClick: () => {\r\n setSelectedItem(hit);\r\n openSharePanel(SharePanelMode.Share);\r\n }\r\n },\r\n {\r\n key: \"copyLink\",\r\n iconProps: { iconName: \"Link\" },\r\n text: `${languageStrings.CopyLink}`,\r\n onClick: () => {\r\n setSelectedItem(hit);\r\n openSharePanel(SharePanelMode.Copy);\r\n }\r\n },\r\n // {\r\n // key: \"delete\",\r\n // iconProps: { iconName: \"Delete\" },\r\n // text: `${languageStrings.Delete}`,\r\n // onClick: () => {\r\n // setSelectedItem(hit);\r\n // setShowDeleteDialog(true);\r\n // }\r\n // }\r\n );\r\n }\r\n }\r\n }\r\n } catch (error) {\r\n logger(error, \"ContentBodySPSearchResults.tsx (getContextOptions)\");\r\n }\r\n return contextOptions;\r\n }\r\n\r\n const openPreview = (hit: any) => {\r\n setSelectedItem(hit);\r\n setIsCMFilePreviewPanelOpen(true);\r\n }\r\n\r\n const openLocation = React.useCallback(async (hit: any, openInDocubird: boolean = false) => {\r\n if (hit?.hitId && hit.resource && hit.resource.parentReference?.driveId && !(await verifyItemExists(hit))) {\r\n return;\r\n }\r\n\r\n if (hit.resource) {\r\n try {\r\n const isSiteResult: boolean = hit.resource[odataTypeProp] === odataSiteType;\r\n if (isSiteResult) {\r\n let siteItem = {\r\n id: hit.resource.id,\r\n siteId: undefined,\r\n name: hit.resource.displayName,\r\n webUrl: hit.resource.webUrl,\r\n isSite: true,\r\n isHub: false,\r\n hubId: undefined,\r\n parentHubId: undefined\r\n };\r\n\r\n if (SharePointSiteHelper.hubSites?.length > 0) {\r\n const hub: ISiteInfo = SharePointSiteHelper.hubSites.find(hubSite => hubSite.id === siteItem.id);\r\n if (hub) {\r\n siteItem.isHub = true;\r\n siteItem.hubId = hub.hubId;\r\n if (hub.name) siteItem.name = hub.name;\r\n if (hub.parentHubId) siteItem.parentHubId = hub.parentHubId;\r\n }\r\n }\r\n\r\n let directoryToAdd: IPageSettings = {\r\n id: siteItem.id,\r\n type: ComponentTypes.SharePointDocuments,\r\n siteId: siteItem.id,\r\n siteDisplayName: siteItem.name,\r\n webUrl: siteItem.webUrl,\r\n directory: \"\",\r\n DocumentLibrary: \"\",\r\n displayName: siteItem.name,\r\n isHub: siteItem.isHub,\r\n hubId: siteItem.hubId,\r\n parentHubId: siteItem.parentHubId\r\n };\r\n\r\n const teamSite = teams?.find(team => team.siteId === siteItem.id || team.webUrl === siteItem.webUrl);\r\n if (teamSite) {\r\n directoryToAdd.siteId = teamSite.siteId ?? siteItem.id;\r\n directoryToAdd.teamGroupId = teamSite.id;\r\n directoryToAdd.teamDriveId = teamSite.driveId;\r\n directoryToAdd.isSharedTeam = teamSite.isSharedTeam;\r\n }\r\n\r\n dispatch(setWorkingDirectories([\r\n {\r\n type: teamSite ? ComponentTypes.Teams : ComponentTypes.SharePoint,\r\n id: \"2\",\r\n directory: \"\",\r\n displayName: teamSite ? ComponentTypes.Teams : ComponentTypes.SharePoint,\r\n webUrl: \"\",\r\n },\r\n directoryToAdd\r\n ]));\r\n }\r\n else {\r\n const isFile: boolean = hit.resource.listItem?.fields?.isDocument || hit.resource.listItem?.fields?.contentTypeID?.startsWith(SharePointFolderContentTypeIds.document);\r\n const driveId = hit.resource.parentReference?.driveId;\r\n const locationId = isFile ? hit.resource.parentReference?.id : hit.resource.id;\r\n if (!openInDocubird) {\r\n const url = await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, locationId);\r\n window.open(url, \"_blank\");\r\n }\r\n else {\r\n try {\r\n const item = hit.resource;\r\n let locationWebUrl = isFile\r\n ? await getListItemWebUrl(await authModule.getGraphAccessToken(), driveId, locationId)\r\n : item.webUrl;\r\n\r\n if (!locationWebUrl) {\r\n locationWebUrl = await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, locationId);\r\n }\r\n\r\n const driveItemResult = {\r\n id: locationId,\r\n name: item.name,\r\n driveId: driveId,\r\n lastModifiedDateTime: item.lastModifiedDateTime,\r\n webUrl: locationWebUrl,\r\n siteId: item.parentReference?.siteId,\r\n path: tryDecodeUriComponent(\r\n currentDirectory?.webUrl ? locationWebUrl?.replace(currentDirectory?.webUrl, \"\") : new URL(locationWebUrl)?.pathname\r\n ),\r\n }\r\n\r\n dispatch(setIsContentManagerContentLoading(true));\r\n\r\n let directoryBuilder: IDirectoryBuilder;\r\n if (driveItemResult.webUrl?.startsWith(oneDriveWebUrl)) {\r\n let oneDriveDetails: IOneDriveRootDetails;\r\n if (!oneDriveRootDetails) {\r\n oneDriveDetails = await getOneDriveRootDetails();\r\n dispatch(setOneDriveDetails(oneDriveDetails));\r\n }\r\n directoryBuilder = new SearchedOneDriveDirectoryBuilder(oneDriveWebUrl, (oneDriveDetails ?? oneDriveRootDetails).sharePointListId);\r\n }\r\n else {\r\n directoryBuilder = new SearchedSharepointFoldersDirectoryBuilder(\r\n sites,\r\n teams,\r\n currentDirectory?.type,\r\n currentDirectory?.isTeamsFolder || currentDirectory?.type === ComponentTypes.Teams\r\n );\r\n }\r\n\r\n const directories = await directoryBuilder.getFolderDirectories(driveItemResult);\r\n dispatch(setContentManagerSearchValue(\"\"));\r\n dispatch(resetWorkingDirectories(directories));\r\n dispatch(setIsContentManagerContentLoading(false));\r\n } catch (error) {\r\n logger(error, \"ContentBodySPSearchResults.tsx (openFileInBrowser - OpenInDocubird)\");\r\n window.open(await getItemWebViewUrl(await authModule.getGraphAccessToken(), driveId, locationId));\r\n }\r\n }\r\n }\r\n } catch (error) {\r\n logger(error, \"ContentBodySPSearchResults.tsx (openLocation)\");\r\n setErrorMessage(languageStrings.ErrorMessageGeneric);\r\n setIsCMErrorModalOpen(true);\r\n }\r\n }\r\n }, [sites, teams]);\r\n\r\n const getSiteRelativeURL = (hit: any) => {\r\n try {\r\n const domain = new URL(hit.resource.webUrl).origin;\r\n return hit.resource.webUrl.replace(domain, '');\r\n } catch (error) {\r\n logger(error, \"ContentBodySPSearchResults.tsx (getSiteRelativeURL)\", `Search result: ${hit?.resource?.webUrl}`);\r\n }\r\n }\r\n\r\n const viewResults = React.useMemo(() => {\r\n if (selectedFileTypeFilter === fileTypeList.find(x => !x.extension && !x.folderTypeIcon && x.fileType === 0)) {\r\n return spSearchResults?.hits;\r\n } else if (selectedFileTypeFilter === fileTypeList.find(x => !x.extension && !x.folderTypeIcon && x.fileType === 1)) {\r\n return spSearchResults?.hits.filter(hit => hit.resource[odataTypeProp] === odataSiteType);\r\n } else if (selectedFileTypeFilter === fileTypeList.find(x => !x.extension && !x.folderTypeIcon && x.fileType === 2)) {\r\n return spSearchResults?.hits.filter(hit => hit.resource?.listItem?.fields?.isDocument || hit.resource?.listItem?.fields?.contentTypeID?.startsWith(SharePointFolderContentTypeIds.document));\r\n } else if (selectedFileTypeFilter === fileTypeList.find(x => !x.extension && !x.folderTypeIcon && x.fileType === 3)) {\r\n return spSearchResults?.hits.filter(hit => hit.resource?.listItem?.fields?.isContainer && hit.resource?.listItem?.fields?.contentTypeID?.startsWith(SharePointFolderContentTypeIds.folder) && !hit.resource?.listItem?.fields?.contentTypeID?.startsWith(SharePointFolderContentTypeIds.documentSet));\r\n } else if (selectedFileTypeFilter === fileTypeList.find(x => !x.extension && !x.folderTypeIcon && x.fileType === 4)) {\r\n return spSearchResults?.hits.filter(hit => hit.resource?.listItem?.fields?.isContainer && hit.resource?.listItem?.fields?.contentTypeID?.startsWith(SharePointFolderContentTypeIds.documentSet));\r\n } else if (selectedFileTypeFilter.extension) {\r\n return spSearchResults?.hits.filter(hit => getExtension(hit.resource?.name)?.toLowerCase() === selectedFileTypeFilter.extension);\r\n }\r\n return null;\r\n }, [selectedFileTypeFilter, spSearchResults]);\r\n\r\n const getSelectedIndex = React.useCallback(() => {\r\n return (selectedItem && viewResults?.findIndex(hit => hit && hit.hitId === selectedItem.hitId)) ?? -1;\r\n }, [viewResults, selectedItem]);\r\n\r\n const move = React.useCallback((direction: MoveDirection) => {\r\n const currentSelectedIndex: number = getSelectedIndex();\r\n if (currentSelectedIndex !== -1) {\r\n let nextSelectedIndex: number;\r\n if (direction === MoveDirection.Back) {\r\n nextSelectedIndex = currentSelectedIndex - 1;\r\n }\r\n else {\r\n nextSelectedIndex = currentSelectedIndex + 1;\r\n }\r\n\r\n if (Array.isArray(viewResults) && (viewResults.length - 1) >= nextSelectedIndex) {\r\n try {\r\n const itemToSelect = viewResults[nextSelectedIndex];\r\n if (itemToSelect) {\r\n setSelectedItem(itemToSelect);\r\n }\r\n } catch (error) {\r\n // ignore\r\n }\r\n }\r\n }\r\n }, [viewResults, selectedItem]);\r\n\r\n const onDeleteCloseSuccess = (successIds: string[], hasError: boolean) => {\r\n setShowDeleteDialog(false);\r\n\r\n if (hasError) {\r\n setErrorMessage(languageStrings.ErrorDeletingFiles);\r\n setIsCMErrorModalOpen(true);\r\n } else {\r\n const filteredHits = spSearchResults.hits.filter(hit => hit.hitId !== selectedItem.hitId);\r\n setSpSearchResults({\r\n ...spSearchResults,\r\n hits: filteredHits\r\n });\r\n }\r\n }\r\n\r\n const getFolderIconTypeName = (item: HomeItemType) => {\r\n switch (item.folderTypeIcon) {\r\n case FolderTypeIconEnum.sharepointFolder:\r\n return \"Folder\"\r\n\r\n case FolderTypeIconEnum.sharepointSite:\r\n return \"Sites\"\r\n\r\n case FolderTypeIconEnum.documentLibrary:\r\n return \"Library\"\r\n\r\n case FolderTypeIconEnum.oneDrive:\r\n return \"One Drive\"\r\n\r\n case FolderTypeIconEnum.oneDriveSubFolder:\r\n return \"One Drive SubFolder\"\r\n\r\n case FolderTypeIconEnum.teamChannel:\r\n return \"Channels\"\r\n\r\n case FolderTypeIconEnum.teamMainSite:\r\n return \"Team Sites\"\r\n\r\n case FolderTypeIconEnum.teamFolder:\r\n return \"Team Folder\"\r\n\r\n case FolderTypeIconEnum.sharepointDocumentSet:\r\n return \"Document Set\"\r\n\r\n case FolderTypeIconEnum.sharepointList:\r\n return \"Lists\"\r\n\r\n case FolderTypeIconEnum.sharepointHubSite:\r\n return \"Hub Sites\"\r\n\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n const getFontIconClassName = (fontIcon): string => {\r\n if (fontIcon.imageSize === ImageSizeEnum.medium) {\r\n return homeFontIconStylesMedium;\r\n }\r\n return homeFontIconStyles;\r\n }\r\n\r\n const getFolderIconTypeIcon = (item: HomeItemType) => {\r\n const folderIcon = FolderTypeIconQuery.getImage(item.folderTypeIcon);\r\n return folderIcon.imageType === ImageTypeEnum.fileType\r\n ? \r\n : folderIcon.imageType === ImageTypeEnum.url\r\n ? \r\n : ;\r\n }\r\n\r\n const checkIsSelected = (hit: any) => {\r\n return hit?.hitId && selectedItem?.hitId && hit.hitId === selectedItem.hitId;\r\n }\r\n\r\n const getIsPreviewNotSupported = () => {\r\n if (selectedItem?.resource) {\r\n try {\r\n return (selectedItem.resource.listItem?.fields?.isContainer || selectedItem.resource[odataTypeProp] === odataSiteType) ?? false;\r\n } catch (error) {\r\n // ignore\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n return (\r\n <>\r\n {isSearchingResults &&\r\n \r\n }\r\n {!isSearchingResults && !isFetchingSPSearchResults && !spSearchResults?.hits?.length &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {!isSearchingResults && spSearchResults?.hits?.length &&\r\n <>\r\n \r\n \r\n {selectedFileTypeFilter && fileTypeList && fileTypeList.length > 0 && fileTypeList.map((item, index) => {\r\n return (\r\n setSelectedFileTypeFilter(item)}\r\n >\r\n {item.extension && (\r\n \r\n \r\n \r\n \r\n \r\n {item.extension}\r\n \r\n \r\n )}\r\n {item.folderTypeIcon && (\r\n \r\n \r\n {getFolderIconTypeIcon(item)}\r\n \r\n \r\n {getFolderIconTypeName(item)}\r\n \r\n \r\n )}\r\n {!item.folderTypeIcon && !item.extension && item.fileType === 4 && (\r\n \r\n \r\n \r\n \r\n \r\n {\"Document Sets\"}\r\n \r\n \r\n )}\r\n {!item.folderTypeIcon && !item.extension && item.fileType === 3 && (\r\n \r\n \r\n {getFolderIconTypeIcon({ folderTypeIcon: 1, fileType: 0 })}\r\n \r\n \r\n {languageStrings.Folders}\r\n \r\n \r\n )}\r\n {!item.folderTypeIcon && !item.extension && item.fileType === 2 && (\r\n \r\n \r\n \r\n \r\n \r\n {languageStrings.Files}\r\n \r\n \r\n )}\r\n {!item.folderTypeIcon && !item.extension && item.fileType === 1 && (\r\n \r\n \r\n {getFolderIconTypeIcon({ folderTypeIcon: 2, fileType: 0 })}\r\n \r\n \r\n {languageStrings.Sites}\r\n \r\n \r\n )}\r\n {!item.folderTypeIcon && !item.extension && item.fileType === 0 && (\r\n \r\n
{languageStrings.All}
\r\n
\r\n )}\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n {viewResults?.map((hit, index) => {\r\n const isSelected: boolean = checkIsSelected(hit);\r\n return (\r\n \r\n \r\n \r\n {hit.resource[odataTypeProp] === odataSiteType\r\n ? \r\n : (hit.resource?.listItem?.fields?.isDocument || hit.resource?.listItem?.fields?.contentTypeID?.startsWith(SharePointFolderContentTypeIds.document)\r\n ? \r\n : )}\r\n \r\n \r\n \r\n \r\n \r\n
{ hit.resource[odataTypeProp] === odataSiteType || hit.resource?.listItem?.fields?.isContainer ? openLocation(hit, true) : tenantOpenDocumentsInClientApp ? openFileInApp(hit) : openFileInBrowser(hit); }}>{hit.resource.displayName ?? hit.resource.name}
\r\n \r\n {\r\n if (hit?.hitId && hit.resource && hit.resource.parentReference?.driveId) {\r\n verifyItemExists(hit);\r\n }\r\n }}\r\n menuProps={{\r\n shouldFocusOnMount: true,\r\n isBeakVisible: false,\r\n items: getContextOptions(hit)\r\n }} />\r\n \r\n
\r\n
\r\n {hit.resource.lastModifiedBy &&
{hit.resource.lastModifiedBy.user.displayName} modified on {dayjs(hit.resource.lastModifiedDateTime).format(\"l\")}
}\r\n {hit.summary &&
}\r\n
{getSiteRelativeURL(hit)}
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n {isCMFilePreviewPanelOpen && selectedItem && { setIsCMFilePreviewPanelOpen(false); setSelectedItem(null); }} headerText={selectedItem.resource.name} styles={previewWebPanelStyles}>\r\n \r\n }\r\n {isCMErrorModalOpen && setIsCMErrorModalOpen(false)} />}\r\n {showDeleteDialog && setShowDeleteDialog(false)} selectedGraphItem={selectedItem} closeOnSuccess={onDeleteCloseSuccess} />}\r\n {isSharePanelOpen && selectedItem && { setIsSharePanelOpen(false); setSelectedItem(null); }} items={[{ id: selectedItem.resource.id, driveId: selectedItem.resource.parentReference?.driveId, name: selectedItem.resource.name }]} hideSharingInfo={true} mode={sharePanelModeRef.current} />}\r\n \r\n )\r\n};","import { IStackItemStyles, Stack } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { ContentBodyBreadcrumb } from \"./ContentBodyBreadcrumb\";\r\nimport { ContentBodyFilesFolders } from \"./ContentBodyFilesFolders\";\r\nimport { ContentBodySPSearchResults } from \"./ContentBodySPSearchResults\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { ComponentTypes } from \"../../src/taskpane/config/config\";\r\nimport { ContentBodyLibraries } from \"./ContentBodyLibraries\";\r\nimport Loader from \"../../src/taskpane/components/Loader\";\r\nimport { ContentManagerHome } from \"../Home/ContentManagerHome\";\r\nimport { ExchangeContent } from \"./Exchange/ExchangeContent\";\r\nimport { LanguageContext } from \"../../utilities/LocalizationModule\";\r\n\r\nconst contentContainerStackItemStyles: IStackItemStyles = {\r\n root: {\r\n height: \"calc(100vh - 50px)\",\r\n maxWidth: \"calc(100vw - 350px)\"\r\n }\r\n};\r\n\r\nconst contentContainerCollapsedStackItemStyles: IStackItemStyles = {\r\n root: {\r\n height: \"calc(100vh - 50px)\",\r\n maxWidth: \"calc(100vw - 35px)\"\r\n }\r\n};\r\n\r\nexport interface gridSelectedItems {\r\n items: any[],\r\n count: number\r\n}\r\n\r\nexport interface IContentManagerBodyProps {\r\n}\r\n\r\nexport const ContentManagerBody = ({ }: IContentManagerBodyProps) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const isContentLoading = useSelector((state: RootState) => state.contentManagerDirectory.isContentLoading);\r\n const isSideMenuCollapsed = useSelector((state: RootState) => state.contentManagerDirectory.isSideMenuCollapsed);\r\n const searchValue = useSelector((state: RootState) => state.contentManagerDirectory.searchValue);\r\n\r\n return (\r\n \r\n {isContentLoading\r\n ? \r\n : (<>\r\n {!currentDirectory && !searchValue.value && }\r\n\r\n {(currentDirectory || searchValue.value) && }\r\n\r\n {!searchValue.value && currentDirectory && (currentDirectory.type == ComponentTypes.SharePointDocuments || currentDirectory.type === ComponentTypes.TessAccount || currentDirectory.type === ComponentTypes.TessProject) && }\r\n\r\n {currentDirectory && currentDirectory.sharePointListId && }\r\n\r\n {currentDirectory && currentDirectory.type == ComponentTypes.Exchange && }\r\n\r\n {searchValue.value && !currentDirectory?.sharePointListId && currentDirectory?.type !== ComponentTypes.Exchange && }\r\n \r\n )}\r\n \r\n )\r\n};","import { CommandBar, Selection, ConstrainMode, DetailsListLayoutMode, IColumn, ICommandBarItemProps, ICommandBarStyles, IIconProps, mergeStyleSets, ScrollablePane, ScrollbarVisibility, SelectionMode, ShimmeredDetailsList, Stack, Icon, StackItem, Persona, PersonaSize, IDetailsFooterProps, Label, IStackStyles, IDetailsRowProps } from '@fluentui/react';\r\nimport React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { ContentManagerCopyMoveModeEnum } from '../../../src/taskpane/components/enums/ContentManagerCopyMoveModeEnum';\r\nimport { RootState } from '../../../src/taskpane/components/_v2/redux/storeMain';\r\nimport { IFileToUpload } from '../../../src/taskpane/interfaces/IFileToUpload';\r\nimport { resetContentManagerDirectory, setContentManagerExchangeProgress, setContentManagerMoveTo, setContentManagerSearchValue } from '../../../src/taskpane/redux/modules/contentManagerDirectory';\r\nimport { addUploadedFiles, setFiles } from '../../../src/taskpane/redux/modules/file';\r\nimport { LanguageContext } from '../../../utilities/LocalizationModule';\r\nimport { CMConfirmModal } from '../../Panels/CMConfirmModal';\r\nimport dayjs from 'dayjs';\r\nimport 'dayjs/locale/nl'; // import locale\r\nimport 'dayjs/locale/de';\r\nimport { logger } from '../../../utilities/logger';\r\nimport generalModule from '../../../utilities/GeneralModule';\r\nimport ExpanderWithSubtitle from '../../../src/taskpane/components/directoryComponents/ExpanderWithSubtitle';\r\nimport { Fileview } from '../../../src/taskpane/components/_v2/components/Explorer/Fileview/Fileview';\r\nimport { isMobile } from '../../../src/taskpane/styles/mobileStyles';\r\nimport { WebPanel } from '../../../src/taskpane/components/_v2/_shared/WebPanel/WebPanel';\r\nimport MultipleFilesSeleted from '../../../src/taskpane/components/panels/MultipleFilesSeleted';\r\nimport { removeExtension } from '../../../src/taskpane/components/helpers/stringHelper';\r\nimport { ExchangePreview } from './ExchangePreview';\r\nimport { IExchangeMessages, getExchangeMessageAttachments, getExchangeMessages } from '../../../src/taskpane/services/ExchangeService';\r\nimport { DocubirdCache, displayHeight } from '../../../src/taskpane/config/constants';\r\nimport { resetWorkingDirectories } from '../../../src/taskpane/redux/modules/workingDirectory';\r\nimport { CacheHelper } from '../../../utilities/CacheHelper';\r\nimport { DragAndDropHelper } from '../../../utilities/DragAndDropHelper';\r\nconst searchIconSrc = require(\"../../../assets/empty_search.svg\");\r\n\r\nconst classNames = mergeStyleSets({\r\n wrapper: {\r\n height: displayHeight,\r\n position: \"relative\",\r\n }\r\n});\r\n\r\nconst commandBarStyle: Partial = {\r\n root: {\r\n borderTop: '1px solid rgb(237, 235, 233);',\r\n borderBottom: '1px solid rgb(237, 235, 233);',\r\n paddingLeft: 0,\r\n paddingRight: 10,\r\n paddingBottom: 3,\r\n paddingTop: 3\r\n }\r\n};\r\n\r\nconst noResultsStackStyles: Partial = {\r\n root: { width: \"100%\", height: \"calc(100vh - 250px)\", margin: 0, padding: 0, overflow: \"auto\" }\r\n};\r\n\r\nconst saveSelected: IIconProps = { iconName: \"Save\" };\r\nconst saveFolder: IIconProps = { iconName: \"SaveAll\" };\r\nconst cancelIcon: IIconProps = { iconName: \"Cancel\" };\r\n\r\ninterface ExchangeContentProps { }\r\n\r\nexport const ExchangeContent: React.FC = ({ }) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const MAX_SELECTED_FILES = 50;\r\n\r\n const dispatch = useDispatch();\r\n\r\n const workingDirectories = useSelector((state: RootState) => state.workingDirectories?.workingDirectories);\r\n const exchangeFolderId = useSelector((state: RootState) => state.contentManagerDirectory?.exchange.selectedFolderId);\r\n const exchangeAccount = useSelector((state: RootState) => state.contentManagerDirectory?.exchange.selectedAccount);\r\n const moveTo = useSelector((state: RootState) => state.contentManagerDirectory.moveTo);\r\n const contentManagerSearchValue = useSelector((state: RootState) => state.contentManagerDirectory?.searchValue);\r\n const files = useSelector((state: RootState) => state.files.files);\r\n const currentDirectory = useSelector((state: RootState) => state.workingDirectories.workingDirectories.length > 0 ? state.workingDirectories.workingDirectories[state.workingDirectories.workingDirectories.length - 1] : null);\r\n const searchValue = useSelector((state: RootState) => state.search?.value)?.value;\r\n const autoSelectAttachments = useSelector((state: RootState) => state.user?.settings.autoSelectAttachments);\r\n\r\n const [isLoading, setIsLoading] = React.useState(true);\r\n const [columns, setColumns] = React.useState(null);\r\n const [items, setItems] = React.useState({ messages: [] });\r\n const [commandItems, setCommandItems] = React.useState();\r\n const [commandFarItems, setCommandFarItems] = React.useState();\r\n const [showConfirmMoveToDialog, setShowConfirmMoveToDialog] = React.useState(false);\r\n const [showMaxFilesSelectedDialog, setShowMaxFilesSelectedDialog] = React.useState(false);\r\n const [selectedItems, setSelectedItems] = React.useState([]);\r\n const [selectionCleared, setSelectionCleared] = React.useState(false);\r\n const [isFetchingAttachments, setIsFetchingAttachments] = React.useState(false);\r\n const [fileViews, setFileViews] = React.useState([]);\r\n const [isMultipleFilesSelectedPanelOpen, setIsMultipleFilesSelectedPanelOpen] = React.useState(false);\r\n const [sortColumn, setSortColumn] = React.useState(\"receivedDateTime\");\r\n const [sortAscDesc, setSortAscDesc] = React.useState(\"desc\");\r\n const [updateEmails, setUpdateEmails] = React.useState(\"\");\r\n\r\n const isFirstLoad = React.useRef(true);\r\n const isFetchingNextPage = React.useRef(false);\r\n\r\n const _selection = React.useRef(new Selection({\r\n onSelectionChanged: () => _getSelectionDetails()\r\n }));\r\n\r\n const _getSelectionDetails = () => {\r\n setSelectedItems(_selection.current.getSelection());\r\n };\r\n\r\n React.useEffect(() => {\r\n if (exchangeFolderId) {\r\n fetchEmails();\r\n }\r\n }, [exchangeFolderId]);\r\n\r\n React.useEffect(() => {\r\n if (updateEmails) {\r\n fetchEmails();\r\n }\r\n }, [updateEmails]);\r\n\r\n React.useEffect(() => {\r\n if (!isFirstLoad.current) {\r\n fetchEmails();\r\n }\r\n }, [contentManagerSearchValue, searchValue]);\r\n\r\n const fetchEmails = async () => {\r\n setIsLoading(true);\r\n try {\r\n let filter: string;\r\n if (generalModule.isInConentMangerMode()) {\r\n filter = contentManagerSearchValue ? contentManagerSearchValue.value : \"\";\r\n } else {\r\n filter = searchValue ? searchValue.value : \"\";\r\n }\r\n\r\n setMessageItems(await getExchangeMessages(exchangeFolderId, filter, sortColumn, sortAscDesc, exchangeAccount));\r\n } catch (error) {\r\n logger(error, \"ExchangeDirectory.tsx (fetchEmails)\");\r\n }\r\n\r\n setIsLoading(false);\r\n\r\n if (isFirstLoad.current) {\r\n isFirstLoad.current = false;\r\n }\r\n }\r\n\r\n const fetchNextPageEmails = async () => {\r\n if (!isFetchingNextPage.current && items.nextLink?.length > 0) {\r\n isFetchingNextPage.current = true;\r\n try {\r\n setMessageItems(await getExchangeMessages(null, null, null, null, null, items.nextLink), false);\r\n } catch (error) {\r\n logger(error, \"ExchangeDirectory.tsx (fetchNextPageEmails)\");\r\n }\r\n isFetchingNextPage.current = false;\r\n }\r\n }\r\n\r\n const setMessageItems = (messagesResult: IExchangeMessages, isFirstPage: boolean = true) => {\r\n if (Array.isArray(messagesResult?.messages)) {\r\n const messageItems = messagesResult.messages.map(message => {\r\n return {\r\n ...message,\r\n selected: false\r\n }\r\n });\r\n\r\n if (messagesResult?.nextLink?.length > 0) {\r\n messageItems.push(null);\r\n }\r\n\r\n if (isFirstPage) {\r\n setItems({ messages: messageItems, nextLink: messagesResult.nextLink });\r\n }\r\n else {\r\n setItems(items => { return { messages: items.messages.filter(msg => msg).concat(messageItems), nextLink: messagesResult.nextLink } });\r\n }\r\n }\r\n }\r\n\r\n const selectItem = (item: any) => {\r\n try {\r\n const newItems = [...items.messages];\r\n\r\n const selectedFile = newItems.find((c) => c.id === item.id);\r\n\r\n if (selectedFile) {\r\n selectedFile.selected = selectedFile.selected ? !selectedFile.selected : true;\r\n if (selectedFile.selected) {\r\n addEmailWithAttachmentToRedux(selectedFile);\r\n }\r\n else {\r\n dispatch(setFiles(files.filter(x => x.graphMailItemId !== selectedFile.id)));\r\n }\r\n }\r\n\r\n setItems(items => { return { messages: newItems, nextLink: items.nextLink } });\r\n } catch (error) {\r\n logger(error, \"ExchangeDirectory.tsx (selectItem)\");\r\n }\r\n };\r\n\r\n const addEmailWithAttachmentToRedux = async (selectedFile: any) => {\r\n let filesToUpload: IFileToUpload[] = [\r\n {\r\n id: selectedFile.id,\r\n ewsId: null,\r\n name: selectedFile.subject || languageStrings.NoSubject,\r\n extension: \"eml\",\r\n isAttachment: false,\r\n isSelected: true,\r\n isDuplicate: false,\r\n originalName: selectedFile.subject || languageStrings.NoSubject,\r\n lastModifiedDateTime: selectedFile.receivedDateTime,\r\n isGraphMailItem: true,\r\n graphMailItemId: selectedFile.id\r\n }\r\n ];\r\n\r\n if (selectedFile.hasAttachments) {\r\n const attachments = await getExchangeMessageAttachments(exchangeAccount, selectedFile.id);\r\n if (attachments?.length > 0) {\r\n for (let index = 0; index < attachments.length; index++) {\r\n let attachment = attachments[index];\r\n const attachmentToUpload: IFileToUpload = {\r\n id: attachment.id,\r\n ewsId: null,\r\n name: removeExtension(attachment.name),\r\n extension: getFileExtension(attachment.name),\r\n isAttachment: true,\r\n isSelected: autoSelectAttachments,\r\n isDuplicate: false,\r\n originalName: removeExtension(attachment.name),\r\n lastModifiedDateTime: attachment.lastModifiedDateTime,\r\n isGraphMailItem: true,\r\n graphMailItemId: selectedFile.id\r\n }\r\n\r\n filesToUpload.push(attachmentToUpload);\r\n }\r\n }\r\n }\r\n\r\n dispatch(addUploadedFiles(filesToUpload));\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!generalModule.isInConentMangerMode()) {\r\n setFileViews(\r\n items.messages.map((item, index) => (\r\n
\r\n \r\n
\r\n ))\r\n )\r\n }\r\n }, [items]);\r\n\r\n React.useEffect(() => {\r\n const columns: IColumn[] = [\r\n {\r\n key: 'sender/emailAddress/name',\r\n name: languageStrings.From,\r\n minWidth: 150,\r\n maxWidth: 250,\r\n isRowHeader: true,\r\n isResizable: true,\r\n isSorted: sortColumn === 'sender/emailAddress/name',\r\n isSortedDescending: sortAscDesc === 'desc',\r\n data: 'string',\r\n onColumnClick: _onColumnClick,\r\n onRender: (item: any) => (\r\n \r\n {item.sender && \r\n \r\n }\r\n {item.sender && {item.sender.emailAddress.name}}\r\n {item.sender && item.hasAttachments && }\r\n {!item.sender && [{languageStrings.Draft}]}\r\n \r\n ),\r\n },\r\n {\r\n key: 'subject',\r\n name: languageStrings.Subject,\r\n minWidth: 250,\r\n isRowHeader: true,\r\n isResizable: true,\r\n isSorted: sortColumn === 'subject',\r\n isSortedDescending: sortAscDesc === 'desc',\r\n data: 'string',\r\n onColumnClick: _onColumnClick,\r\n onRender: (item: any) => {\r\n return \r\n {item.subject && {item.subject}}\r\n {!item.subject && ({languageStrings.NoSubject})}\r\n {item.bodyPreview}\r\n \r\n },\r\n },\r\n {\r\n key: 'receivedDateTime',\r\n name: languageStrings.Received,\r\n fieldName: 'displayName',\r\n minWidth: 150,\r\n maxWidth: 150,\r\n isRowHeader: true,\r\n isResizable: true,\r\n isSorted: sortColumn === 'receivedDateTime',\r\n isSortedDescending: sortAscDesc === 'desc',\r\n data: 'string',\r\n onColumnClick: _onColumnClick,\r\n onRender: (item: any) => (\r\n {dayjs(item.receivedDateTime).format(\"L LT\")}\r\n ),\r\n },\r\n ];\r\n setColumns(columns);\r\n }, [sortColumn, sortAscDesc]);\r\n\r\n React.useEffect(() => {\r\n if (selectionCleared) {\r\n _selection.current.setAllSelected(false);\r\n setSelectedItems(_selection.current.getSelection());\r\n setSelectionCleared(false);\r\n }\r\n }, [selectionCleared]);\r\n\r\n React.useEffect(() => {\r\n const mainItems: ICommandBarItemProps[] = [];\r\n const farItems: ICommandBarItemProps[] = [];\r\n\r\n if (moveTo.moveToEnabled && (moveTo.mode === ContentManagerCopyMoveModeEnum.CopySelectedEmails || moveTo.mode === ContentManagerCopyMoveModeEnum.CopyEntireFolderEmails)) {\r\n mainItems.push({\r\n key: \"cancel\",\r\n text: languageStrings.Cancel,\r\n iconProps: cancelIcon,\r\n onClick: () => {\r\n cancelMove();\r\n },\r\n });\r\n\r\n farItems.push(\r\n {\r\n key: \"selectedFileCountMove\",\r\n text: `${moveTo.mode === ContentManagerCopyMoveModeEnum.CopySelectedEmails ? `${selectedItems.length} ${languageStrings.Selected.toLowerCase()}` : `${languageStrings.EntireFolderSelected}`}`,\r\n disabled: true,\r\n }\r\n )\r\n } else {\r\n mainItems.push({\r\n key: \"save\",\r\n disabled: selectedItems?.length === 0 || isLoading,\r\n text: languageStrings.SaveSelected,\r\n iconProps: saveSelected,\r\n onClick: () => {\r\n if (DragAndDropHelper.isDroppedModeActive) {\r\n DragAndDropHelper.reset();\r\n }\r\n\r\n if (selectedItems.length > MAX_SELECTED_FILES) {\r\n setShowMaxFilesSelectedDialog(true);\r\n } else {\r\n dispatch(setContentManagerMoveTo({\r\n mode: ContentManagerCopyMoveModeEnum.CopySelectedEmails,\r\n moveToEnabled: true,\r\n workingDirectories: workingDirectories,\r\n selectedFiles: [],\r\n siteUrl: \"\",\r\n sourceSiteUrl: \"\",\r\n sourceServerRelPath: \"\",\r\n busyMovingFiles: false,\r\n copyJobResults: [],\r\n isMoveComplete: false,\r\n isMoveCancelled: false,\r\n destinationDirectory: {},\r\n progressCountCompleted: 0,\r\n progressCountTotal: 0,\r\n error: \"\"\r\n }));\r\n\r\n setShowConfirmMoveToDialog(true);\r\n }\r\n },\r\n });\r\n\r\n mainItems.push(\r\n {\r\n key: \"saveAll\",\r\n disabled: isLoading || items.messages.length === 0,\r\n text: languageStrings.SaveEntireFolder,\r\n iconProps: saveFolder,\r\n onClick: () => {\r\n if (DragAndDropHelper.isDroppedModeActive) {\r\n DragAndDropHelper.reset();\r\n }\r\n \r\n dispatch(setContentManagerExchangeProgress(undefined));\r\n dispatch(setContentManagerMoveTo({\r\n mode: ContentManagerCopyMoveModeEnum.CopyEntireFolderEmails,\r\n moveToEnabled: true,\r\n workingDirectories: workingDirectories,\r\n selectedFiles: [],\r\n siteUrl: \"\",\r\n sourceSiteUrl: \"\",\r\n sourceServerRelPath: \"\",\r\n busyMovingFiles: false,\r\n copyJobResults: [],\r\n isMoveComplete: false,\r\n isMoveCancelled: false,\r\n destinationDirectory: {},\r\n progressCountCompleted: 0,\r\n progressCountTotal: 0,\r\n error: \"\"\r\n }));\r\n setShowConfirmMoveToDialog(true);\r\n },\r\n })\r\n\r\n if (selectedItems?.length > 0) {\r\n farItems.push(\r\n {\r\n key: \"selectedFileCount\",\r\n text: `${selectedItems.length} ${languageStrings.Selected.toLowerCase()}`,\r\n //disabled: waitFor === true,\r\n iconProps: { iconName: \"Clear\" },\r\n onClick: () => {\r\n setSelectionCleared(true);\r\n }\r\n }\r\n )\r\n }\r\n }\r\n\r\n setCommandItems(mainItems);\r\n setCommandFarItems(farItems);\r\n }, [selectedItems, isLoading, moveTo, items]);\r\n\r\n const onConfirmMove = React.useCallback(async (): Promise => {\r\n if (generalModule.isInConentMangerMode()) {\r\n // getSelectedExchangeEmails(selectedItems.map(x => x.id), exchangeAccount, exchangeFolderId);\r\n CacheHelper.set(DocubirdCache.selectedExchangeItems, selectedItems);\r\n\r\n if (moveTo.mode === ContentManagerCopyMoveModeEnum.CopySelectedEmails) {\r\n setIsFetchingAttachments(true);\r\n try {\r\n const filesToUpload: { index: number, fileToUpload: IFileToUpload }[] = [];\r\n\r\n await Promise.all(selectedItems.map(async (selectedItem, index) => {\r\n const fileToUpload: IFileToUpload = {\r\n id: selectedItem.id,\r\n ewsId: null,\r\n name: selectedItem.subject || languageStrings.NoSubject,\r\n extension: \"eml\",\r\n isAttachment: false,\r\n isSelected: true,\r\n isDuplicate: false,\r\n originalName: selectedItem.subject || languageStrings.NoSubject,\r\n lastModifiedDateTime: selectedItem.receivedDateTime,\r\n isGraphMailItem: true,\r\n graphMailItemId: selectedItem.id\r\n };\r\n\r\n filesToUpload.push({ index, fileToUpload });\r\n\r\n if (selectedItem.hasAttachments) {\r\n const attachments = await getExchangeMessageAttachments(exchangeAccount, selectedItem.id);\r\n if (attachments?.length > 0) {\r\n for (let indexAtt = 0; indexAtt < attachments.length; indexAtt++) {\r\n let attachment = attachments[indexAtt];\r\n const attachmentToUpload: IFileToUpload = {\r\n id: attachment.id,\r\n ewsId: null,\r\n name: removeExtension(attachment.name),\r\n extension: getFileExtension(attachment.name),\r\n isAttachment: true,\r\n isSelected: autoSelectAttachments,\r\n isDuplicate: false,\r\n originalName: removeExtension(attachment.name),\r\n lastModifiedDateTime: attachment.lastModifiedDateTime,\r\n isGraphMailItem: true,\r\n graphMailItemId: selectedItem.id\r\n }\r\n\r\n filesToUpload.push({ index: index + ((indexAtt + 1) / 100), fileToUpload: attachmentToUpload });\r\n }\r\n }\r\n }\r\n }));\r\n\r\n dispatch(addUploadedFiles(filesToUpload.sort((a, b) => a.index - b.index).map(f => f.fileToUpload)));\r\n } catch (error) {\r\n logger(error, \"ExchangeContent.tsx (onComfirmMove)\");\r\n }\r\n setIsFetchingAttachments(false);\r\n }\r\n } else {\r\n setIsMultipleFilesSelectedPanelOpen(false);\r\n dispatch(setContentManagerMoveTo({\r\n mode: ContentManagerCopyMoveModeEnum.CopySelectedEmails,\r\n moveToEnabled: true,\r\n workingDirectories: [],\r\n selectedFiles: [],\r\n siteUrl: \"\",\r\n sourceSiteUrl: \"\",\r\n sourceServerRelPath: \"\",\r\n busyMovingFiles: false,\r\n copyJobResults: [],\r\n isMoveComplete: false,\r\n isMoveCancelled: false,\r\n destinationDirectory: {},\r\n progressCountCompleted: 0,\r\n progressCountTotal: 0,\r\n error: \"\"\r\n }));\r\n dispatch(setFiles(files.map(file => {\r\n return {\r\n ...file,\r\n isSelected: !file.isGraphMailItem ? false : file.isSelected\r\n }\r\n })));\r\n }\r\n\r\n setShowConfirmMoveToDialog(false);\r\n dispatch(setContentManagerSearchValue(\"\"));\r\n dispatch(resetWorkingDirectories());\r\n dispatch(resetContentManagerDirectory());\r\n }, [selectedItems, moveTo, exchangeAccount, files, autoSelectAttachments]);\r\n\r\n const getFileExtension = (name: string) => {\r\n if (name?.includes(\".\")) {\r\n const fileParts = name.split(\".\");\r\n if (fileParts?.length > 1) {\r\n return fileParts[fileParts.length - 1];\r\n }\r\n } \r\n return \"\";\r\n }\r\n\r\n const cancelMove = React.useCallback(() => {\r\n if (generalModule.isInConentMangerMode()) {\r\n dispatch(setFiles([]));\r\n } else {\r\n dispatch(setFiles(files.filter(x => !x.isGraphMailItem).map(file => {\r\n return {\r\n ...file,\r\n isSelected: true\r\n }\r\n })));\r\n\r\n setItems(items => { return { messages: items.messages.map(msg => { return { ...msg, selected: false } }), nextLink: items.nextLink } });\r\n }\r\n\r\n dispatch(setContentManagerMoveTo({\r\n moveToEnabled: false,\r\n workingDirectories: [],\r\n selectedFiles: [],\r\n siteUrl: \"\",\r\n sourceServerRelPath: \"\",\r\n progressCountCompleted: 0,\r\n progressCountTotal: 0,\r\n error: \"\"\r\n }));\r\n\r\n setShowConfirmMoveToDialog(false);\r\n }, [files]);\r\n\r\n const _getKey = (item: any, index?: number): string => {\r\n return item?.key;\r\n };\r\n\r\n const _onColumnClick = (ev: React.MouseEvent, column: IColumn): void => {\r\n if (column.key === sortColumn) {\r\n sortAscDesc === \"asc\" ? setSortAscDesc(\"desc\") : setSortAscDesc(\"asc\")\r\n } else {\r\n setSortColumn(column.key);\r\n setSortAscDesc(\"desc\");\r\n }\r\n\r\n setUpdateEmails(new Date().toUTCString());\r\n };\r\n\r\n const _onRenderDetailsFooter = (detailsFooterProps: IDetailsFooterProps): JSX.Element => {\r\n return (\r\n <>\r\n {!isLoading && items.messages.length === 0 && \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n );\r\n }\r\n\r\n const onRenderCustomPlaceholder = (rowProps: IDetailsRowProps, index?: number, defaultRender?: (props: IDetailsRowProps) => React.ReactNode) => {\r\n if (rowProps.item === null) {\r\n fetchNextPageEmails();\r\n }\r\n return defaultRender(rowProps);\r\n }\r\n\r\n return (\r\n <>\r\n {generalModule.isInConentMangerMode() && <>\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {selectedItems?.length === 1 && \r\n \r\n }\r\n
\r\n }\r\n {!generalModule.isInConentMangerMode() &&\r\n
\r\n x.selected).length}\r\n title={languageStrings.Emails}\r\n selectedItemsMoreClicked={() => setIsMultipleFilesSelectedPanelOpen(true)}\r\n />\r\n
\r\n }\r\n {isMultipleFilesSelectedPanelOpen && (\r\n setIsMultipleFilesSelectedPanelOpen(false)}\r\n headerText={`${files.filter(x => x.isSelected && x.isGraphMailItem).length} ${files.filter(x => x.isSelected && x.isGraphMailItem).length === 1\r\n ? languageStrings.FileSelected.toLowerCase()\r\n : languageStrings.FilesSelected.toLowerCase()\r\n }`}\r\n styles={{ main: { overflow: \"unset\" } }}\r\n >\r\n x.isSelected && x.isGraphMailItem)}\r\n isGraphQuery={false}\r\n currentDirectory={currentDirectory}\r\n workingDirectories={workingDirectories}\r\n openConfirmSave={() => {\r\n if (files.filter(x => x.isSelected && x.isGraphMailItem).length > MAX_SELECTED_FILES) {\r\n setShowMaxFilesSelectedDialog(true);\r\n } else {\r\n setShowConfirmMoveToDialog(true);\r\n }\r\n }}\r\n setIsMultipleFilesSelectedPanelOpen={setIsMultipleFilesSelectedPanelOpen}\r\n />\r\n \r\n )}\r\n\r\n {showConfirmMoveToDialog && }\r\n {showMaxFilesSelectedDialog && {\r\n setShowMaxFilesSelectedDialog(false);\r\n }}\r\n closeText=\"\"\r\n confirmText={languageStrings.Ok}\r\n onConfirm={() => {\r\n setShowMaxFilesSelectedDialog(false);\r\n }}\r\n />}\r\n \r\n );\r\n};","import { DefaultButton, Icon, INavLink, INavLinkGroup, Nav, Stack } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport Loader from \"../../../src/taskpane/components/Loader\";\r\nimport { RootState } from \"../../../src/taskpane/components/_v2/redux/storeMain\";\r\nimport { ComponentTypes } from \"../../../src/taskpane/config/config\";\r\nimport { IMailFolder } from \"../../../src/taskpane/interfaces/IMailFolder\";\r\nimport { IPageSettings } from \"../../../src/taskpane/interfaces/IPageSettings\";\r\nimport { IWellKnownFolder } from \"../../../src/taskpane/interfaces/IWellKnownFolder\";\r\nimport { setContentManagerExchange, setContentManagerExchangeAdditionalMailboxes } from \"../../../src/taskpane/redux/modules/contentManagerDirectory\";\r\nimport { setSearch } from \"../../../src/taskpane/redux/modules/search\";\r\nimport { addWorkingDirectories, setWorkingDirectories } from \"../../../src/taskpane/redux/modules/workingDirectory\";\r\nimport { getExchangeFolders, getWellKnownFolders } from \"../../../src/taskpane/services/ExchangeService\";\r\nimport generalModule from \"../../../utilities/GeneralModule\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { logger } from \"../../../utilities/logger\";\r\nimport { useMailboxPopUpAuth } from \"../../Hooks/useMailboxPopUpAuth\";\r\nimport { apiGetAdditionalMailboxes } from \"../../../src/taskpane/services/ApiService\";\r\n\r\ninterface IExchangeDirectoryProps {\r\n\r\n}\r\n\r\ninterface IFolderNavLink extends INavLink {\r\n id: string;\r\n mailboxId: string;\r\n}\r\n\r\ninterface IMailboxInfo {\r\n index: number;\r\n mailboxAddress: string;\r\n folders: IMailFolder[];\r\n wellknownFolders?: IWellKnownFolder[];\r\n}\r\n\r\nconst ExchangeDirectory = ({ }: IExchangeDirectoryProps) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n\r\n const account = useSelector((state: RootState) => state.user?.account);\r\n const exchange = useSelector((state: RootState) => state.contentManagerDirectory?.exchange);\r\n const contentManagerFilterValue = useSelector((state: RootState) => state.contentManagerDirectory?.filterValue);\r\n const searchValue = useSelector((state: RootState) => state.search?.value)?.value;\r\n const additionalMailboxes = useSelector((state: RootState) => state.contentManagerDirectory?.exchange?.additionalMailboxes);\r\n\r\n const { isMailboxTokenAvailable, isMailboxTokenRequestInProgress, requestMailboxToken } = useMailboxPopUpAuth();\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [navLinkGroups, setNavLinkGroups] = React.useState([]);\r\n const [wellKnownFolders, setWellKnownFolders] = React.useState([]);\r\n const [isLoadingFolders, setIsLoadingFolders] = React.useState(true);\r\n\r\n const isFirstLoad = React.useRef(true);\r\n\r\n React.useEffect(() => {\r\n if (isMailboxTokenAvailable && account) {\r\n (async () => {\r\n setIsLoadingFolders(true);\r\n if (additionalMailboxes === undefined) {\r\n try {\r\n const mailboxes = await apiGetAdditionalMailboxes(account.accountId);\r\n dispatch(setContentManagerExchangeAdditionalMailboxes(mailboxes?.value?.filter(x => x?.length > 0)));\r\n } catch (error) {\r\n logger(error, \"ExchangeDirectory.tsx (getAdditionalMailboxes)\");\r\n }\r\n }\r\n })();\r\n } else {\r\n setIsLoadingFolders(false);\r\n }\r\n }, [isMailboxTokenAvailable, additionalMailboxes, account]);\r\n\r\n React.useEffect(() => {\r\n if (additionalMailboxes !== undefined) {\r\n (async () => {\r\n const navLinkGroups: INavLinkGroup[] = [];\r\n let wellknownList: IWellKnownFolder[] = [];\r\n\r\n const allMailboxes = [account.username, ...additionalMailboxes];\r\n\r\n let mailboxInfoList: IMailboxInfo[] = await Promise.all(\r\n allMailboxes.map(async (mailbox, index) => {\r\n const [folders, wellknown] = await Promise.all([\r\n fetchFolders(mailbox),\r\n getWellKnownFolders(mailbox)\r\n ]);\r\n\r\n return {\r\n index: index,\r\n mailboxAddress: mailbox as string,\r\n folders: folders,\r\n wellknownFolders: wellknown\r\n } as IMailboxInfo;\r\n })\r\n );\r\n\r\n if (mailboxInfoList?.length > 0) {\r\n mailboxInfoList = mailboxInfoList\r\n .sort((a, b) => a.index - b.index)\r\n .filter(mailboxInfo => mailboxInfo.folders?.length > 0);\r\n\r\n for (let index = 0; index < mailboxInfoList.length; index++) {\r\n const mailboxInfo: IMailboxInfo = mailboxInfoList[index];\r\n\r\n if (mailboxInfo.index === 0) {\r\n const inboxWellKnown = mailboxInfo.wellknownFolders?.find(x => x.name === \"inbox\");\r\n if (inboxWellKnown && generalModule.isInConentMangerMode()) {\r\n const inboxFolder = mailboxInfo.folders?.find(x => x.id === inboxWellKnown.id);\r\n if (inboxFolder) {\r\n dispatch(setContentManagerExchange({ selectedFolderId: inboxFolder.id, selectedFolderName: inboxFolder.displayName, selectedAccount: mailboxInfo.mailboxAddress }));\r\n\r\n const itemToAdd: IPageSettings = {\r\n type: ComponentTypes.Exchange,\r\n siteId: \"\",\r\n siteDisplayName: inboxFolder.displayName,\r\n webUrl: \"\",\r\n directory: \"\",\r\n DocumentLibrary: \"\",\r\n displayName: inboxFolder.displayName,\r\n exchangeFolderId: inboxFolder.id\r\n };\r\n dispatch(setWorkingDirectories([itemToAdd]));\r\n }\r\n }\r\n }\r\n\r\n if (mailboxInfo.wellknownFolders) {\r\n wellknownList = wellknownList.concat(mailboxInfo.wellknownFolders);\r\n }\r\n\r\n navLinkGroups.push(createNavBarGroup(mailboxInfo.mailboxAddress, mailboxInfo.folders));\r\n }\r\n }\r\n\r\n setWellKnownFolders(wellknownList);\r\n setIsLoadingFolders(false);\r\n setNavLinkGroups(navLinkGroups);\r\n isFirstLoad.current = false;\r\n })();\r\n }\r\n }, [additionalMailboxes])\r\n\r\n React.useEffect(() => {\r\n if (!isFirstLoad.current && isMailboxTokenAvailable) {\r\n (async () => {\r\n const navLinkGroups: INavLinkGroup[] = [];\r\n setIsLoadingFolders(true);\r\n\r\n let allMailboxes = [account.username];\r\n if (additionalMailboxes?.length > 0) {\r\n allMailboxes = allMailboxes.concat(additionalMailboxes);\r\n }\r\n\r\n let mailboxInfoList: IMailboxInfo[] = await Promise.all(\r\n allMailboxes.map(async (mailbox, index) => {\r\n return {\r\n index: index,\r\n mailboxAddress: mailbox as string,\r\n folders: await fetchFolders(mailbox)\r\n } as IMailboxInfo;\r\n })\r\n );\r\n\r\n if (mailboxInfoList?.length > 0) {\r\n mailboxInfoList = mailboxInfoList\r\n .sort((a, b) => a.index - b.index)\r\n .filter(mailboxInfo => mailboxInfo.folders?.length > 0);\r\n\r\n for (let index = 0; index < mailboxInfoList.length; index++) {\r\n const mailboxInfo: IMailboxInfo = mailboxInfoList[index];\r\n navLinkGroups.push(createNavBarGroup(mailboxInfo.mailboxAddress, mailboxInfo.folders));\r\n }\r\n }\r\n\r\n setNavLinkGroups(navLinkGroups);\r\n setIsLoadingFolders(false);\r\n })();\r\n }\r\n }, [contentManagerFilterValue, searchValue, isMailboxTokenAvailable, additionalMailboxes]);\r\n\r\n const fetchFolders = async (accountUsername: string) => {\r\n try {\r\n let filter = \"\";\r\n if (generalModule.isInConentMangerMode()) {\r\n filter = contentManagerFilterValue ? contentManagerFilterValue : \"\";\r\n } else {\r\n filter = searchValue ? searchValue : \"\";\r\n }\r\n\r\n return await getExchangeFolders(accountUsername, filter);\r\n } catch (error) {\r\n logger(error, \"ExchangeDirectory.tsx (fetchFolders)\");\r\n return [];\r\n }\r\n }\r\n\r\n const createNavBarGroup = (accountName: string, folders: IMailFolder[]) => {\r\n const links = createNavFromFolders(folders, accountName);\r\n return {\r\n name: accountName,\r\n links\r\n };\r\n }\r\n\r\n const createNavFromFolders = (folders: IMailFolder[], accountName: string): IFolderNavLink[] => {\r\n const links: IFolderNavLink[] = [];\r\n\r\n if (folders.length > 0) {\r\n for (let index = 0; index < folders.length; index++) {\r\n const folder = folders[index];\r\n const newFolderLink: IFolderNavLink = {\r\n id: folder.id,\r\n mailboxId: accountName,\r\n key: folder.id,\r\n name: folder.displayName,\r\n url: \"#\",\r\n links: folder.childFolders ? createNavFromFolders(folder.childFolders, accountName) : []\r\n };\r\n\r\n links.push(newFolderLink);\r\n }\r\n }\r\n\r\n return links;\r\n }\r\n\r\n const _onLinkClick = (ev?: React.MouseEvent, item?: IFolderNavLink) => {\r\n const itemToAdd: IPageSettings = {\r\n type: ComponentTypes.Exchange,\r\n siteId: \"\",\r\n siteDisplayName: item.name,\r\n webUrl: \"\",\r\n directory: \"\",\r\n DocumentLibrary: \"\",\r\n displayName: item.name,\r\n exchangeFolderId: item.id\r\n };\r\n\r\n if (generalModule.isInConentMangerMode()) {\r\n dispatch(setWorkingDirectories([itemToAdd]));\r\n } else {\r\n dispatch(addWorkingDirectories([itemToAdd]));\r\n }\r\n\r\n dispatch(setContentManagerExchange({ selectedFolderId: item.id, selectedFolderName: item.name, selectedAccount: item.mailboxId }));\r\n\r\n if (searchValue) {\r\n dispatch(setSearch(\"\"));\r\n }\r\n\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n\r\n return (\r\n <>\r\n {!isMailboxTokenAvailable && !isMailboxTokenRequestInProgress &&\r\n
\r\n \r\n
\r\n }\r\n {(isLoadingFolders || isMailboxTokenRequestInProgress) && }\r\n {isMailboxTokenAvailable && !isMailboxTokenRequestInProgress && !isLoadingFolders && {\r\n const wellKnownFolder = wellKnownFolders.find(x => x.id === link.id);\r\n const IconName = wellKnownFolder ? wellKnownFolder.icon : \"FabricFolder\";\r\n return (\r\n
\r\n \r\n \r\n {link.name}\r\n \r\n
\r\n );\r\n }}\r\n />}\r\n \r\n )\r\n}\r\n\r\nexport default React.memo(ExchangeDirectory);","import { Stack } from \"@fluentui/react\";\r\nimport React from \"react\";\r\nimport { getExchangeMessageHTMLBody } from \"../../../src/taskpane/services/ExchangeService\";\r\nimport Loader from \"../../../src/taskpane/components/Loader\";\r\nimport { LanguageContext } from \"../../../utilities/LocalizationModule\";\r\nimport { displayHeight } from \"../../../src/taskpane/config/constants\";\r\n\r\nconst deviderItemStyles: React.CSSProperties = {\r\n background: \"#f1f1f1\",\r\n height: displayHeight,\r\n width: 5,\r\n cursor: \"col-resize\",\r\n};\r\n\r\nconst htmlContentContainerStyles: React.CSSProperties = {\r\n height: \"100%\",\r\n width: \"100%\",\r\n position: \"relative\"\r\n}\r\n\r\nconst htmlFrameStyles: React.CSSProperties = {\r\n height: \"100%\",\r\n width: \"100%\",\r\n border: \"none\",\r\n position: \"relative\",\r\n userSelect: \"none\",\r\n zIndex: 0\r\n}\r\n\r\nconst htmlContentOverlayStyles: React.CSSProperties = {\r\n height: \"100%\",\r\n width: 75,\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n zIndex: 1000000\r\n}\r\n\r\ntype ExchangePreviewProps = {\r\n mailboxId: string;\r\n messageId: string;\r\n initialWidth: number;\r\n minWidth: number;\r\n};\r\n\r\nexport const ExchangePreview = ({ mailboxId, messageId, initialWidth, minWidth }: ExchangePreviewProps) => {\r\n const languageStrings = React.useContext(LanguageContext);\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const [isResizing, setIsResizing] = React.useState(false);\r\n const [htmlContent, setHTMLContent] = React.useState();\r\n const [width, setWidth] = React.useState(initialWidth);\r\n\r\n const enableResize = React.useCallback(() => {\r\n setIsResizing(true);\r\n }, [setIsResizing]);\r\n\r\n const disableResize = React.useCallback(() => {\r\n setIsResizing(false);\r\n }, [setIsResizing]);\r\n\r\n const resize = React.useCallback(\r\n (e: MouseEvent) => {\r\n if (isResizing) {\r\n const offsetRight = document.body.offsetWidth - (e.clientX - document.body.offsetLeft);\r\n if (offsetRight >= minWidth) {\r\n setWidth(offsetRight);\r\n }\r\n }\r\n },\r\n [minWidth, isResizing, setWidth]\r\n );\r\n\r\n React.useEffect(() => {\r\n (async () => {\r\n setIsLoading(true);\r\n setHTMLContent(await getExchangeMessageHTMLBody(mailboxId, messageId));\r\n setIsLoading(false);\r\n })();\r\n }, [messageId, setIsLoading]);\r\n\r\n React.useEffect(() => {\r\n document.addEventListener(\"mousemove\", resize);\r\n document.addEventListener(\"mouseup\", disableResize);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousemove\", resize);\r\n document.removeEventListener(\"mouseup\", disableResize);\r\n };\r\n }, [disableResize, resize]);\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n {isLoading\r\n ? \r\n : (htmlContent &&
\r\n