Add listener to BasicTable

This commit is contained in:
Alex Holliday committed 2024-07-16 11:06:28 -07:00
1 parent dd15d7a27b
commit 784957bb25
2 files changed
+35 -5

No files matched your search

+22 -2
View File
@@ -20,6 +20,7 @@ import PropTypes from "prop-types";
* @param {Array} props.headers - Array of header titles for the table.
* @param {Array} props.rowItems - Array of row data objects for the table.
* @param {boolean} props.paginated - Flag to enable pagination.
* @param {function} props.handleClick - Function to handle click on row.
*
* @example
*
@@ -47,6 +48,10 @@ import PropTypes from "prop-types";
* { id: 3, data: <div>5</div> },
* // More rows...
* ];
*
* ROW CLICK HANDLING
* If you want to set a listener for a row click, you can add a handleClick function to FIRST ITEM IN EACH ROW
*
* <BasicTable headers={headers} rows={rows} paginated={true} />
*/
@@ -94,7 +99,14 @@ const BasicTable = ({ headers, rowItems, paginated }) => {
{paginated === false &&
Object.keys(groupedRowItems).map((key) => {
return (
<TableRow key={groupedRowItems[key].idx}>
<TableRow
onClick={() => {
groupedRowItems[key].items[0].item.handleClick
? groupedRowItems[key].items[0].item.handleClick()
: null;
}}
key={groupedRowItems[key].idx}
>
{groupedRowItems[key].items.map(({ item }) => {
return <TableCell key={item.id}>{item.data}</TableCell>;
})}
@@ -103,7 +115,14 @@ const BasicTable = ({ headers, rowItems, paginated }) => {
})}
{paginated === true &&
paginatedRowsKeys.map((key) => (
<TableRow key={groupedRowItems[key].idx}>
<TableRow
onClick={() => {
groupedRowItems[key].items[0].item.handleClick
? groupedRowItems[key].items[0].item.handleClick()
: null;
}}
key={groupedRowItems[key].idx}
>
{groupedRowItems[key].items.map(({ item }) => (
<TableCell key={item.id}>{item.data}</TableCell>
))}
@@ -141,6 +160,7 @@ BasicTable.propTypes = {
})
).isRequired,
paginated: PropTypes.bool,
handleClick: PropTypes.func,
};
export default BasicTable;