Infinite Columns Horizontal Scroll Data Table
Last updated
Last updated
This block allows a user to view a list of things in a mobile-friendly data table format and apply additional filters to the list. This block is useful when you need to display a high number of columns on desktop and mobile. The table is horizontally scrollable at all times (similar to an Excel spreadsheet).
A user can click on the ︙icon to edit or delete an item via a menu focus group. For more information on how to use the menufocus_template reusable element, please click here.
Desktop to Mobile Example
There are placeholder conditionals on the text elements and circular shapes that indicate the "Status" of each Invoice in this example. These style changes can be repurposed if needed, or removed completely.
Empty State
When this block is added to a page, it is placed within a Blocks container 860 (do not rename) on the page. This group contains the responsive settings for all blocks.
This block contains these main groups:
Group Infinite Horizontal Scroll Data Table - This group contains the title, data table, empty state, and placeholder elements.
Group Main header section - contains the title, description, tabs, new button, and reusable element filters_template.
Group Main table - contains the table elements and the placeholder group
Group Main table row container - contains the horizontal table reusable element. Please note that the table must be a reusable element in order for the table to have infinite width.
hstable_template reusable element - contains the list of things that will be displayed in the data table. This repeating group's data source should be changed from "Dummy" to the type of content that you will display.
RepeatingGroup Website (DO NOT CHANGE - for horizontal scroll functionality only) - used to make the data table horizontally scrollable. Do not delete or modify this element. The repeating group must always contain a single entry for this workaround.
Group Main table headings section - this repeating group contains the data table's column headings.
Repeating Group Dummys (infinite horizontal scroll) - contains the list of things that will be displayed in the data table. This repeating group's data source should be changed from "Dummy" to the type of content that you will display.
Group Main empty state - This group can become visible when the data table repeating group contains 0 entries.
Before creating a data table from this reusable element, it is best to make a copy of this reusable so that this hstable_template can always be used as a blank template if you need to create multiple, infinite scroll data tables. It is best not to modify the original copy of the hstable_template reusable element in order to preserve a clean copy.
Since this data table is within a reusable element, it can only be filtered through custom states that are on the reusable element copy itself. For example if you are looking to display a list of users using this design, the first cloned copy of this reusable can be called horizontaltable_users:
This repeating group's data source can then be modified and placed on any page in your app.
If you wish to create another horizontally scrollable data table with the hstable_template reusable element, you can make another copy of it (e.g., hstable_invoices), in order to display another data type (e.g., Invoices).
New copies of this reusable element must be created each time you wish to display different types of data, different columns, and/or different fields in this data table.
Since this data table is within a reusable element, it can only be filtered through custom states that are on the reusable element copy itself. First, make a copy of this reusable element:
2. In order to add custom states to this copy, make sure that you are viewing the copied reusable element (e.g., horizontaltable_users in this example) and not the hstable_template reusable element.
3. Double-click on the copy of the reusable element in order to open its property editor, and click on the "i" icon in order to add a custom state (e.g., keyword filter, type: text, list: no).
4. Once this custom state is in place, we can change the data source add a constraint to the Repeating Group Dummys (infinite horizontal scroll) element to display a different custom type and add constraints which utilize these custom state values.
5. Back on the page where we first added the hstable_template block, we can delete the instance of the template that was added by the extension, and replace it with the copied version (e.g., a horizontaltable_users). Here is a short video which shows how to do this:
As shown in the video, after you replace the template reusable instance with the copy reusable instance, make sure the copy reusable instance has an X-position of 0, and a width of 780 pixels.
6. Similar to how we made a copy of the hstabe_template reusable element, we can make a copy of the filters_template reusable element that is unique to this data table:
7. Next, add any form elements and custom states to this filters_users reusable element, by opening the property editor and adding each custom state:
8. Because the user will be entering keywords to filter results within this group focus element's Input keyword
element, we need to set the value of the filters_users "keyword filter" custom state (and any other custom state value) through a workflow. These values can be set when the filters_users "Apply Filters" button is clicked:
9. Now that the workflow is set up to store the value of this custom state each time a User clicks "apply filter", we can access this custom state's value on any page that contains a copy of this filters_users. and use it to filter the repeating group within the horizontaltable_users reusable element. To do this, navigate back to the page and replace the filters_template reusable with the copy that you just modified (e.g., filters_users ).
10. In order to set this up, add a "Do When Condition is True" (Every Time) workflow, which sets the "keyword filter" custom state value of the horizontaltable_users reusable element on the page, to be equal to the value of this "keyword filter" custom state value of the filters_users. reusable element on the page. Here is an example that shows how to set this workflow up:
This video demonstrates how to add more columns to the table: https://app.usebubbles.com/K3m3FQN7ugH9U8zERRFoH/comments-on-bubble-io/
Because the reusable element is within a horizontal scroll repeating group, the reusable can be set to any width, and the outside, horizontal scroll repeating group will accommodate its width automatically.
Before creating a data table from this reusable element, it is best to make a copy of this reusable so that this hstable_template can be used as a template if you need to create multiple, infinite scroll data tables.
For more information on how to customize the menufocus_template reusable element included on this page, please click here
The Group Main empty state element can become visible when the data table repeating group contains 0 entries. It is currently not possible to access the Repeating Group Dummy's number of entries on the page (since it is within a reusable element). However, you can add a conditional on this group which uses the repeating group's data source expression, so that this empty state becomes visible when the count of that same search is 0 (similar to the example below)