PromucFlow_constructor/app/client/src
Rahul Barwal 82294f9f85
chore: refactor table widget UI code to use central context to reduce props drilling (#39367)
## Description
Refactor TableWidget for Improved Organization, Context Management &
Rendering Efficiency

### Overview

This PR restructures the TableWidget to enhance code organization,
improve context management, and optimize rendering performance. Key
improvements include extracting reusable components, introducing a
shared TableContext, and simplifying table rendering logic.

### Key Changes
 Improved Table Header Organization & Context Management
 Refactored Table & Virtualization Logic
 Simplified Header Components
 Enhanced Empty Row Handling
 Reorganized Core Components(Static table, virtual table)

### Why These Changes?
• Improves maintainability and readability by reducing prop drilling and
redundant code.
• Enhances performance through better state management and rendering
optimizations.
• Provides a scalable structure for future improvements in the
TableWidget.


Fixes #39308
_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.Table, @tag.Sanity, @tag.Datasource"

### 🔍 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/13761069297>
> Commit: 524a8464a65576c9da485f686e6598eba38358a5
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13761069297&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Table, @tag.Sanity, @tag.Datasource`
> Spec:
> <hr>Mon, 10 Mar 2025 12:31:27 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 new virtualized table components that enhance dynamic
scrolling and table interactions.
  - Added a new table constant to ensure smoother scrolling behavior.
- Implemented a centralized table state provider to consolidate table
functionality.
- Added a new `BannerNActions` component for improved header action
management.
- Added a new `StaticTableBodyComponent` for rendering static table
bodies.

- **Refactor**
- Streamlined static table rendering along with header and cell
interactions.
- Simplified component interfaces by shifting from prop-based to
context-driven state management.
- Enhanced the `Actions` component to utilize context for state
management.
  - Refactored the `Table` component to improve clarity and efficiency.

- **Tests**
- Expanded and improved test coverage to ensure robust rendering, error
handling, and performance.
- Introduced tests for new components such as `StaticTableBodyComponent`
and `BannerNActions`.
- Updated tests to reflect changes in context management and component
structure.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-13 11:23:05 +05:30
..
actions chore: Split canvas widget reducers (#39327) 2025-02-18 16:12:05 +05:30
api feat: add action resp viz (#39690) 2025-03-12 13:59:36 +01:00
assets feat: add action resp viz (#39690) 2025-03-12 13:59:36 +01:00
ce chore: Refactoring focus strategy to get the correct key name on history removal for all IDEs (#39689) 2025-03-12 23:54:56 +05:30
components feat: add jsfunction resp viz (#39697) 2025-03-12 16:43:22 +01:00
constants fix: Reduce cycle deps by removing wrong exports (#39268) 2025-02-14 18:26:31 +05:30
Datasource/components
ee chore: Refactoring focus strategy to get the correct key name on history removal for all IDEs (#39689) 2025-03-12 23:54:56 +05:30
enterprise
entities feat: add action resp viz (#39690) 2025-03-12 13:59:36 +01:00
git chore: fixing dropdown issue with default branch (#39552) 2025-03-05 10:45:56 +01:00
git-artifact-helpers/application chore: git pkg - package integration with git (#39342) 2025-02-19 13:42:58 +01:00
globalStyles
icons
IDE chore: Fixing renaming of Queries, JS and Widgets to replace spaces and special characters with underscore (#39596) 2025-03-06 18:24:04 +05:30
instrumentation chore: disable faro session tracking (#38523) 2025-01-08 14:15:30 +05:30
layoutSystems feat: add action resp viz (#39690) 2025-03-12 13:59:36 +01:00
mockResponses
mocks
navigation chore: Move entities/IDE/constants (#39064) 2025-02-07 16:45:55 +05:30
pages chore: skip long tests (#39702) 2025-03-13 00:18:46 +03:00
PluginActionEditor feat: add jsfunction resp viz (#39697) 2025-03-12 16:43:22 +01:00
plugins/Linting fix: Reduce cycle deps by removing wrong exports (#39268) 2025-02-14 18:26:31 +05:30
polyfills
reducers chore: Remove dependancy (#39389) 2025-03-12 03:49:02 +00:00
reflow
sagas chore: Refactoring focus strategy to get the correct key name on history removal for all IDEs (#39689) 2025-03-12 23:54:56 +05:30
selectors fix:codeowners file (#39447) 2025-02-26 15:21:36 +03:00
templates
theme
usagePulse fix: Use Spring's native CSRF protection, and fix login page (#37292) 2025-03-08 21:01:02 +05:30
utils feat: add action resp viz (#39690) 2025-03-12 13:59:36 +01:00
WidgetProvider fix:codeowners file (#39447) 2025-02-26 15:21:36 +03:00
WidgetQueryGenerators fix: Separate Plugin Entity from Action (#38582) 2025-01-15 11:29:32 +05:30
widgets chore: refactor table widget UI code to use central context to reduce props drilling (#39367) 2025-03-13 11:23:05 +05:30
workers chore: Split canvas widget reducers (#39327) 2025-02-18 16:12:05 +05:30
App.css
AppErrorBoundry.tsx
config.d.ts
Globals.d.ts
index.css fix: Revert "Revert "feat: Added focus ring for focus visible (#37700)" (#… (#38655) 2025-02-03 11:12:29 +05:30
index.tsx chore: bypass immer for first evaluation, fixed cloneDeep issue and using mutative instead of immer (#38993) 2025-02-06 11:20:08 +05:30
LandingScreen.tsx
preload-route-chunks.ts
react-app-env.d.ts chore: Eject CRA (#39264) 2025-02-14 14:24:41 +05:30
RouteChangeListener.tsx
serviceWorker.ts chore: add etag caching in consolidated api for application view mode (#38873) 2025-01-30 13:54:34 +05:30
store.ts chore: Move existing middlewares to a middlewares folder and added pass through middleware for packages (#39410) 2025-03-05 20:55:35 +05:30
wdyr.ts