[Tree widget]: reduce folder nesting on next - #1759
Merged
Merged
Conversation
JonasDov
force-pushed
the
JonasD/reduce-nesting
branch
from
August 3, 2026 08:13
1eabc57 to
666d343
Compare
JonasDov
marked this pull request as ready for review
August 3, 2026 08:13
Contributor
There was a problem hiding this comment.
Pull request overview
This PR reorganizes the Tree Widget React implementation to reduce folder nesting by moving reusable “common” tree code into a new tree-widget-react/shared/ area, while keeping tree implementations grouped under tree-widget-react/trees/.
Changes:
- Restructured imports and module layout to remove the extra
tree-widget-react/components/level and extract common tree utilities/components intotree-widget-react/shared/. - Added/relocated shared infrastructure (visibility handling, caches, telemetry, localization, generic tree components) and updated tree implementations to consume it.
- Updated public/internal barrel exports, tests, and documentation links; removed unused
IsPromiseLike.ts.
Reviewed changes
Copilot reviewed 94 out of 154 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| packages/tree-widget/src/tree-widget-react/TreeWidgetUiItemsProvider.tsx | Update localization imports to new shared locations. |
| packages/tree-widget/src/tree-widget-react/TreeWidgetUiItemsProvider.css | Add widget root sizing styles. |
| packages/tree-widget/src/tree-widget-react/TreeWidgetComponentImpl.tsx | Repoint localization + shared component imports. |
| packages/tree-widget/src/tree-widget-react/TreeWidgetComponentImpl.css | Add layout styles for selectable tree container. |
| packages/tree-widget/src/tree-widget-react/trees/models-tree/UseModelsTree.tsx | Update models tree to use shared components/internal helpers. |
| packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeNode.ts | New node-type helpers for models tree. |
| packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeIcon.tsx | New icon renderer for models tree nodes. |
| packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeDefinition.ts | Move common dependencies to shared equivalents. |
| packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeComponent.tsx | Update providers/hooks to shared implementations. |
| packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTreeButtons.tsx | Update localization/visibility helpers + shared types. |
| packages/tree-widget/src/tree-widget-react/trees/models-tree/ModelsTree.tsx | Switch visibility tree imports to shared. |
| packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/SearchResultsTree.ts | Repoint internal visibility utilities to shared. |
| packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHelper.ts | Repoint internal visibility helper dependencies to shared. |
| packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/visibility/ModelsTreeVisibilityHandler.ts | Repoint cached-visibility plumbing to shared. |
| packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/UseSearchPaths.ts | Repoint search + telemetry + utils to shared. |
| packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/ModelsTreeNodeInternal.ts | Update internal node typing helpers to shared types. |
| packages/tree-widget/src/tree-widget-react/trees/models-tree/internal/ModelsTreeIdsCache.ts | Update cache dependencies to shared caches/utils. |
| packages/tree-widget/src/tree-widget-react/trees/index.ts | Re-export shared APIs from trees/ barrel. |
| packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/internal/IModelContentTreeIdsCache.ts | Update internal ids cache dependencies to shared. |
| packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/IModelContentTreeDefinition.ts | Update class-name/utils imports to shared. |
| packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/IModelContentTreeComponent.tsx | Switch telemetry provider import to shared. |
| packages/tree-widget/src/tree-widget-react/trees/imodel-content-tree/IModelContentTree.tsx | Switch common UI imports to shared components/hooks. |
| packages/tree-widget/src/tree-widget-react/trees/external-sources-tree/ExternalSourcesTreeDefinition.ts | Switch common definitions/utils to shared. |
| packages/tree-widget/src/tree-widget-react/trees/external-sources-tree/ExternalSourcesTreeComponent.tsx | Switch telemetry provider import to shared. |
| packages/tree-widget/src/tree-widget-react/trees/external-sources-tree/ExternalSourcesTree.tsx | Switch common UI imports to shared components/hooks. |
| packages/tree-widget/src/tree-widget-react/trees/classifications-tree/UseClassificationsTreeDefinition.ts | Switch internal hooks/utils/telemetry to shared. |
| packages/tree-widget/src/tree-widget-react/trees/classifications-tree/UseClassificationsTree.tsx | Switch common UI/visibility/search utilities to shared. |
| packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/SearchResultsTree.ts | Switch base search tree utilities/types to shared. |
| packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHelper.ts | Switch tooltip/base helper imports to shared. |
| packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/visibility/ClassificationsTreeVisibilityHandler.ts | Switch cached-visibility plumbing to shared. |
| packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/ClassificationsTreeNodeInternal.ts | Update internal node helpers to shared types. |
| packages/tree-widget/src/tree-widget-react/trees/classifications-tree/internal/ClassificationsTreeIdsCache.ts | Update ids cache dependencies to shared caches/utils. |
| packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeNode.ts | New node-type helpers for classifications tree. |
| packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeIcon.tsx | New icon renderer for classifications tree nodes. |
| packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeDefinition.ts | Move common dependencies to shared equivalents. |
| packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTreeComponent.tsx | Update viewport/shared providers to shared. |
| packages/tree-widget/src/tree-widget-react/trees/classifications-tree/ClassificationsTree.tsx | Switch visibility tree imports to shared. |
| packages/tree-widget/src/tree-widget-react/trees/categories-tree/UseCategoriesTree.tsx | Switch common UI/visibility/search utilities to shared. |
| packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/SearchResultsTree.ts | Switch base search tree utilities/types to shared. |
| packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHelper.ts | Switch tooltip/base helper imports to shared. |
| packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/visibility/CategoriesTreeVisibilityHandler.ts | Switch cached-visibility plumbing to shared. |
| packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/UseSearchPaths.ts | Switch class-name/rxjs/utils/telemetry to shared. |
| packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/CategoriesTreeNodeInternal.ts | Update internal node helpers to shared types. |
| packages/tree-widget/src/tree-widget-react/trees/categories-tree/internal/CategoriesTreeIdsCache.ts | Update ids cache dependencies to shared caches/utils. |
| packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeNode.ts | New node-type helpers for categories tree. |
| packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeIcon.tsx | New icon renderer for categories tree nodes. |
| packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeDefinition.ts | Move common dependencies to shared equivalents. |
| packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeComponent.tsx | Update viewport/shared providers to shared. |
| packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTreeButtons.tsx | Switch localization/error/visibility utils + types to shared. |
| packages/tree-widget/src/tree-widget-react/trees/categories-tree/CategoriesTree.tsx | Switch visibility tree imports to shared. |
| packages/tree-widget/src/tree-widget-react/tree-header/WidgetHeader.tsx | New header UI for tree selection + search. |
| packages/tree-widget/src/tree-widget-react/tree-header/WidgetHeader.css | Add header layout styles. |
| packages/tree-widget/src/tree-widget-react/tree-header/SelectableTree.tsx | Update shared viewport type import. |
| packages/tree-widget/src/tree-widget-react/tree-header/SelectableTree.css | Add toolbar/content layout styles. |
| packages/tree-widget/src/tree-widget-react/tree-header/SearchBox.tsx | Switch localization/latest-hook imports to shared. |
| packages/tree-widget/src/tree-widget-react/tree-header/ErrorState.tsx | Switch localization import to shared. |
| packages/tree-widget/src/tree-widget-react/shared/Utils.ts | New shared utilities (e.g., join search trees). |
| packages/tree-widget/src/tree-widget-react/shared/UseTelemetryContext.tsx | New shared telemetry context/provider utilities. |
| packages/tree-widget/src/tree-widget-react/shared/UseHierarchyVisibility.ts | New shared visibility hook and override helper types. |
| packages/tree-widget/src/tree-widget-react/shared/TreeErrors.ts | New shared error types for trees. |
| packages/tree-widget/src/tree-widget-react/shared/SharedTreeContextProvider.tsx | New shared context provider wrapper. |
| packages/tree-widget/src/tree-widget-react/shared/internal/VisibilityUtils.ts | New shared visibility utilities (merge/show/invert/hide). |
| packages/tree-widget/src/tree-widget-react/shared/internal/VisibilityChangeEventListener.ts | New shared viewport event listener abstraction. |
| packages/tree-widget/src/tree-widget-react/shared/internal/Types.ts | New shared internal ID type aliases. |
| packages/tree-widget/src/tree-widget-react/shared/internal/Tooltip.ts | Adjust localization helper import paths. |
| packages/tree-widget/src/tree-widget-react/shared/internal/SharedTreeContextProviderInternal.tsx | New shared internal cache/context provider implementation. |
| packages/tree-widget/src/tree-widget-react/shared/internal/Rxjs.ts | New shared rxjs helpers (batching/yielding/iteration). |
| packages/tree-widget/src/tree-widget-react/shared/internal/LocalizationHelpers.ts | New shared localization key/types helpers. |
| packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseLatest.ts | New shared useLatest hook. |
| packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseIModelChangeListener.ts | New shared iModel txn listener hook. |
| packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseIModelAccess.ts | Update TreeWidget import path after restructuring. |
| packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseIdsCache.ts | New shared cache management hook. |
| packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseHierarchyFiltering.tsx | New shared hierarchy-level filtering hook/UI plumbing. |
| packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseGuid.ts | New shared GUID hook. |
| packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseErrorState.ts | New shared error-state helpers + sqlite interrupt handling. |
| packages/tree-widget/src/tree-widget-react/shared/internal/hooks/UseActiveTreeWidgetViewport.tsx | New shared hook for active viewport resolution. |
| packages/tree-widget/src/tree-widget-react/shared/internal/EachValueFrom.ts | New shared async iterator for Observable values. |
| packages/tree-widget/src/tree-widget-react/shared/internal/ClassNameDefinitions.ts | New shared BIS/class name constants. |
| packages/tree-widget/src/tree-widget-react/shared/internal/caches/SubCategoriesCache.ts | New shared cache for subcategory relationships. |
| packages/tree-widget/src/tree-widget-react/shared/internal/caches/ModeledElementsCache.ts | New shared cache for modeled elements/submodels. |
| packages/tree-widget/src/tree-widget-react/shared/internal/caches/ElementModelCategoriesCache.ts | New shared cache for model/category aggregation data. |
| packages/tree-widget/src/tree-widget-react/shared/internal/caches/BatchingCache.ts | New shared batching/dedup/caching base class. |
| packages/tree-widget/src/tree-widget-react/shared/FocusedInstancesContext.tsx | Switch eachValueFrom import to shared implementation. |
| packages/tree-widget/src/tree-widget-react/shared/components/VisibilityTreeRenderer.tsx | New shared visibility-enabled tree renderer. |
| packages/tree-widget/src/tree-widget-react/shared/components/VisibilityTree.tsx | New shared visibility-enabled tree wrapper. |
| packages/tree-widget/src/tree-widget-react/shared/components/UseVisibilityButtonHandler.ts | New shared selection-aware visibility click handler. |
| packages/tree-widget/src/tree-widget-react/shared/components/TreeRenderer.tsx | New shared default tree renderer wrapper. |
| packages/tree-widget/src/tree-widget-react/shared/components/TreeNodeVisibilityButton.tsx | New shared visibility action + context/provider. |
| packages/tree-widget/src/tree-widget-react/shared/components/TreeNodeVisibilityButton.css | Add visibility button styling hook. |
| packages/tree-widget/src/tree-widget-react/shared/components/TreeNodeCheckbox.scss | Add checkbox styling rules (SCSS). |
| packages/tree-widget/src/tree-widget-react/shared/components/Tree.tsx | Update TreeWidget import path + use shared hooks. |
| packages/tree-widget/src/tree-widget-react/shared/components/Tree.css | Add base renderer container styles. |
| packages/tree-widget/src/tree-widget-react/shared/components/SkeletonTree.tsx | New shared skeleton tree UI. |
| packages/tree-widget/src/tree-widget-react/shared/components/SkeletonTree.css | Add skeleton styling. |
| packages/tree-widget/src/tree-widget-react/shared/components/ProgressOverlay.tsx | New shared progress overlay UI. |
| packages/tree-widget/src/tree-widget-react/shared/components/ProgressOverlay.css | Add overlay styling. |
| packages/tree-widget/src/tree-widget-react/shared/components/LocalizationContext.tsx | Repoint localization helpers to shared/internal. |
| packages/tree-widget/src/tree-widget-react/shared/components/EmptyTree.tsx | New shared empty/error UI components for trees. |
| packages/tree-widget/src/tree-widget-react/shared/components/EmptyTree.css | Add empty/error UI styles. |
| packages/tree-widget/src/tree-widget-react/shared/components/Delayed.tsx | New shared delayed-render helper component. |
| packages/tree-widget/src/tree-widget-react/components/utils/IsPromiseLike.ts | Delete unused promise-like helper. |
| packages/tree-widget/src/tree-widget-react.ts | Update public exports to new flattened layout. |
| packages/tree-widget/src/tree-widget-react-internal.ts | Update internal barrel exports to new paths. |
| packages/tree-widget/src/test/trees/TreeUtils.ts | Update test utility imports to new shared paths. |
| packages/tree-widget/src/test/trees/models-tree/Utils.ts | Update models-tree test helpers to new paths. |
| packages/tree-widget/src/test/trees/models-tree/UseModelsTree.test.tsx | Update test imports to new shared/tree paths. |
| packages/tree-widget/src/test/trees/models-tree/ModelsTreeNode.test.ts | Update test import paths for moved symbols. |
| packages/tree-widget/src/test/trees/models-tree/ModelsTreeHierarchyLevelFiltering.test.ts | Update class-name constants import path. |
| packages/tree-widget/src/test/trees/models-tree/ModelsTreeFiltering.test.tsx | Update providers + class-name constants imports. |
| packages/tree-widget/src/test/trees/models-tree/ModelsTreeDefinition.test.ts | Update class-name constants import path. |
| packages/tree-widget/src/test/trees/models-tree/internal/VisibilityValidation.ts | Update imports after test/shared refactor. |
| packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeVisibilityHandler.test.ts | Update imports to shared + new tree locations. |
| packages/tree-widget/src/test/trees/models-tree/internal/ModelsTreeIdsCache.test.ts | Update imports to shared + new tree locations. |
| packages/tree-widget/src/test/trees/HierarchyValidation.ts | Limit exported surface (internalize HierarchyDef). |
| packages/tree-widget/src/test/trees/Common.ts | Update test type import paths. |
| packages/tree-widget/src/test/trees/classifications-tree/VisibilityValidation.ts | Update node import and validation types path. |
| packages/tree-widget/src/test/trees/classifications-tree/Utils.ts | Update test helpers to new shared/tree paths. |
| packages/tree-widget/src/test/trees/classifications-tree/HierarchyNodeUtils.ts | Update class-name constants import path. |
| packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeVisibilityHandler.test.ts | Update imports to shared + new tree locations. |
| packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeNode.test.ts | Update node helper import path. |
| packages/tree-widget/src/test/trees/classifications-tree/ClassificationsTreeFiltering.test.tsx | Update imports to shared + new tree locations. |
| packages/tree-widget/src/test/trees/categories-tree/internal/VisibilityValidation.ts | Update node imports and validation types path. |
| packages/tree-widget/src/test/trees/categories-tree/internal/Utils.ts | Update class-name/constants and type paths. |
| packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeVisibilityHandler.test.ts | Update imports to shared + new tree locations. |
| packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeNode.test.ts | Update node helper import path. |
| packages/tree-widget/src/test/trees/categories-tree/internal/CategoriesTreeIdsCache.test.ts | Update cache/utils imports to new shared paths. |
| packages/tree-widget/src/test/trees/categories-tree/CategoriesTreeFiltering.test.tsx | Update providers/utils imports to new shared paths. |
| packages/tree-widget/src/test/trees/categories-tree/CategoriesTreeDefinition.test.ts | Update cache/utils imports to new shared paths. |
| packages/tree-widget/src/test/shared/VisibilityValidation.ts | Update shared validation imports and test paths. |
| packages/tree-widget/src/test/shared/Utils.test.ts | Update joinHierarchySearchTrees import path. |
| packages/tree-widget/src/test/shared/UseHierarchyVisibility.test.ts | Update hook/test util import paths to new locations. |
| packages/tree-widget/src/test/shared/TreeWidgetViewport.test.ts | Update viewport factory import path. |
| packages/tree-widget/src/test/shared/internal/VisibilityUtils.test.ts | Update visibility utils/tooling import paths. |
| packages/tree-widget/src/test/shared/internal/VisibilityChangeEventListener.test.ts | Update listener import + test util paths. |
| packages/tree-widget/src/test/shared/internal/Utils.test.ts | Update internal utils import path. |
| packages/tree-widget/src/test/shared/internal/hooks/UseIdsCache.test.ts | Update hook/test util import paths. |
| packages/tree-widget/src/test/shared/internal/hooks/UseCachedVisibility.test.ts | Update cached-visibility imports to shared. |
| packages/tree-widget/src/test/shared/internal/DescendantsCountCache.test.ts | Update cache import paths. |
| packages/tree-widget/src/test/shared/internal/ChildElementsCache.test.ts | Update cache import paths. |
| packages/tree-widget/src/test/shared/internal/BufferingViewport.test.ts | Update buffering viewport import paths. |
| packages/tree-widget/src/test/shared/internal/AlwaysAndNeverDrawnElementInfoCache.test.ts | Update cache import paths + type imports. |
| packages/tree-widget/src/test/shared/FocusedInstancesContext.test.tsx | Update focused instances context import + test util path. |
| packages/tree-widget/docs/Visibility.md | Update doc links to new shared/tree paths. |
| packages/tree-widget/docs/SharedVisibilityHandling.md | Update doc links to new shared path for VisibilityUtils. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Tree-Widget Next benchmark
| Benchmark suite | Current: 666d343 | Previous: 3b9c4b7 | Deviation | Status |
|---|---|---|---|---|
models tree 50k 3D elements search > get search paths |
1186 ms |
1153 ms |
2.86% |
〰️ |
models tree 50k 3D elements search > get search paths (P95 of main thread blocks) |
64 ms |
53 ms |
20.75% |
〰️ |
models tree 50k 3D elements search > load hierarchy from search paths |
116385 ms |
114333 ms |
1.79% |
〰️ |
models tree 50k 3D elements search > load hierarchy from search paths (P95 of main thread blocks) |
94 ms |
37 ms |
154.05% |
🚨 |
models tree 50k categories > collect nodes |
3069 ms |
2990 ms |
2.64% |
〰️ |
models tree 50k categories > collect nodes (P95 of main thread blocks) |
97 ms |
101 ms |
-3.96% |
〰️ |
models tree 50k categories > validate initial visibility |
1862 ms |
1848 ms |
0.76% |
〰️ |
models tree 50k categories > validate initial visibility (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree 50k categories > change visibility |
210 ms |
203 ms |
3.45% |
〰️ |
models tree 50k categories > change visibility (P95 of main thread blocks) |
63 ms |
52 ms |
21.15% |
〰️ |
models tree 50k categories > validate changed visibility |
2359 ms |
2333 ms |
1.11% |
〰️ |
models tree 50k categories > validate changed visibility (P95 of main thread blocks) |
26 ms |
23 ms |
13.04% |
〰️ |
models tree 50k 3D elements > collect nodes |
47522 ms |
46823 ms |
1.49% |
〰️ |
models tree 50k 3D elements > collect nodes (P95 of main thread blocks) |
77 ms |
62 ms |
24.19% |
〰️ |
models tree 50k 3D elements > validate initial visibility |
1506 ms |
1406 ms |
7.11% |
〰️ |
models tree 50k 3D elements > validate initial visibility (P95 of main thread blocks) |
83 ms |
0 ms |
8300% |
🚨 |
models tree 50k 3D elements > change model visibility |
110 ms |
109 ms |
0.92% |
〰️ |
models tree 50k 3D elements > change model visibility (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree 50k 3D elements > validate changed model visibility |
2176 ms |
2153 ms |
1.07% |
〰️ |
models tree 50k 3D elements > validate changed model visibility (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree 50k 3D elements > change category node visibility |
519 ms |
485 ms |
7.01% |
〰️ |
models tree 50k 3D elements > change category node visibility (P95 of main thread blocks) |
41 ms |
45 ms |
-8.89% |
〰️ |
models tree 50k 3D elements > validate changed category visibility |
1421 ms |
1471 ms |
-3.40% |
〰️ |
models tree 50k 3D elements > validate changed category visibility (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree 50k 3D elements > validate per-model category override |
1395 ms |
1456 ms |
-4.19% |
〰️ |
models tree 50k 3D elements > validate per-model category override (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree 50k 3D elements > change element visibility |
38 ms |
39 ms |
-2.56% |
〰️ |
models tree 50k 3D elements > change element visibility (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree 50k 3D elements > validate changed element visibility |
2160 ms |
2229 ms |
-3.10% |
〰️ |
models tree 50k 3D elements > validate changed element visibility (P95 of main thread blocks) |
43 ms |
50 ms |
-14.00% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > collect nodes |
66044 ms |
65387 ms |
1.00% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > collect nodes (P95 of main thread blocks) |
61 ms |
72 ms |
-15.28% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > validate initial visibility |
2173 ms |
2025 ms |
7.31% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > validate initial visibility (P95 of main thread blocks) |
27 ms |
0 ms |
2700% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > change visibility |
52 ms |
53 ms |
-1.89% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > change visibility (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree 50k 3D child elements with different categories and excluded classes > validate changed visibility |
5669 ms |
5761 ms |
-1.60% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > validate changed visibility (P95 of main thread blocks) |
92 ms |
90 ms |
2.22% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > collect nodes |
67828 ms |
65387 ms |
3.73% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > collect nodes (P95 of main thread blocks) |
70 ms |
72 ms |
-2.78% |
〰️ |
models tree 50k 3D child elements with different categories and excluded classes > validate initial visibility |
2260 ms |
2025 ms |
11.60% |
🚨 |
models tree 50k 3D child elements with different categories and excluded classes > validate initial visibility (P95 of main thread blocks) |
119 ms |
0 ms |
11900% |
🚨 |
models tree 50k 3D child elements with different categories and excluded classes > change visibility |
53 ms |
53 ms |
0% |
🟰 |
models tree 50k 3D child elements with different categories and excluded classes > change visibility (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
models tree 50k 3D child elements with different categories and excluded classes > validate changed visibility |
7362 ms |
5761 ms |
27.79% |
🚨 |
models tree 50k 3D child elements with different categories and excluded classes > validate changed visibility (P95 of main thread blocks) |
102 ms |
90 ms |
13.33% |
〰️ |
categories tree 50k subCategories search > get search paths |
1483 ms |
1501 ms |
-1.20% |
〰️ |
categories tree 50k subCategories search > get search paths (P95 of main thread blocks) |
88 ms |
81 ms |
8.64% |
〰️ |
categories tree 50k subCategories search > load hierarchy from search paths |
5880 ms |
5936 ms |
-0.94% |
〰️ |
categories tree 50k subCategories search > load hierarchy from search paths (P95 of main thread blocks) |
61 ms |
63 ms |
-3.17% |
〰️ |
categories tree 50k subCategories > collect nodes |
6319 ms |
6298 ms |
0.33% |
〰️ |
categories tree 50k subCategories > collect nodes (P95 of main thread blocks) |
40 ms |
39 ms |
2.56% |
〰️ |
categories tree 50k subCategories > validate initial visibility |
1064 ms |
1032 ms |
3.10% |
〰️ |
categories tree 50k subCategories > validate initial visibility (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
categories tree 50k subCategories > change visibility |
357 ms |
346 ms |
3.18% |
〰️ |
categories tree 50k subCategories > change visibility (P95 of main thread blocks) |
27 ms |
23 ms |
17.39% |
〰️ |
categories tree 50k subCategories > validate changed visibility |
1164 ms |
1079 ms |
7.88% |
〰️ |
categories tree 50k subCategories > validate changed visibility (P95 of main thread blocks) |
27 ms |
26 ms |
3.85% |
〰️ |
categories tree 50k categories and excluded classes > collect nodes |
117872 ms |
116143 ms |
1.49% |
〰️ |
categories tree 50k categories and excluded classes > collect nodes (P95 of main thread blocks) |
108 ms |
127 ms |
-14.96% |
〰️ |
categories tree 50k categories and excluded classes > validate initial visibility |
5355 ms |
5264 ms |
1.73% |
〰️ |
categories tree 50k categories and excluded classes > validate initial visibility (P95 of main thread blocks) |
55 ms |
71 ms |
-22.54% |
〰️ |
categories tree 50k categories and excluded classes > change visibility |
814 ms |
814 ms |
0% |
🟰 |
categories tree 50k categories and excluded classes > change visibility (P95 of main thread blocks) |
61 ms |
62 ms |
-1.61% |
〰️ |
categories tree 50k categories and excluded classes > validate changed visibility |
5803 ms |
5782 ms |
0.36% |
〰️ |
categories tree 50k categories and excluded classes > validate changed visibility (P95 of main thread blocks) |
68 ms |
37 ms |
83.78% |
〰️ |
categories tree 50k categories and excluded classes > collect nodes |
120190 ms |
116143 ms |
3.48% |
〰️ |
categories tree 50k categories and excluded classes > collect nodes (P95 of main thread blocks) |
120 ms |
127 ms |
-5.51% |
〰️ |
categories tree 50k categories and excluded classes > validate initial visibility |
5787 ms |
5264 ms |
9.94% |
〰️ |
categories tree 50k categories and excluded classes > validate initial visibility (P95 of main thread blocks) |
43 ms |
71 ms |
-39.44% |
〰️ |
categories tree 50k categories and excluded classes > change visibility |
817 ms |
814 ms |
0.37% |
〰️ |
categories tree 50k categories and excluded classes > change visibility (P95 of main thread blocks) |
72 ms |
62 ms |
16.13% |
〰️ |
categories tree 50k categories and excluded classes > validate changed visibility |
8117 ms |
5782 ms |
40.38% |
🚨 |
categories tree 50k categories and excluded classes > validate changed visibility (P95 of main thread blocks) |
59 ms |
37 ms |
59.46% |
〰️ |
classifications tree 50k classifications search > get search paths |
2420 ms |
2410 ms |
0.41% |
〰️ |
classifications tree 50k classifications search > get search paths (P95 of main thread blocks) |
194 ms |
207 ms |
-6.28% |
〰️ |
classifications tree 50k classifications search > load hierarchy from search paths |
64716 ms |
64022 ms |
1.08% |
〰️ |
classifications tree 50k classifications search > load hierarchy from search paths (P95 of main thread blocks) |
28 ms |
31 ms |
-9.68% |
〰️ |
classifications tree 50k classifications and excluded classes > collect nodes |
33984 ms |
33432 ms |
1.65% |
〰️ |
classifications tree 50k classifications and excluded classes > collect nodes (P95 of main thread blocks) |
56 ms |
39 ms |
43.59% |
〰️ |
classifications tree 50k classifications and excluded classes > validate initial visibility |
2897 ms |
2890 ms |
0.24% |
〰️ |
classifications tree 50k classifications and excluded classes > validate initial visibility (P95 of main thread blocks) |
0 ms |
0 ms |
0% |
🟰 |
classifications tree 50k classifications and excluded classes > change visibility |
155 ms |
161 ms |
-3.73% |
〰️ |
classifications tree 50k classifications and excluded classes > change visibility (P95 of main thread blocks) |
22 ms |
0 ms |
2200% |
〰️ |
classifications tree 50k classifications and excluded classes > validate changed visibility |
3510 ms |
3457 ms |
1.53% |
〰️ |
classifications tree 50k classifications and excluded classes > validate changed visibility (P95 of main thread blocks) |
83 ms |
55 ms |
50.91% |
〰️ |
classifications tree 50k classifications and excluded classes > collect nodes |
34166 ms |
33432 ms |
2.20% |
〰️ |
classifications tree 50k classifications and excluded classes > collect nodes (P95 of main thread blocks) |
64 ms |
39 ms |
64.10% |
〰️ |
classifications tree 50k classifications and excluded classes > validate initial visibility |
3100 ms |
2890 ms |
7.27% |
〰️ |
classifications tree 50k classifications and excluded classes > validate initial visibility (P95 of main thread blocks) |
46 ms |
0 ms |
4600% |
〰️ |
classifications tree 50k classifications and excluded classes > change visibility |
161 ms |
161 ms |
0% |
🟰 |
classifications tree 50k classifications and excluded classes > change visibility (P95 of main thread blocks) |
26 ms |
0 ms |
2600% |
〰️ |
classifications tree 50k classifications and excluded classes > validate changed visibility |
3416 ms |
3457 ms |
-1.19% |
〰️ |
classifications tree 50k classifications and excluded classes > validate changed visibility (P95 of main thread blocks) |
78 ms |
55 ms |
41.82% |
〰️ |
This comment was automatically generated by workflow using github-action-benchmark.
saskliutas
approved these changes
Aug 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Removed the extra
tree-widget-react/components/folder: widget components move totree-widget-react/.Extracted former
tree-widget-react/components/trees/commonintotree-widget-react/shared/.Tree implementations are still grouped under
tree-widget-react/trees/.Updated documentation links.
Deleted the unused
components/utils/IsPromiseLike.ts.