From ca1293fc8f0f4ded4951a54fb813f1bdf97b2fe5 Mon Sep 17 00:00:00 2001 From: Pankhur Dhaila Date: Thu, 22 May 2025 07:46:47 -0600 Subject: [PATCH 1/2] deprecation changes --- common/scripts/eslint.autofix.config.js | 3 +- .../components/routes/ViewerRoute.tsx | 41 +++++----- .../extensions/IModelMergeStatusBarItem.tsx | 32 ++++---- .../src/components/home/ViewerHome.tsx | 47 ++++++----- .../providers/DefaultContentGroupProvider.tsx | 10 +-- .../ViewerStatusbarItemsProvider.tsx | 14 +++- .../DefaultContentGroupProvider.test.tsx | 37 ++++----- .../src/tests/mocks/MockUiProviders.tsx | 82 +++++++++++-------- .../components/routes/ViewerRoute.tsx | 41 +++++----- .../template/src/App.tsx | 21 +++-- 10 files changed, 180 insertions(+), 148 deletions(-) diff --git a/common/scripts/eslint.autofix.config.js b/common/scripts/eslint.autofix.config.js index be7dffae..b0f3415d 100644 --- a/common/scripts/eslint.autofix.config.js +++ b/common/scripts/eslint.autofix.config.js @@ -4,7 +4,8 @@ module.exports = { ...baseConfig, rules: { ...(baseConfig.rules), - "simple-import-sort/sort": "error", + "simple-import-sort/imports": "error", + "simple-import-sort/exports": "error", "@typescript-eslint/no-inferrable-types": "error", curly: "error", "react-hooks/exhaustive-deps": "off", diff --git a/packages/apps/desktop-viewer-test/src/frontend/components/routes/ViewerRoute.tsx b/packages/apps/desktop-viewer-test/src/frontend/components/routes/ViewerRoute.tsx index 9ad8f0e4..372d6133 100644 --- a/packages/apps/desktop-viewer-test/src/frontend/components/routes/ViewerRoute.tsx +++ b/packages/apps/desktop-viewer-test/src/frontend/components/routes/ViewerRoute.tsx @@ -1,7 +1,7 @@ /*--------------------------------------------------------------------------------------------- - * Copyright (c) Bentley Systems, Incorporated. All rights reserved. - * See LICENSE.md in the project root for license terms and full copyright notice. - *--------------------------------------------------------------------------------------------*/ +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ import { Viewer, @@ -13,7 +13,7 @@ import { MeasureToolsUiItemsProvider } from "@itwin/measure-tools-react"; import { AncestorsNavigationControls, CopyPropertyTextContextMenuItem, - PropertyGridUiItemsProvider, + createPropertyGrid, ShowHideNullValuesSettingsMenuItem, } from "@itwin/property-grid-react"; import { @@ -100,22 +100,25 @@ export const ViewerRoute = () => { }), ], }, - new PropertyGridUiItemsProvider({ // eslint-disable-line @typescript-eslint/no-deprecated - propertyGridProps: { - autoExpandChildCategories: true, - ancestorsNavigationControls: (props) => ( - - ), - contextMenuItems: [ - (props) => , - ], - settingsMenuItems: [ - (props) => ( - + { + id: "PropertyGridUIProvider", + getWidgets: () => [ + createPropertyGrid({ + autoExpandChildCategories: true, + ancestorsNavigationControls: (props) => ( + ), - ], - }, - }), + contextMenuItems: [ + (props) => , + ], + settingsMenuItems: [ + (props) => ( + + ), + ], + }) + ], + }, new MeasureToolsUiItemsProvider(), new IModelMergeItemsProvider(), ]} diff --git a/packages/apps/desktop-viewer-test/src/frontend/extensions/IModelMergeStatusBarItem.tsx b/packages/apps/desktop-viewer-test/src/frontend/extensions/IModelMergeStatusBarItem.tsx index 6e5d77c8..f431c74b 100644 --- a/packages/apps/desktop-viewer-test/src/frontend/extensions/IModelMergeStatusBarItem.tsx +++ b/packages/apps/desktop-viewer-test/src/frontend/extensions/IModelMergeStatusBarItem.tsx @@ -1,7 +1,7 @@ /*--------------------------------------------------------------------------------------------- - * Copyright (c) Bentley Systems, Incorporated. All rights reserved. - * See LICENSE.md in the project root for license terms and full copyright notice. - *--------------------------------------------------------------------------------------------*/ +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ import "./IModelMergeStatusBarItem.scss"; @@ -45,7 +45,7 @@ const ConnectionStatusBarItem = () => { {ITwinViewerApp.translate("briefcaseStatusTitle.connection")} {accessToken && - connectivityStatus === InternetConnectivityStatus.Online ? ( + connectivityStatus === InternetConnectivityStatus.Online ? ( ) : ( - ) + StatusBarItemUtilities.createCustomItem({ + id: "IModelMergeItemsProvider:ConnectionStatusBarItem", + section: StatusBarSection.Center, + itemPriority: 1, + content: + }) ); statusBarItems.push( - StatusBarItemUtilities.createCustomItem( // eslint-disable-line @typescript-eslint/no-deprecated - "IModelMergeItemsProvider:IModelMergeStatusBarItem", - StatusBarSection.Center, - 3, - - ) + StatusBarItemUtilities.createCustomItem({ + id: "IModelMergeItemsProvider:IModelMergeStatusBarItem", + section: StatusBarSection.Center, + itemPriority: 3, + content: + }) ); } return statusBarItems; diff --git a/packages/apps/web-viewer-test/src/components/home/ViewerHome.tsx b/packages/apps/web-viewer-test/src/components/home/ViewerHome.tsx index 0a7f382c..7960512d 100644 --- a/packages/apps/web-viewer-test/src/components/home/ViewerHome.tsx +++ b/packages/apps/web-viewer-test/src/components/home/ViewerHome.tsx @@ -1,7 +1,7 @@ /*--------------------------------------------------------------------------------------------- - * Copyright (c) Bentley Systems, Incorporated. All rights reserved. - * See LICENSE.md in the project root for license terms and full copyright notice. - *--------------------------------------------------------------------------------------------*/ +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ import { AppNotificationManager, ColorTheme } from "@itwin/appui-react"; import { BrowserAuthorizationClient } from "@itwin/browser-authorization"; @@ -13,8 +13,8 @@ import { import { AncestorsNavigationControls, CopyPropertyTextContextMenuItem, + createPropertyGrid, PropertyGridManager, - PropertyGridUiItemsProvider, ShowHideNullValuesSettingsMenuItem, } from "@itwin/property-grid-react"; // import LocalExtension from "@itwin/test-local-extension"; @@ -198,25 +198,28 @@ const ViewerHome: React.FC = () => { }), ], }, - new PropertyGridUiItemsProvider({ - propertyGridProps: { - autoExpandChildCategories: true, - ancestorsNavigationControls: (props) => ( - - ), - contextMenuItems: [ - (props) => , - ], - settingsMenuItems: [ - (props) => ( - + { + id: "PropertyGridUIProvider", + getWidgets: () => [ + createPropertyGrid({ + autoExpandChildCategories: true, + ancestorsNavigationControls: (props) => ( + ), - ], - }, - }), + contextMenuItems: [ + (props) => , + ], + settingsMenuItems: [ + (props) => ( + + ), + ], + }) + ], + }, new MeasureToolsUiItemsProvider(), ]} // extensions={[ diff --git a/packages/modules/viewer-react/src/components/app-ui/providers/DefaultContentGroupProvider.tsx b/packages/modules/viewer-react/src/components/app-ui/providers/DefaultContentGroupProvider.tsx index 4a971bdf..3f2cfcdb 100644 --- a/packages/modules/viewer-react/src/components/app-ui/providers/DefaultContentGroupProvider.tsx +++ b/packages/modules/viewer-react/src/components/app-ui/providers/DefaultContentGroupProvider.tsx @@ -1,12 +1,12 @@ /*--------------------------------------------------------------------------------------------- - * Copyright (c) Bentley Systems, Incorporated. All rights reserved. - * See LICENSE.md in the project root for license terms and full copyright notice. - *--------------------------------------------------------------------------------------------*/ +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ -import { StandardContentLayouts } from "@itwin/appui-abstract"; import { ContentGroup, ContentGroupProvider, + StandardContentLayouts, UiFramework, } from "@itwin/appui-react"; import { ViewportComponent } from "@itwin/imodel-components-react"; @@ -56,7 +56,7 @@ export class DefaultContentGroupProvider extends ContentGroupProvider { return new ContentGroup({ id: "iTwinViewer.default-content-group", - layout: StandardContentLayouts.singleView, // eslint-disable-line @typescript-eslint/no-deprecated + layout: StandardContentLayouts.singleView, contents: [ { id: "iTwinViewer.UnifiedSelectionViewport", diff --git a/packages/modules/viewer-react/src/components/app-ui/providers/ViewerStatusbarItemsProvider.tsx b/packages/modules/viewer-react/src/components/app-ui/providers/ViewerStatusbarItemsProvider.tsx index 2453ca42..16e9dd48 100644 --- a/packages/modules/viewer-react/src/components/app-ui/providers/ViewerStatusbarItemsProvider.tsx +++ b/packages/modules/viewer-react/src/components/app-ui/providers/ViewerStatusbarItemsProvider.tsx @@ -10,13 +10,15 @@ import type { } from "@itwin/appui-react"; import { MessageCenterField, - SelectionInfoField, + SelectionCountField, SelectionScopeField, SnapModeField, StatusBarItemUtilities, StatusBarSection, TileLoadingIndicator, ToolAssistanceField, + useActiveIModelConnection, + useSelectionSetSize, } from "@itwin/appui-react"; import * as React from "react"; @@ -25,7 +27,7 @@ import type { ViewerDefaultStatusbarItems } from "../../../types"; export class ViewerStatusbarItemsProvider implements UiItemsProvider { public readonly id = "ViewerDefaultStatusbar"; - constructor(private _defaultItems?: ViewerDefaultStatusbarItems) {} + constructor(private _defaultItems?: ViewerDefaultStatusbarItems) { } public provideStatusBarItems(): StatusBarItem[] { const items: StatusBarCustomItem[] = []; @@ -81,12 +83,18 @@ export class ViewerStatusbarItemsProvider implements UiItemsProvider { ); } if (!this._defaultItems || this._defaultItems.selectionInfo) { + const SelectionInfoWrapper = () => { + const iModel = useActiveIModelConnection(); + const count = useSelectionSetSize({ iModel }); + + return ; + }; items.push( StatusBarItemUtilities.createCustomItem({ id: "SelectionInfo", section: StatusBarSection.Right, itemPriority: 40, - content: , // eslint-disable-line @typescript-eslint/no-deprecated + content: , }) ); } diff --git a/packages/modules/viewer-react/src/tests/components/app-ui/providers/DefaultContentGroupProvider.test.tsx b/packages/modules/viewer-react/src/tests/components/app-ui/providers/DefaultContentGroupProvider.test.tsx index 5444dc8f..41661a2a 100644 --- a/packages/modules/viewer-react/src/tests/components/app-ui/providers/DefaultContentGroupProvider.test.tsx +++ b/packages/modules/viewer-react/src/tests/components/app-ui/providers/DefaultContentGroupProvider.test.tsx @@ -1,12 +1,11 @@ /*--------------------------------------------------------------------------------------------- - * Copyright (c) Bentley Systems, Incorporated. All rights reserved. - * See LICENSE.md in the project root for license terms and full copyright notice. - *--------------------------------------------------------------------------------------------*/ +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ -import { StandardContentLayouts } from "@itwin/appui-abstract"; import { ContentGroup, - IModelViewportControl, + StandardContentLayouts, UiFramework, } from "@itwin/appui-react"; import type { IModelConnection } from "@itwin/core-frontend"; @@ -119,9 +118,9 @@ describe("DefaultContentGroupProvider", () => { const contentGroupProvider = new DefaultContentGroupProvider(); await contentGroupProvider.contentGroup({ contentGroup: new ContentGroup({ - contents: [{ id: "viewport", classId: IModelViewportControl }], // eslint-disable-line @typescript-eslint/no-deprecated + contents: [{ id: "viewport", classId: "" }], id: "contentGroup", - layout: StandardContentLayouts.singleView, // eslint-disable-line @typescript-eslint/no-deprecated + layout: StandardContentLayouts.singleView, }), id: "DefaultContentGroup", version: 1, @@ -137,9 +136,9 @@ describe("DefaultContentGroupProvider", () => { const contentGroupProvider = new DefaultContentGroupProvider(); await contentGroupProvider.contentGroup({ contentGroup: new ContentGroup({ - contents: [{ id: "viewport", classId: IModelViewportControl }], // eslint-disable-line @typescript-eslint/no-deprecated + contents: [{ id: "viewport", classId: "" }], id: "contentGroup", - layout: StandardContentLayouts.singleView, // eslint-disable-line @typescript-eslint/no-deprecated + layout: StandardContentLayouts.singleView, }), id: "DefaultContentGroup", version: 1, @@ -165,9 +164,9 @@ describe("DefaultContentGroupProvider", () => { ); await contentGroupProvider.contentGroup({ contentGroup: new ContentGroup({ - contents: [{ id: "viewport", classId: IModelViewportControl }], // eslint-disable-line @typescript-eslint/no-deprecated + contents: [{ id: "viewport", classId: "" }], id: "contentGroup", - layout: StandardContentLayouts.singleView, // eslint-disable-line @typescript-eslint/no-deprecated + layout: StandardContentLayouts.singleView, }), id: "DefaultContentGroup", version: 1, @@ -195,9 +194,9 @@ describe("DefaultContentGroupProvider", () => { ); await contentGroupProvider.contentGroup({ contentGroup: new ContentGroup({ - contents: [{ id: "viewport", classId: IModelViewportControl }], // eslint-disable-line @typescript-eslint/no-deprecated + contents: [{ id: "viewport", classId: "" }], id: "contentGroup", - layout: StandardContentLayouts.singleView, // eslint-disable-line @typescript-eslint/no-deprecated + layout: StandardContentLayouts.singleView, }), id: "DefaultContentGroup", version: 1, @@ -218,9 +217,9 @@ describe("DefaultContentGroupProvider", () => { ); await contentGroupProvider.contentGroup({ contentGroup: new ContentGroup({ - contents: [{ id: "viewport", classId: IModelViewportControl }], // eslint-disable-line @typescript-eslint/no-deprecated + contents: [{ id: "viewport", classId: "" }], id: "contentGroup", - layout: StandardContentLayouts.singleView, // eslint-disable-line @typescript-eslint/no-deprecated + layout: StandardContentLayouts.singleView, }), id: "DefaultContentGroup", version: 1, @@ -241,9 +240,9 @@ describe("DefaultContentGroupProvider", () => { ); await contentGroupProvider.contentGroup({ contentGroup: new ContentGroup({ - contents: [{ id: "viewport", classId: IModelViewportControl }], // eslint-disable-line @typescript-eslint/no-deprecated + contents: [{ id: "viewport", classId: "" }], id: "contentGroup", - layout: StandardContentLayouts.singleView, // eslint-disable-line @typescript-eslint/no-deprecated + layout: StandardContentLayouts.singleView, }), id: "DefaultContentGroup", version: 1, @@ -270,9 +269,9 @@ describe("DefaultContentGroupProvider", () => { ); await contentGroupProvider.contentGroup({ contentGroup: new ContentGroup({ - contents: [{ id: "viewport", classId: IModelViewportControl }], // eslint-disable-line @typescript-eslint/no-deprecated + contents: [{ id: "viewport", classId: "" }], id: "contentGroup", - layout: StandardContentLayouts.singleView, // eslint-disable-line @typescript-eslint/no-deprecated + layout: StandardContentLayouts.singleView, }), id: "DefaultContentGroup", version: 1, diff --git a/packages/modules/viewer-react/src/tests/mocks/MockUiProviders.tsx b/packages/modules/viewer-react/src/tests/mocks/MockUiProviders.tsx index 762ce65c..80b32b62 100644 --- a/packages/modules/viewer-react/src/tests/mocks/MockUiProviders.tsx +++ b/packages/modules/viewer-react/src/tests/mocks/MockUiProviders.tsx @@ -1,11 +1,10 @@ /*--------------------------------------------------------------------------------------------- - * Copyright (c) Bentley Systems, Incorporated. All rights reserved. - * See LICENSE.md in the project root for license terms and full copyright notice. - *--------------------------------------------------------------------------------------------*/ +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ import { ConditionalBooleanValue, - ConditionalStringValue, } from "@itwin/appui-abstract"; import type { StagePanelSection, @@ -24,7 +23,7 @@ import { ToolbarOrientation, ToolbarUsage, } from "@itwin/appui-react"; -import { FillCentered } from "@itwin/core-react"; +import { Flex } from "@itwin/itwinui-react"; import React from "react"; export class TestUiProvider implements UiItemsProvider { @@ -48,33 +47,44 @@ export class TestUiProvider implements UiItemsProvider { [this.syncEventId] ); - const iconCondition = new ConditionalStringValue( - () => (this._visible ? "icon-visibility-hide-2" : "icon-visibility"), - [this.syncEventId] - ); + function visibilityIcon({ syncEventId, isVisible }: { syncEventId: string, isVisible: boolean }) { + const [update, setUpdate] = React.useState(false); + + React.useEffect(() => { + const onSync = () => { + setUpdate((prev) => !prev); + } + SyncUiEventDispatcher.onSyncUiEvent.addListener(onSync, syncEventId); + return () => { + SyncUiEventDispatcher.onSyncUiEvent.removeListener(onSync, syncEventId); + } + }, [syncEventId]); + + return (); + } - const visibilityActionSpec = ToolbarItemUtilities.createActionItem( // eslint-disable-line @typescript-eslint/no-deprecated - "visibility-action-tool", - 200, - iconCondition, - "Set visibility", - (): void => { + const visibilityActionSpec = ToolbarItemUtilities.createActionItem({ + id: "visibility-action-tool", + label: "Set visibility", + itemPriority: 200, + execute: () => { this._visible = !this._visible; SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(this.syncEventId); console.log(this._visible); - } - ); + }, + icon: visibilityIcon({ syncEventId: this.syncEventId, isVisible: this._visible }), + }); - const alertActionSpec = ToolbarItemUtilities.createActionItem( // eslint-disable-line @typescript-eslint/no-deprecated - "alert-action-tool", - 210, - "icon-developer", - "Display an alert", - (): void => { + const alertActionSpec = ToolbarItemUtilities.createActionItem({ + id: "alert-action-tool", + label: "Display an alert", + itemPriority: 210, + icon: , + execute: () => { alert("Toolbar Button Item Clicked!"); }, - { isHidden: isHiddenCondition } - ); + isHidden: isHiddenCondition, + }); return [visibilityActionSpec, alertActionSpec]; } @@ -89,16 +99,16 @@ export class TestUiProvider implements UiItemsProvider { if (stageUsage === StageUsage.General) { statusBarItems.push( - StatusBarItemUtilities.createActionItem( // eslint-disable-line @typescript-eslint/no-deprecated - "alert-statusbar-item", - StatusBarSection.Center, - 100, - "icon-developer", - "Status bar item test", - () => { + StatusBarItemUtilities.createActionItem({ + id: "alert-statusbar-item", + itemPriority: 100, + icon: , + label: "Status bar item test", + execute: () => { alert("Status Bar Item Clicked!"); - } - ) + }, + section: StatusBarSection.Center, + }) ); } @@ -122,7 +132,9 @@ export class TestUiProvider2 implements UiItemsProvider { ) { widgets.push({ id: "addonWidget", - content: Addon Widget in panel, // eslint-disable-line @typescript-eslint/no-deprecated + content: Addon Widget in panel, }); } return widgets; diff --git a/packages/templates/cra-template-desktop-viewer/template/src/frontend/components/routes/ViewerRoute.tsx b/packages/templates/cra-template-desktop-viewer/template/src/frontend/components/routes/ViewerRoute.tsx index 3a985c29..a725e658 100644 --- a/packages/templates/cra-template-desktop-viewer/template/src/frontend/components/routes/ViewerRoute.tsx +++ b/packages/templates/cra-template-desktop-viewer/template/src/frontend/components/routes/ViewerRoute.tsx @@ -1,7 +1,7 @@ /*--------------------------------------------------------------------------------------------- - * Copyright (c) Bentley Systems, Incorporated. All rights reserved. - * See LICENSE.md in the project root for license terms and full copyright notice. - *--------------------------------------------------------------------------------------------*/ +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ import { Viewer, @@ -13,7 +13,7 @@ import { MeasureToolsUiItemsProvider } from "@itwin/measure-tools-react"; import { AncestorsNavigationControls, CopyPropertyTextContextMenuItem, - PropertyGridUiItemsProvider, + createPropertyGrid, ShowHideNullValuesSettingsMenuItem, } from "@itwin/property-grid-react"; import { @@ -93,22 +93,25 @@ export const ViewerRoute = () => { }), ], }, - new PropertyGridUiItemsProvider({ - propertyGridProps: { - autoExpandChildCategories: true, - ancestorsNavigationControls: (props) => ( - - ), - contextMenuItems: [ - (props) => , - ], - settingsMenuItems: [ - (props) => ( - + { + id: "PropertyGridUIProvider", + getWidgets: () => [ + createPropertyGrid({ + autoExpandChildCategories: true, + ancestorsNavigationControls: (props) => ( + ), - ], - }, - }), + contextMenuItems: [ + (props) => , + ], + settingsMenuItems: [ + (props) => ( + + ), + ], + }) + ], + }, new MeasureToolsUiItemsProvider(), new IModelMergeItemsProvider(), ]} diff --git a/packages/templates/cra-template-web-viewer/template/src/App.tsx b/packages/templates/cra-template-web-viewer/template/src/App.tsx index ad8e02f3..df6229dc 100644 --- a/packages/templates/cra-template-web-viewer/template/src/App.tsx +++ b/packages/templates/cra-template-web-viewer/template/src/App.tsx @@ -1,7 +1,7 @@ /*--------------------------------------------------------------------------------------------- - * Copyright (c) Bentley Systems, Incorporated. All rights reserved. - * See LICENSE.md in the project root for license terms and full copyright notice. - *--------------------------------------------------------------------------------------------*/ +* Copyright (c) Bentley Systems, Incorporated. All rights reserved. +* See LICENSE.md in the project root for license terms and full copyright notice. +*--------------------------------------------------------------------------------------------*/ import "./App.scss"; @@ -18,8 +18,8 @@ import { import { AncestorsNavigationControls, CopyPropertyTextContextMenuItem, + createPropertyGrid, PropertyGridManager, - PropertyGridUiItemsProvider, ShowHideNullValuesSettingsMenuItem, } from "@itwin/property-grid-react"; import { @@ -40,7 +40,7 @@ import React, { useCallback, useEffect, useMemo, useState } from "react"; import { Auth } from "./Auth"; import { history } from "./history"; -import { getSchemaContext, unifiedSelectionStorage } from "./selectionStorage"; +import { unifiedSelectionStorage } from "./selectionStorage"; const App: React.FC = () => { const [iModelId, setIModelId] = useState(process.env.IMJS_IMODEL_ID); @@ -212,8 +212,10 @@ const App: React.FC = () => { }), ], }, - new PropertyGridUiItemsProvider({ - propertyGridProps: { + { + id: "PropertyGridUIProvider", + getWidgets: () => [ + createPropertyGrid({ autoExpandChildCategories: true, ancestorsNavigationControls: (props) => ( @@ -229,8 +231,9 @@ const App: React.FC = () => { /> ), ], - }, - }), + }) + ], + }, new MeasureToolsUiItemsProvider(), ]} selectionStorage={unifiedSelectionStorage} From 534faebf7e31f04f0b53b1dcd8753b5252f88965 Mon Sep 17 00:00:00 2001 From: Pankhur Dhaila Date: Thu, 22 May 2025 11:03:24 -0600 Subject: [PATCH 2/2] revert selection changes --- .../providers/ViewerStatusbarItemsProvider.tsx | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/packages/modules/viewer-react/src/components/app-ui/providers/ViewerStatusbarItemsProvider.tsx b/packages/modules/viewer-react/src/components/app-ui/providers/ViewerStatusbarItemsProvider.tsx index 16e9dd48..2453ca42 100644 --- a/packages/modules/viewer-react/src/components/app-ui/providers/ViewerStatusbarItemsProvider.tsx +++ b/packages/modules/viewer-react/src/components/app-ui/providers/ViewerStatusbarItemsProvider.tsx @@ -10,15 +10,13 @@ import type { } from "@itwin/appui-react"; import { MessageCenterField, - SelectionCountField, + SelectionInfoField, SelectionScopeField, SnapModeField, StatusBarItemUtilities, StatusBarSection, TileLoadingIndicator, ToolAssistanceField, - useActiveIModelConnection, - useSelectionSetSize, } from "@itwin/appui-react"; import * as React from "react"; @@ -27,7 +25,7 @@ import type { ViewerDefaultStatusbarItems } from "../../../types"; export class ViewerStatusbarItemsProvider implements UiItemsProvider { public readonly id = "ViewerDefaultStatusbar"; - constructor(private _defaultItems?: ViewerDefaultStatusbarItems) { } + constructor(private _defaultItems?: ViewerDefaultStatusbarItems) {} public provideStatusBarItems(): StatusBarItem[] { const items: StatusBarCustomItem[] = []; @@ -83,18 +81,12 @@ export class ViewerStatusbarItemsProvider implements UiItemsProvider { ); } if (!this._defaultItems || this._defaultItems.selectionInfo) { - const SelectionInfoWrapper = () => { - const iModel = useActiveIModelConnection(); - const count = useSelectionSetSize({ iModel }); - - return ; - }; items.push( StatusBarItemUtilities.createCustomItem({ id: "SelectionInfo", section: StatusBarSection.Right, itemPriority: 40, - content: , + content: , // eslint-disable-line @typescript-eslint/no-deprecated }) ); }