Skip to content

[Tree widget]: reduce folder nesting on next - #1759

Merged
JonasDov merged 5 commits into
tree-widget/nextfrom
JonasD/reduce-nesting
Aug 3, 2026
Merged

[Tree widget]: reduce folder nesting on next#1759
JonasDov merged 5 commits into
tree-widget/nextfrom
JonasD/reduce-nesting

Conversation

@JonasDov

@JonasDov JonasDov commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Removed the extra tree-widget-react/components/ folder: widget components move to tree-widget-react/.
Extracted former tree-widget-react/components/trees/common into tree-widget-react/shared/.
Tree implementations are still grouped under tree-widget-react/trees/.
Updated documentation links.
Deleted the unused components/utils/IsPromiseLike.ts.

@JonasDov
JonasDov force-pushed the JonasD/reduce-nesting branch from 1eabc57 to 666d343 Compare August 3, 2026 08:13
@JonasDov
JonasDov marked this pull request as ready for review August 3, 2026 08:13
Copilot AI review requested due to automatic review settings August 3, 2026 08:13
@JonasDov
JonasDov requested review from a team as code owners August 3, 2026 08:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 into tree-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.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@JonasDov
JonasDov merged commit 90f31e2 into tree-widget/next Aug 3, 2026
22 checks passed
@JonasDov
JonasDov deleted the JonasD/reduce-nesting branch August 3, 2026 10:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants