PromucFlow_constructor/app/client/cypress/e2e/Regression/ClientSide/Widgets
Jacques Ikot 4b66e0c8ee
feat: implement infinite scroll hook (#40050)
#  Optimized Infinite Scrolling for TableWidgetV2  

## 📌 Problem  
The **infinite scrolling** feature in **TableWidgetV2** did not load the
correct number of pages (2) on init, and the table rows length was more
than the data fetched
 
##  Solution  
This PR optimizes **infinite scrolling** by:    
- 📥 **Automatically loading the next page of data** when the initial
rows are **≤ 1 page**
- 📊 **Simplifying row count management** by using the actual **rows
length** instead of relying on `totalRecordsCount` which does not tell
actual rows loaded into the table

---  

### 🚀 How to Test  
1. Enable **Infinite Scroll** in **TableWidgetV2**.  
2. Ensure that additional pages (page 2) loads **automatically** when
the initial rows are ≤ 1 page.
3. Verify that **pagination behavior remains consistent** with expected
results.



Fixes #`Issue Number`  
_or_  
Fixes `Issue URL`
> [!WARNING]  
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._

## Automation

/ok-to-test tags="@tag.Widget, @tag.Table, @tag.Binding, @tag.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/14241762644>
> Commit: 8bf69c9dc7cddee2ef272750797ab2c6cd854028
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14241762644&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Widget, @tag.Table, @tag.Binding, @tag.Sanity`
> Spec:
> <hr>Thu, 03 Apr 2025 12:53:32 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Introduced a new `useInfiniteScroll` hook to enhance infinite
scrolling functionality in the table widget.
  
- **Refactor**
- Simplified pagination logic by directly utilizing the length of the
rows array, improving performance and clarity.
  
- **Bug Fixes**
- Adjusted test data and assertions in the Cypress test suite to better
reflect the expected behavior of the table widget under varying content
conditions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Rahul Barwal <rahul.barwal@appsmith.com>
2025-04-03 06:58:56 -07:00
..
Audio chore: AppIDE Folder Structure (#39165) 2025-02-17 10:34:23 +03:00
Button chore: update select component (#38954) 2025-02-06 13:10:25 +05:30
Camera chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Chart chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Checkbox feat: Add programmatic state change validation for Checkbox widget (#39980) 2025-03-31 16:44:20 +05:30
CodeScanner chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
CurrencyInput chore: update select component (#38954) 2025-02-06 13:10:25 +05:30
Custom test: fix cypress tests for custom widgets (#39905) 2025-03-28 18:06:05 +05:30
Datepicker test: datepicker3 test fix (#39019) 2025-02-14 08:38:01 +05:30
Divider chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
DocumentViewer chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Dropdown chore: Removing the feature flag for using Entity Item component from ADS templates (#39093) 2025-03-14 17:40:02 +05:30
Filepicker chore: update select component (#38954) 2025-02-06 13:10:25 +05:30
Form chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Iframe fix: Fix iframe and widget test case for clicking (#38039) 2024-12-09 19:00:43 +05:30
Image chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Input fix: stop tooltip from overflowing out of view in preview and deployed mode. (#39159) 2025-02-24 12:36:54 +01:00
JSONForm feat: Trigger autocomplete even outside bindings (#39446) 2025-03-07 13:35:16 +05:30
List chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
ListV2 fix: infinite render loop in List Widget when hiding/unhiding with selected item (#39262) 2025-02-17 11:43:24 +01:00
Map chore: added tag to exclude from map widget spec from airgap (#39645) 2025-03-10 14:55:02 +05:30
Modal chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Multiselect chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Others fix: map widget marker onClick duplication (#39517) 2025-03-05 15:25:52 +01:00
PhoneInput chore: update select component (#38954) 2025-02-06 13:10:25 +05:30
Radio test: new test cases framework functions and Action selector (#37566) 2024-12-16 16:41:54 +05:30
Rating chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
RTE chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Select chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Sliders test: new test cases framework functions and Action selector (#37566) 2024-12-16 16:41:54 +05:30
Statbox chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Switch chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Tab test: fix tabs skipped test CE (#37023) 2024-10-25 21:21:57 +05:30
TableV2 feat: implement infinite scroll hook (#40050) 2025-04-03 06:58:56 -07:00
Text chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
TreeSelect chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Video chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Container_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
ContainerTest2_spec.ts chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
deprecatedWidgets_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Disabled_Widgets_drag_validation_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Migration_Spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Tab_reset_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
WidgetCanvas_spec.js test: Cypress - @tag.Video, @tag.Container, @tag.Switch, @tag.Slider, @tag.Tab, @tag.Table, @tag.Select (#29698) 2023-12-18 17:05:27 +05:30
WidgetCopyPaste_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
WidgetGrouping_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
Widgets_Labels_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30
WidgetSelection_spec.js chore: Addding dependent tags (#36965) 2024-10-18 18:19:08 +05:30