Skip to content

feat(Datamapper): Implement virtual scrolling#2954

Draft
lordrip wants to merge 1 commit intoKaotoIO:mainfrom
lordrip:feat/datamapper-virtual-scroll
Draft

feat(Datamapper): Implement virtual scrolling#2954
lordrip wants to merge 1 commit intoKaotoIO:mainfrom
lordrip:feat/datamapper-virtual-scroll

Conversation

@lordrip
Copy link
Member

@lordrip lordrip commented Feb 12, 2026

Context

Currently, when there are multiple nodes and mappings, manipulating the Data mapper feels laggy.

Changes

  • Remove the useCanvas hook and datamapper-canvas-provider provider
  • Introduce virtual scrolling via the React Virtuoso library
  • Simplify the mapping links generation
  • Introduce connection port elements positioned by CSS so we don't need to perform as many calculations in the main loop
  • Introduce a useConnectionPortSync hook to update the connection ports' positions in batch

fix: #2396

@lordrip lordrip force-pushed the feat/datamapper-virtual-scroll branch from c648b2a to 7e98ba3 Compare February 17, 2026 13:59
@lordrip lordrip force-pushed the feat/datamapper-virtual-scroll branch 4 times, most recently from 53bce24 to a0bb678 Compare February 20, 2026 14:23
@lordrip lordrip force-pushed the feat/datamapper-virtual-scroll branch from a0bb678 to 89b5223 Compare February 27, 2026 10:59
@lordrip lordrip force-pushed the feat/datamapper-virtual-scroll branch from 2496df7 to 811630c Compare March 2, 2026 20:52
@KaotoIO KaotoIO deleted a comment from codecov bot Mar 2, 2026
@KaotoIO KaotoIO deleted a comment from coderabbitai bot Mar 2, 2026
@lordrip lordrip force-pushed the feat/datamapper-virtual-scroll branch from 811630c to ae6182d Compare March 2, 2026 22:17
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 2, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Comment @coderabbitai help to get the list of available commands and usage tips.

@lordrip lordrip force-pushed the feat/datamapper-virtual-scroll branch from ae6182d to 7702d04 Compare March 3, 2026 08:02
TEMP: Updated zustand to remove deprecation note
TEMP: Split DataMapperCanvasProvider
TEMP: Remove unnecessary methods from DataMapperCanvasProvider
TEMP: Use direct link for mapping lines
TEMP: Remove useCanvas calls for get & set references
TEMP: Working on rerenderings
TEMP: Faster scroll
Temp: First pass to remove Sonar issues
TEMP: Simplify intersection and mutation observers
TEMP: Remove useConnectionPortVisibility hook and add top/bottom connection ports
TEMP: Add isPartial link style
TEMP: Remove unused document-tree.store methods
TEMP: Point to the TOP edge when the the target node is not visible
TEMP: Drawing lines from edge to nodes
TEMP: Enable partial mapping links
TEMP: Calculating lines direction, not working because we need to split the documents
TEMP: Set  when attaching schemas, scroll not working properly
TEMP: connection ports updating on scroll
TEMP: fix EDGE direction
TEMP: Add edges per document
@lordrip lordrip force-pushed the feat/datamapper-virtual-scroll branch from 7702d04 to f33b197 Compare March 3, 2026 10:18
@sonarqubecloud
Copy link

sonarqubecloud bot commented Mar 3, 2026

@codecov
Copy link

codecov bot commented Mar 3, 2026

Codecov Report

❌ Patch coverage is 92.74809% with 19 lines in your changes missing coverage. Please review.
✅ Project coverage is 89.64%. Comparing base (2cddd36) to head (f33b197).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
...ages/ui/src/providers/dnd/DataMapperDndMonitor.tsx 0.00% 7 Missing ⚠️
...es/ui/src/components/View/MappingLinkContainer.tsx 90.62% 3 Missing ⚠️
...s/ui/src/providers/data-mapping-links.provider.tsx 57.14% 3 Missing ⚠️
packages/ui/src/utils/get-nearest-visible-port.ts 88.00% 3 Missing ⚠️
packages/ui/src/services/mapping-links.service.ts 87.50% 2 Missing ⚠️
packages/ui/src/store/document-tree.store.ts 94.11% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2954      +/-   ##
==========================================
- Coverage   89.70%   89.64%   -0.06%     
==========================================
  Files         561      561              
  Lines       20895    20801      -94     
  Branches     4884     4684     -200     
==========================================
- Hits        18743    18647      -96     
- Misses       2025     2152     +127     
+ Partials      127        2     -125     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

[EPIC] DataMapper : degraded performance with bigger XSLT

1 participant