diff --git a/__tests__/demo/demo-components/index.js b/__tests__/demo/demo-components/index.js index 9488bc5c..e7bedb1d 100644 --- a/__tests__/demo/demo-components/index.js +++ b/__tests__/demo/demo-components/index.js @@ -503,7 +503,6 @@ export function EventTargetErrorOnRowClick(props) { props.onSelectionChange(rows); }; const onRowClicked = (evt, rowData) => { - evt.persist(); console.log(evt.target); }; @@ -550,6 +549,12 @@ export function EventTargetErrorOnRowClick(props) { data={datas} onSelectionChange={onRowSelectionChanged} onRowClick={onRowClicked} + components={{ + MTableBodyRow: (props, p2) => { + console.log({ props, p2 }); + return ; + } + }} options={{ selection: true }} diff --git a/src/components/m-table-body-row.js b/src/components/m-table-body-row.js index 44f35e9a..3e4530e7 100644 --- a/src/components/m-table-body-row.js +++ b/src/components/m-table-body-row.js @@ -40,6 +40,7 @@ export default function MTableBodyRow(props) { onDoubleRowClick, ...rowProps } = props; + const onClick = (event, callback) => callback(event, data, (panelIndex) => { let panel = detailPanel; @@ -52,11 +53,13 @@ export default function MTableBodyRow(props) { } onToggleDetailPanel(path, panel); }); + const onRowClickListener = useDoubleClick( onRowClick ? (e) => onClick(e, onRowClick) : undefined, onDoubleRowClick ? (e) => onClick(e, onDoubleRowClick) : undefined, persistEvents ); + const getRenderColumns = () => { const size = CommonValues.elementSize(props); const mapArr = props.columns @@ -509,9 +512,9 @@ MTableBodyRow.defaultProps = { index: 0, data: {}, options: {}, - path: [], - // onRowClick, onRowDoubleClick events will be persisted - persistEvents: true + path: [] + /** if this is not set, it's like it ignores this prop when overriding? */ + // persistEvents: true }; MTableBodyRow.propTypes = { diff --git a/src/utils/hooks/useDoubleClick.js b/src/utils/hooks/useDoubleClick.js index 84ab0551..28deea74 100644 --- a/src/utils/hooks/useDoubleClick.js +++ b/src/utils/hooks/useDoubleClick.js @@ -1,6 +1,6 @@ import React from 'react'; -function useDoubleClick(singleCallback, dbCallback, persistEvents = false) { +function useDoubleClick(singleCallback, dbCallback, persistEvents) { const countRef = React.useRef(0); /** Refs for the timer **/ const timerRef = React.useRef(null);