-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Description
Is there an existing issue for this?
- I have searched the existing issues
Summary
Problem Description
The TableV2 widget is Appsmith’s primary tool for data display. While functional, it is starting to feel outdated and lacks several key capabilities that would significantly improve the user experience and performance of applications when dealing with large, complex datasets. Currently, implementing crucial features, like column visibility control, requires cumbersome workarounds which lead to slower performance and increased development complexity.
Suggested Enhancements
I propose three main improvements for the TableV2 widget to make it more modern and powerful:
1. Full-Screen/Maximize View Option
There should be a built-in button or option to expand the TableV2 widget to full-screen (similar to implementations found in tools like Streamlit or other BI platforms).
This is essential for analyzing large datasets or tables with many columns, allowing the user to focus on the data without surrounding UI distractions.
2. Built-in Column Visibility Control via Interface (Column Visibility Toggling)
Currently, managing column visibility requires using an external widget (like Multiselect or Buttin) and manually binding it to the visible property of each column. This approach has several drawbacks: 1) It slows down the application, especially with many columns. 2) It complicates the process for end-users and requires extra logic to set up. I propose adding an integrated column visibility control (e.g., a gear icon or a dropdown within the table header like Streamlit has) that allows users to dynamically hide/show columns. Ideally, these settings should be persisted for each user (via local storage), as different users often need different columns from the same table.
3. Support for Expandable Rows and Row Grouping
The widget currently lacks the native ability to organize data hierarchically.
Add the ability to group rows based on the value of a specific column (e.g., "Status," "Department") and display these groups as expandable sections. This allows users to see only the subsets of data they need at any given moment.
Why should this be worked on?
1. Improved User Experience and Data Analysis
- Full-Screen Mode: Users dealing with extensive datasets or tables spanning many columns often require an immersive view to perform detailed analysis. Without a native full-screen mode, users are forced to manage data in a confined space, leading to frustrating horizontal scrolling and reduced focus.
- Row Grouping: The current table lacks the ability to structure complex data. Grouping rows by common attributes (e.g., status, project, customer) is a fundamental feature for organizing large tables, allowing end-users to quickly drill down into relevant sections and summarize information efficiently.
2. Streamlined Development and Better Performance
- Native Column Visibility Control: Relying on external Multiselect widgets and custom bindings for column visibility is an inefficient and slow workaround.
- It increases development time (more components and code to manage).
- It degrades performance because the logic runs on the client side with unnecessary component dependencies.
- A native solution would be optimized for speed and allow the feature to be easily persisted per user, which is essential for multi-user applications where different roles require different views of the same data.
3. Modernizing the Core Widget
- TableV2 is fundamental. As the primary data output tool, it should meet the standards of modern low-code/BI platforms. Adding these features is crucial for keeping Appsmith competitive and viable for building enterprise-grade tools that require sophisticated data interaction capabilities.