From 41e67f511f73ce6c2c8714728c73ea10596ec028 Mon Sep 17 00:00:00 2001 From: Shahzad Aziz Date: Tue, 30 Dec 2025 16:10:30 -0800 Subject: [PATCH 1/5] feat(content-sidebar): add ability to defer sidebar data fetching requests --- .../content-sidebar/ActivitySidebar.js | 17 +++++- .../content-sidebar/ContentSidebar.js | 7 +++ src/elements/content-sidebar/Sidebar.js | 4 ++ src/elements/content-sidebar/SidebarPanels.js | 4 ++ .../__tests__/ActivitySidebar.test.js | 60 +++++++++++++++++++ 5 files changed, 91 insertions(+), 1 deletion(-) diff --git a/src/elements/content-sidebar/ActivitySidebar.js b/src/elements/content-sidebar/ActivitySidebar.js index cb94e3f6a6..731ff3dacb 100644 --- a/src/elements/content-sidebar/ActivitySidebar.js +++ b/src/elements/content-sidebar/ActivitySidebar.js @@ -84,6 +84,8 @@ type ExternalProps = { activeFeedEntryType?: FocusableFeedItemType, currentUser?: User, currentUserError?: Errors, + /** When true, defers data fetching until set to false. Used to prioritize preview loading. */ + deferDataFetch?: boolean, getUserProfileUrl?: GetProfileUrlCallback, hasReplies?: boolean, hasTasks?: boolean, @@ -185,7 +187,20 @@ class ActivitySidebar extends React.PureComponent { } componentDidMount() { - this.fetchFeedItems(true); + const { deferDataFetch } = this.props; + if (!deferDataFetch) { + this.fetchFeedItems(true); + } + } + + componentDidUpdate(prevProps: Props) { + const { deferDataFetch } = this.props; + const { deferDataFetch: prevDeferDataFetch } = prevProps; + + // Fetch when deferral is lifted + if (prevDeferDataFetch && !deferDataFetch) { + this.fetchFeedItems(true); + } } handleAnnotationDelete = ({ id, permissions }: { id: string, permissions: AnnotationPermission }) => { diff --git a/src/elements/content-sidebar/ContentSidebar.js b/src/elements/content-sidebar/ContentSidebar.js index 6c218e689c..9885c638a3 100644 --- a/src/elements/content-sidebar/ContentSidebar.js +++ b/src/elements/content-sidebar/ContentSidebar.js @@ -67,6 +67,8 @@ type Props = { clientName: string, currentUser?: User, defaultView: string, + /** When true, defers all data fetching until set to false. Used to prioritize preview loading. */ + deferDataFetch?: boolean, detailsSidebarProps: DetailsSidebarProps, docGenSidebarProps?: DocGenSidebarProps, features: FeatureConfig, @@ -205,6 +207,8 @@ class ContentSidebar extends React.Component { /** * Fetches the file data on load + * Note: Always fetch file metadata immediately - it's fast and needed for sidebar structure. + * The deferDataFetch prop is passed to panels to defer their heavier API calls. * * @private * @inheritdoc @@ -225,6 +229,7 @@ class ContentSidebar extends React.Component { const { fileId }: Props = this.props; const { fileId: prevFileId }: Props = prevProps; + // Fetch when fileId changes if (fileId !== prevFileId) { this.fetchFile(); } @@ -355,6 +360,7 @@ class ContentSidebar extends React.Component { className, currentUser, defaultView, + deferDataFetch, detailsSidebarProps, docGenSidebarProps, features, @@ -399,6 +405,7 @@ class ContentSidebar extends React.Component { boxAISidebarProps={boxAISidebarProps} className={className} currentUser={currentUser} + deferDataFetch={deferDataFetch} detailsSidebarProps={detailsSidebarProps} docGenSidebarProps={docGenSidebarProps} file={file} diff --git a/src/elements/content-sidebar/Sidebar.js b/src/elements/content-sidebar/Sidebar.js index 5a5babdf5c..fd059b099c 100644 --- a/src/elements/content-sidebar/Sidebar.js +++ b/src/elements/content-sidebar/Sidebar.js @@ -46,6 +46,8 @@ type Props = { className: string, currentUser?: User, currentUserError?: Errors, + /** When true, defers all data fetching until set to false. Used to prioritize preview loading. */ + deferDataFetch?: boolean, detailsSidebarProps: DetailsSidebarProps, docGenSidebarProps: DocGenSidebarProps, features: FeatureConfig, @@ -297,6 +299,7 @@ class Sidebar extends React.Component { className, currentUser, currentUserError, + deferDataFetch, detailsSidebarProps, docGenSidebarProps, file, @@ -359,6 +362,7 @@ class Sidebar extends React.Component { boxAISidebarProps={boxAISidebarProps} currentUser={currentUser} currentUserError={currentUserError} + deferDataFetch={deferDataFetch} elementId={this.id} defaultPanel={defaultPanel} detailsSidebarProps={detailsSidebarProps} diff --git a/src/elements/content-sidebar/SidebarPanels.js b/src/elements/content-sidebar/SidebarPanels.js index 1e6a854796..a6ba5fbcbc 100644 --- a/src/elements/content-sidebar/SidebarPanels.js +++ b/src/elements/content-sidebar/SidebarPanels.js @@ -49,6 +49,8 @@ type Props = { currentUser?: User, currentUserError?: Errors, defaultPanel?: string, + /** When true, defers all data fetching until set to false. Used to prioritize preview loading. */ + deferDataFetch?: boolean, detailsSidebarProps: DetailsSidebarProps, docGenSidebarProps: DocGenSidebarProps, elementId: string, @@ -219,6 +221,7 @@ class SidebarPanels extends React.Component { currentUser, currentUserError, defaultPanel = '', + deferDataFetch, detailsSidebarProps, docGenSidebarProps, elementId, @@ -329,6 +332,7 @@ class SidebarPanels extends React.Component { this.handlePanelRender(SIDEBAR_VIEW_ACTIVITY); return ( { test('should fetch the file and refresh the cache and fetch the current user', () => { expect(instance.fetchFeedItems).toHaveBeenCalledWith(true); }); + + test('should not fetch feed items when deferDataFetch is true', () => { + jest.restoreAllMocks(); + jest.spyOn(ActivitySidebarComponent.prototype, 'fetchFeedItems'); + + getWrapper({ deferDataFetch: true }); + + expect(ActivitySidebarComponent.prototype.fetchFeedItems).not.toHaveBeenCalled(); + }); + + test('should fetch feed items when deferDataFetch is false', () => { + jest.restoreAllMocks(); + jest.spyOn(ActivitySidebarComponent.prototype, 'fetchFeedItems'); + + getWrapper({ deferDataFetch: false }); + + expect(ActivitySidebarComponent.prototype.fetchFeedItems).toHaveBeenCalledWith(true); + }); + }); + + describe('componentDidUpdate()', () => { + test('should fetch feed items when deferDataFetch changes from true to false', () => { + const wrapper = getWrapper({ deferDataFetch: true }); + const instance = wrapper.instance(); + instance.fetchFeedItems = jest.fn(); + + wrapper.setProps({ deferDataFetch: false }); + + expect(instance.fetchFeedItems).toHaveBeenCalledWith(true); + }); + + test('should not fetch feed items when deferDataFetch remains true', () => { + const wrapper = getWrapper({ deferDataFetch: true }); + const instance = wrapper.instance(); + instance.fetchFeedItems = jest.fn(); + + wrapper.setProps({ deferDataFetch: true }); + + expect(instance.fetchFeedItems).not.toHaveBeenCalled(); + }); + + test('should not fetch feed items when deferDataFetch remains false', () => { + const wrapper = getWrapper({ deferDataFetch: false }); + const instance = wrapper.instance(); + instance.fetchFeedItems = jest.fn(); + + wrapper.setProps({ deferDataFetch: false }); + + expect(instance.fetchFeedItems).not.toHaveBeenCalled(); + }); + + test('should not fetch feed items when deferDataFetch changes from false to true', () => { + const wrapper = getWrapper({ deferDataFetch: false }); + const instance = wrapper.instance(); + instance.fetchFeedItems = jest.fn(); + + wrapper.setProps({ deferDataFetch: true }); + + expect(instance.fetchFeedItems).not.toHaveBeenCalled(); + }); }); describe('render()', () => { From 608c2737194a361ed62d6438f7b57fb136d03240 Mon Sep 17 00:00:00 2001 From: Shahzad Aziz Date: Mon, 5 Jan 2026 13:34:38 -0800 Subject: [PATCH 2/5] fix: address comments --- .../content-sidebar/ActivitySidebar.js | 16 +++++----- .../content-sidebar/ContentSidebar.js | 10 +++--- src/elements/content-sidebar/Sidebar.js | 8 ++--- src/elements/content-sidebar/SidebarPanels.js | 8 ++--- .../__tests__/ActivitySidebar.test.js | 32 +++++++++---------- 5 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/elements/content-sidebar/ActivitySidebar.js b/src/elements/content-sidebar/ActivitySidebar.js index 731ff3dacb..9c48207511 100644 --- a/src/elements/content-sidebar/ActivitySidebar.js +++ b/src/elements/content-sidebar/ActivitySidebar.js @@ -84,8 +84,8 @@ type ExternalProps = { activeFeedEntryType?: FocusableFeedItemType, currentUser?: User, currentUserError?: Errors, - /** When true, defers data fetching until set to false. Used to prioritize preview loading. */ - deferDataFetch?: boolean, + /** When true, enables data fetching. When false, defers data fetching. Used to prioritize preview loading. */ + shouldFetchSidebarData?: boolean, getUserProfileUrl?: GetProfileUrlCallback, hasReplies?: boolean, hasTasks?: boolean, @@ -187,18 +187,18 @@ class ActivitySidebar extends React.PureComponent { } componentDidMount() { - const { deferDataFetch } = this.props; - if (!deferDataFetch) { + const { shouldFetchSidebarData } = this.props; + if (shouldFetchSidebarData) { this.fetchFeedItems(true); } } componentDidUpdate(prevProps: Props) { - const { deferDataFetch } = this.props; - const { deferDataFetch: prevDeferDataFetch } = prevProps; + const { shouldFetchSidebarData } = this.props; + const { shouldFetchSidebarData: prevShouldFetchSidebarData } = prevProps; - // Fetch when deferral is lifted - if (prevDeferDataFetch && !deferDataFetch) { + // Fetch when fetch is enabled + if (!prevShouldFetchSidebarData && shouldFetchSidebarData) { this.fetchFeedItems(true); } } diff --git a/src/elements/content-sidebar/ContentSidebar.js b/src/elements/content-sidebar/ContentSidebar.js index 9885c638a3..de9ca3a489 100644 --- a/src/elements/content-sidebar/ContentSidebar.js +++ b/src/elements/content-sidebar/ContentSidebar.js @@ -67,8 +67,8 @@ type Props = { clientName: string, currentUser?: User, defaultView: string, - /** When true, defers all data fetching until set to false. Used to prioritize preview loading. */ - deferDataFetch?: boolean, + /** When true, enables data fetching. When false, defers data fetching. Used to prioritize preview loading. */ + shouldFetchSidebarData?: boolean, detailsSidebarProps: DetailsSidebarProps, docGenSidebarProps?: DocGenSidebarProps, features: FeatureConfig, @@ -208,7 +208,7 @@ class ContentSidebar extends React.Component { /** * Fetches the file data on load * Note: Always fetch file metadata immediately - it's fast and needed for sidebar structure. - * The deferDataFetch prop is passed to panels to defer their heavier API calls. + * The shouldFetchSidebarData prop is passed to panels to control when they make their heavier API calls. * * @private * @inheritdoc @@ -360,7 +360,7 @@ class ContentSidebar extends React.Component { className, currentUser, defaultView, - deferDataFetch, + shouldFetchSidebarData, detailsSidebarProps, docGenSidebarProps, features, @@ -405,7 +405,7 @@ class ContentSidebar extends React.Component { boxAISidebarProps={boxAISidebarProps} className={className} currentUser={currentUser} - deferDataFetch={deferDataFetch} + shouldFetchSidebarData={shouldFetchSidebarData} detailsSidebarProps={detailsSidebarProps} docGenSidebarProps={docGenSidebarProps} file={file} diff --git a/src/elements/content-sidebar/Sidebar.js b/src/elements/content-sidebar/Sidebar.js index fd059b099c..0d5bc65d26 100644 --- a/src/elements/content-sidebar/Sidebar.js +++ b/src/elements/content-sidebar/Sidebar.js @@ -46,8 +46,8 @@ type Props = { className: string, currentUser?: User, currentUserError?: Errors, - /** When true, defers all data fetching until set to false. Used to prioritize preview loading. */ - deferDataFetch?: boolean, + /** When true, enables data fetching. When false, defers data fetching. Used to prioritize preview loading. */ + shouldFetchSidebarData?: boolean, detailsSidebarProps: DetailsSidebarProps, docGenSidebarProps: DocGenSidebarProps, features: FeatureConfig, @@ -299,7 +299,7 @@ class Sidebar extends React.Component { className, currentUser, currentUserError, - deferDataFetch, + shouldFetchSidebarData, detailsSidebarProps, docGenSidebarProps, file, @@ -362,7 +362,7 @@ class Sidebar extends React.Component { boxAISidebarProps={boxAISidebarProps} currentUser={currentUser} currentUserError={currentUserError} - deferDataFetch={deferDataFetch} + shouldFetchSidebarData={shouldFetchSidebarData} elementId={this.id} defaultPanel={defaultPanel} detailsSidebarProps={detailsSidebarProps} diff --git a/src/elements/content-sidebar/SidebarPanels.js b/src/elements/content-sidebar/SidebarPanels.js index a6ba5fbcbc..1d04de4bfe 100644 --- a/src/elements/content-sidebar/SidebarPanels.js +++ b/src/elements/content-sidebar/SidebarPanels.js @@ -49,8 +49,8 @@ type Props = { currentUser?: User, currentUserError?: Errors, defaultPanel?: string, - /** When true, defers all data fetching until set to false. Used to prioritize preview loading. */ - deferDataFetch?: boolean, + /** When true, enables data fetching. When false, defers data fetching. Used to prioritize preview loading. */ + shouldFetchSidebarData?: boolean, detailsSidebarProps: DetailsSidebarProps, docGenSidebarProps: DocGenSidebarProps, elementId: string, @@ -221,7 +221,7 @@ class SidebarPanels extends React.Component { currentUser, currentUserError, defaultPanel = '', - deferDataFetch, + shouldFetchSidebarData, detailsSidebarProps, docGenSidebarProps, elementId, @@ -332,7 +332,7 @@ class SidebarPanels extends React.Component { this.handlePanelRender(SIDEBAR_VIEW_ACTIVITY); return ( { expect(instance.fetchFeedItems).toHaveBeenCalledWith(true); }); - test('should not fetch feed items when deferDataFetch is true', () => { + test('should not fetch feed items when shouldFetchSidebarData is false', () => { jest.restoreAllMocks(); jest.spyOn(ActivitySidebarComponent.prototype, 'fetchFeedItems'); - getWrapper({ deferDataFetch: true }); + getWrapper({ shouldFetchSidebarData: false }); expect(ActivitySidebarComponent.prototype.fetchFeedItems).not.toHaveBeenCalled(); }); - test('should fetch feed items when deferDataFetch is false', () => { + test('should fetch feed items when shouldFetchSidebarData is true', () => { jest.restoreAllMocks(); jest.spyOn(ActivitySidebarComponent.prototype, 'fetchFeedItems'); - getWrapper({ deferDataFetch: false }); + getWrapper({ shouldFetchSidebarData: true }); expect(ActivitySidebarComponent.prototype.fetchFeedItems).toHaveBeenCalledWith(true); }); }); describe('componentDidUpdate()', () => { - test('should fetch feed items when deferDataFetch changes from true to false', () => { - const wrapper = getWrapper({ deferDataFetch: true }); + test('should fetch feed items when shouldFetchSidebarData changes from false to true', () => { + const wrapper = getWrapper({ shouldFetchSidebarData: false }); const instance = wrapper.instance(); instance.fetchFeedItems = jest.fn(); - wrapper.setProps({ deferDataFetch: false }); + wrapper.setProps({ shouldFetchSidebarData: true }); expect(instance.fetchFeedItems).toHaveBeenCalledWith(true); }); - test('should not fetch feed items when deferDataFetch remains true', () => { - const wrapper = getWrapper({ deferDataFetch: true }); + test('should not fetch feed items when shouldFetchSidebarData remains false', () => { + const wrapper = getWrapper({ shouldFetchSidebarData: false }); const instance = wrapper.instance(); instance.fetchFeedItems = jest.fn(); - wrapper.setProps({ deferDataFetch: true }); + wrapper.setProps({ shouldFetchSidebarData: false }); expect(instance.fetchFeedItems).not.toHaveBeenCalled(); }); - test('should not fetch feed items when deferDataFetch remains false', () => { - const wrapper = getWrapper({ deferDataFetch: false }); + test('should not fetch feed items when shouldFetchSidebarData remains true', () => { + const wrapper = getWrapper({ shouldFetchSidebarData: true }); const instance = wrapper.instance(); instance.fetchFeedItems = jest.fn(); - wrapper.setProps({ deferDataFetch: false }); + wrapper.setProps({ shouldFetchSidebarData: true }); expect(instance.fetchFeedItems).not.toHaveBeenCalled(); }); - test('should not fetch feed items when deferDataFetch changes from false to true', () => { - const wrapper = getWrapper({ deferDataFetch: false }); + test('should not fetch feed items when shouldFetchSidebarData changes from true to false', () => { + const wrapper = getWrapper({ shouldFetchSidebarData: true }); const instance = wrapper.instance(); instance.fetchFeedItems = jest.fn(); - wrapper.setProps({ deferDataFetch: true }); + wrapper.setProps({ shouldFetchSidebarData: false }); expect(instance.fetchFeedItems).not.toHaveBeenCalled(); }); From bf47938e51777298440a9c84206cea57b3447db0 Mon Sep 17 00:00:00 2001 From: Shahzad Aziz Date: Mon, 5 Jan 2026 14:04:54 -0800 Subject: [PATCH 3/5] fix: address comments --- src/elements/content-sidebar/ActivitySidebar.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/elements/content-sidebar/ActivitySidebar.js b/src/elements/content-sidebar/ActivitySidebar.js index 9c48207511..d38ce2552d 100644 --- a/src/elements/content-sidebar/ActivitySidebar.js +++ b/src/elements/content-sidebar/ActivitySidebar.js @@ -187,15 +187,15 @@ class ActivitySidebar extends React.PureComponent { } componentDidMount() { - const { shouldFetchSidebarData } = this.props; + const { shouldFetchSidebarData = true } = this.props; if (shouldFetchSidebarData) { this.fetchFeedItems(true); } } componentDidUpdate(prevProps: Props) { - const { shouldFetchSidebarData } = this.props; - const { shouldFetchSidebarData: prevShouldFetchSidebarData } = prevProps; + const { shouldFetchSidebarData = true } = this.props; + const { shouldFetchSidebarData: prevShouldFetchSidebarData = true } = prevProps; // Fetch when fetch is enabled if (!prevShouldFetchSidebarData && shouldFetchSidebarData) { From 42a88132afdad1790fbac8b693a307b00514e73d Mon Sep 17 00:00:00 2001 From: Shahzad Aziz Date: Mon, 5 Jan 2026 15:51:41 -0800 Subject: [PATCH 4/5] fix: address comments --- src/elements/content-sidebar/ActivitySidebar.js | 4 ++-- src/elements/content-sidebar/ContentSidebar.js | 6 +++--- src/elements/content-sidebar/Sidebar.js | 4 ++-- src/elements/content-sidebar/SidebarPanels.js | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/elements/content-sidebar/ActivitySidebar.js b/src/elements/content-sidebar/ActivitySidebar.js index d38ce2552d..67bb6a5f3d 100644 --- a/src/elements/content-sidebar/ActivitySidebar.js +++ b/src/elements/content-sidebar/ActivitySidebar.js @@ -84,8 +84,6 @@ type ExternalProps = { activeFeedEntryType?: FocusableFeedItemType, currentUser?: User, currentUserError?: Errors, - /** When true, enables data fetching. When false, defers data fetching. Used to prioritize preview loading. */ - shouldFetchSidebarData?: boolean, getUserProfileUrl?: GetProfileUrlCallback, hasReplies?: boolean, hasTasks?: boolean, @@ -101,6 +99,8 @@ type ExternalProps = { onTaskUpdate: () => any, onTaskView: (id: string, isCreator: boolean) => any, routerDisabled?: boolean, + /** When true, enables data fetching. When false, defers data fetching. Used to prioritize preview loading. */ + shouldFetchSidebarData?: boolean, } & ErrorContextProps & WithAnnotatorContextProps; diff --git a/src/elements/content-sidebar/ContentSidebar.js b/src/elements/content-sidebar/ContentSidebar.js index de9ca3a489..03dfd127e8 100644 --- a/src/elements/content-sidebar/ContentSidebar.js +++ b/src/elements/content-sidebar/ContentSidebar.js @@ -67,8 +67,6 @@ type Props = { clientName: string, currentUser?: User, defaultView: string, - /** When true, enables data fetching. When false, defers data fetching. Used to prioritize preview loading. */ - shouldFetchSidebarData?: boolean, detailsSidebarProps: DetailsSidebarProps, docGenSidebarProps?: DocGenSidebarProps, features: FeatureConfig, @@ -96,8 +94,10 @@ type Props = { responseInterceptor?: Function, sharedLink?: string, sharedLinkPassword?: string, - theme?: Theme, + /** When true, enables data fetching. When false, defers data fetching. Used to prioritize preview loading. */ + shouldFetchSidebarData?: boolean, signSidebarProps: SignSidebarProps, + theme?: Theme, token: Token, versionsSidebarProps: VersionsSidebarProps, } & ErrorContextProps & diff --git a/src/elements/content-sidebar/Sidebar.js b/src/elements/content-sidebar/Sidebar.js index 0d5bc65d26..b8955151a1 100644 --- a/src/elements/content-sidebar/Sidebar.js +++ b/src/elements/content-sidebar/Sidebar.js @@ -46,8 +46,6 @@ type Props = { className: string, currentUser?: User, currentUserError?: Errors, - /** When true, enables data fetching. When false, defers data fetching. Used to prioritize preview loading. */ - shouldFetchSidebarData?: boolean, detailsSidebarProps: DetailsSidebarProps, docGenSidebarProps: DocGenSidebarProps, features: FeatureConfig, @@ -72,6 +70,8 @@ type Props = { onPanelChange?: (name: string, isInitialState: boolean) => void, onVersionChange?: Function, onVersionHistoryClick?: Function, + /** When true, enables data fetching. When false, defers data fetching. Used to prioritize preview loading. */ + shouldFetchSidebarData?: boolean, signSidebarProps: SignSidebarProps, theme?: Theme, versionsSidebarProps: VersionsSidebarProps, diff --git a/src/elements/content-sidebar/SidebarPanels.js b/src/elements/content-sidebar/SidebarPanels.js index 1d04de4bfe..f303da6240 100644 --- a/src/elements/content-sidebar/SidebarPanels.js +++ b/src/elements/content-sidebar/SidebarPanels.js @@ -49,8 +49,6 @@ type Props = { currentUser?: User, currentUserError?: Errors, defaultPanel?: string, - /** When true, enables data fetching. When false, defers data fetching. Used to prioritize preview loading. */ - shouldFetchSidebarData?: boolean, detailsSidebarProps: DetailsSidebarProps, docGenSidebarProps: DocGenSidebarProps, elementId: string, @@ -73,6 +71,8 @@ type Props = { onPanelChange?: (name: string, isInitialState?: boolean) => void, onVersionChange?: Function, onVersionHistoryClick?: Function, + /** When true, enables data fetching. When false, defers data fetching. Used to prioritize preview loading. */ + shouldFetchSidebarData?: boolean, versionsSidebarProps: VersionsSidebarProps, }; From 55304d8ff581d5d0b0e71f8e05d8033412c000cf Mon Sep 17 00:00:00 2001 From: Shahzad Aziz Date: Mon, 5 Jan 2026 16:11:37 -0800 Subject: [PATCH 5/5] fix: address comments --- src/elements/content-sidebar/ContentSidebar.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/elements/content-sidebar/ContentSidebar.js b/src/elements/content-sidebar/ContentSidebar.js index 03dfd127e8..7b9144d8d1 100644 --- a/src/elements/content-sidebar/ContentSidebar.js +++ b/src/elements/content-sidebar/ContentSidebar.js @@ -207,8 +207,6 @@ class ContentSidebar extends React.Component { /** * Fetches the file data on load - * Note: Always fetch file metadata immediately - it's fast and needed for sidebar structure. - * The shouldFetchSidebarData prop is passed to panels to control when they make their heavier API calls. * * @private * @inheritdoc @@ -229,7 +227,6 @@ class ContentSidebar extends React.Component { const { fileId }: Props = this.props; const { fileId: prevFileId }: Props = prevProps; - // Fetch when fileId changes if (fileId !== prevFileId) { this.fetchFile(); }