From a53cb1fab7dd32ab21eebdd011335481c7c8b872 Mon Sep 17 00:00:00 2001 From: Raphael Lemieux <1904889+raplemie@users.noreply.github.com> Date: Fri, 27 Oct 2023 16:37:12 -0400 Subject: [PATCH] Fix unneeded `changeView` call being done on mount --- ...ewportExcessiveChangeViews_2023-10-27-20-34.json | 10 ++++++++++ ...ewportExcessiveChangeViews_2023-10-27-20-34.json | 10 ++++++++++ docs/changehistory/NextVersion.md | 13 +++++++++++-- .../appui-react/content/FloatingViewportContent.tsx | 3 +-- .../viewport/ViewportComponent.tsx | 9 +-------- 5 files changed, 33 insertions(+), 12 deletions(-) create mode 100644 common/changes/@itwin/appui-react/raplemie-ViewportExcessiveChangeViews_2023-10-27-20-34.json create mode 100644 common/changes/@itwin/imodel-components-react/raplemie-ViewportExcessiveChangeViews_2023-10-27-20-34.json diff --git a/common/changes/@itwin/appui-react/raplemie-ViewportExcessiveChangeViews_2023-10-27-20-34.json b/common/changes/@itwin/appui-react/raplemie-ViewportExcessiveChangeViews_2023-10-27-20-34.json new file mode 100644 index 00000000000..e80b7f4cff3 --- /dev/null +++ b/common/changes/@itwin/appui-react/raplemie-ViewportExcessiveChangeViews_2023-10-27-20-34.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@itwin/appui-react", + "comment": "Remove unneeded `changeView` call on `FloatingViewportComponent`", + "type": "none" + } + ], + "packageName": "@itwin/appui-react" +} \ No newline at end of file diff --git a/common/changes/@itwin/imodel-components-react/raplemie-ViewportExcessiveChangeViews_2023-10-27-20-34.json b/common/changes/@itwin/imodel-components-react/raplemie-ViewportExcessiveChangeViews_2023-10-27-20-34.json new file mode 100644 index 00000000000..3ec98c393b3 --- /dev/null +++ b/common/changes/@itwin/imodel-components-react/raplemie-ViewportExcessiveChangeViews_2023-10-27-20-34.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@itwin/imodel-components-react", + "comment": "Remove additional `changeView` call on `ViewportComponent` mount.", + "type": "none" + } + ], + "packageName": "@itwin/imodel-components-react" +} \ No newline at end of file diff --git a/docs/changehistory/NextVersion.md b/docs/changehistory/NextVersion.md index 61833024bfe..ede3c6e68ee 100644 --- a/docs/changehistory/NextVersion.md +++ b/docs/changehistory/NextVersion.md @@ -6,10 +6,12 @@ Table of contents: - [Additions](#additions) - [Changes](#changes) - [Fixes](#fixes) -- [@itwin/components-react](#itwincomponents-react) +- [@itwin/imodel-components-react](#itwinimodel-components-react) - [Fixes](#fixes-1) -- [@itwin/core-react](#itwincore-react) +- [@itwin/components-react](#itwincomponents-react) - [Fixes](#fixes-2) +- [@itwin/core-react](#itwincore-react) + - [Fixes](#fixes-3) ## @itwin/appui-react @@ -67,6 +69,13 @@ Table of contents: - Unmount `ChildWindowManager` whenever child window is closed. - Whenever widget is popped out and `window.open` fails, widget no longer disappears. - Fix error when `HTMLElement` used in `NotifyMessageDetails` messages. +- Remove unneeded `changeView` call in `FloatingViewportComponent`. + +## @itwin/imodel-components-react + +### Fixes + +- Remove unneeded `changeView` call when mounting `ViewportComponent`. ## @itwin/components-react diff --git a/ui/appui-react/src/appui-react/content/FloatingViewportContent.tsx b/ui/appui-react/src/appui-react/content/FloatingViewportContent.tsx index c9ebb9169dd..5a4d4e3b396 100644 --- a/ui/appui-react/src/appui-react/content/FloatingViewportContent.tsx +++ b/ui/appui-react/src/appui-react/content/FloatingViewportContent.tsx @@ -120,9 +120,8 @@ export function useFloatingViewport(args: FloatingViewportContentProps) { if (null === contentControl.current.reactNode) { contentControl.current.reactNode = viewportControl; } - void contentControl.current.viewport.changeView(viewState); } - }, [viewState, viewport, viewportControl]); + }, [viewport, viewportControl]); React.useEffect(() => { const onViewClose = (vp: ScreenViewport) => { diff --git a/ui/imodel-components-react/src/imodel-components-react/viewport/ViewportComponent.tsx b/ui/imodel-components-react/src/imodel-components-react/viewport/ViewportComponent.tsx index 2f8f56d519f..191a4d5e42f 100644 --- a/ui/imodel-components-react/src/imodel-components-react/viewport/ViewportComponent.tsx +++ b/ui/imodel-components-react/src/imodel-components-react/viewport/ViewportComponent.tsx @@ -294,14 +294,7 @@ export function ViewportComponent(props: ViewportProps) { const [initialViewState, setInitialViewState] = React.useState< ViewState | undefined - >(() => { - if (viewState) { - if (typeof viewState === "function") return viewState().clone(); - else return viewState.clone(); - } - return undefined; - }); - + >(undefined); React.useEffect(() => { setInitialViewState(undefined); }, [viewDefinitionId, viewState]);