From 48a08aa35afcdf7afd67f22efdf7ab9f0d94ed0b Mon Sep 17 00:00:00 2001 From: Matt Oestreich <21092343+oze4@users.noreply.github.com> Date: Sun, 1 Aug 2021 14:17:42 -0500 Subject: [PATCH] chore: change to force consumers to override --- __tests__/demo/demo-components/index.js | 7 ++++++- src/components/m-table-body-row.js | 9 ++++++--- src/utils/hooks/useDoubleClick.js | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) 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);