Skip to content

Commit

Permalink
Fix 'ResizeObserver loop limit exceeded' error in MapLayers widget (#…
Browse files Browse the repository at this point in the history
…3305)

* Replaced useResizeDerector by UseLayoutResizeObserver

* changelog

* fixed CSS typo
  • Loading branch information
mdastous-bentley authored Mar 9, 2022
1 parent 389a0fe commit ecb14a5
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 21 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"changes": [
{
"packageName": "@itwin/map-layers",
"comment": "Fix 'ResizeObserver loop limit exceeded' error in MapLayers widget",
"type": "none"
}
],
"packageName": "@itwin/map-layers"
}
14 changes: 0 additions & 14 deletions common/config/rush/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 2 additions & 3 deletions extensions/map-layers/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,7 @@
},
"dependencies": {
"classnames": "^2.3.1",
"react-beautiful-dnd": "^13.0.0",
"react-resize-detector": "^6.7.6"
"react-beautiful-dnd": "^13.0.0"
},
"peerDependencies": {
"@itwin/core-bentley": "workspace:*",
Expand Down Expand Up @@ -136,4 +135,4 @@
"mochaFile=lib/test/junit_results.xml"
]
}
}
}
3 changes: 3 additions & 0 deletions extensions/map-layers/src/ui/widget/SubLayersTree.scss
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,7 @@

.map-manager-sublayer-tree-content {
flex-grow: 1;
width: "100%";
height: "100%";
overflow: "hidden"
}
9 changes: 5 additions & 4 deletions extensions/map-layers/src/ui/widget/SubLayersTree.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,9 @@ import {
} from "@itwin/components-react";
import { ImageMapLayerSettings, MapSubLayerProps, MapSubLayerSettings } from "@itwin/core-common";
import { IModelApp, ScreenViewport } from "@itwin/core-frontend";
import { CheckBoxState, ImageCheckBox, NodeCheckboxRenderProps, useDisposable, WebFontIcon } from "@itwin/core-react";
import { CheckBoxState, ImageCheckBox, NodeCheckboxRenderProps, useDisposable, useLayoutResizeObserver, useRefState, WebFontIcon } from "@itwin/core-react";
import { Input } from "@itwin/itwinui-react";
import * as React from "react";
import { useResizeDetector } from "react-resize-detector";
import { StyleMapLayerSettings } from "../Interfaces";
import { SubLayersDataProvider } from "./SubLayersDataProvider";
import "./SubLayersTree.scss";
Expand Down Expand Up @@ -137,7 +136,8 @@ export function SubLayersTree(props: { mapLayer: StyleMapLayerSettings }) {
setLayerFilterString(event.target.value);
}, []);

const { width, height, ref } = useResizeDetector();
const [divRef, divElement] = useRefState<HTMLDivElement>();
const [width, height] = useLayoutResizeObserver(divElement ?? null);

return <>
<div className="map-manager-sublayer-tree">
Expand All @@ -159,7 +159,8 @@ export function SubLayersTree(props: { mapLayer: StyleMapLayerSettings }) {
</button>,
]}
</Toolbar>
<div ref={ref} className="map-manager-sublayer-tree-content">
{/* <div ref={ref} className="map-manager-sublayer-tree-content"> */}
<div ref={divRef} className="map-manager-sublayer-tree-content">
{width && height ? <ControlledTree
nodeLoader={nodeLoader}
selectionMode={SelectionMode.None}
Expand Down

0 comments on commit ecb14a5

Please sign in to comment.