Skip to content

Commit 85a0040

Browse files
committed
fix(useDoubleClick): when onDoubleClick is used it didn't respect the disabled flag on row anymore
#127 (comment)
1 parent 3b0ddab commit 85a0040

File tree

4 files changed

+70
-3
lines changed

4 files changed

+70
-3
lines changed

Diff for: .storybook/stories/Misc/Row/index.story.jsx

+4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ import RowClickCode from './row-click?raw';
1616
import RowDoubleClickComponent from './row-double-click';
1717
import RowDoubleClickCode from './row-double-click?raw';
1818

19+
import RowDisabledComponent from './row-disabled';
20+
import RowDisabledCode from './row-disabled?raw';
21+
1922
import RowOnHoverComponent from './row-on-hover';
2023
import RowOnHoverCode from './row-on-hover?raw';
2124

@@ -27,6 +30,7 @@ createStories(
2730
[
2831
createStory('row click', RowClickComponent, RowClickCode),
2932
createStory('row double click', RowDoubleClickComponent, RowDoubleClickCode),
33+
createStory('row disabled', RowDisabledComponent, RowDisabledCode),
3034
createStory('row on hover', RowOnHoverComponent, RowOnHoverCode),
3135
createStory('variable row height', VariableRowHeightComponent, VariableRowHeightCode),
3236
],

Diff for: .storybook/stories/Misc/Row/row-disabled.jsx

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import * as React from 'react';
2+
3+
import {
4+
Table,
5+
Header,
6+
HeaderRow,
7+
Body,
8+
Row,
9+
HeaderCell,
10+
Cell,
11+
} from '@table-library/react-table-library/table';
12+
import { useTheme } from '@table-library/react-table-library/theme';
13+
14+
import { nodes } from '../../data';
15+
16+
const Component = () => {
17+
const data = { nodes };
18+
19+
return (
20+
<Table data={data}>
21+
{(tableList) => (
22+
<>
23+
<Header>
24+
<HeaderRow>
25+
<HeaderCell>Task</HeaderCell>
26+
<HeaderCell>Deadline</HeaderCell>
27+
<HeaderCell>Type</HeaderCell>
28+
<HeaderCell>Complete</HeaderCell>
29+
<HeaderCell>Tasks</HeaderCell>
30+
</HeaderRow>
31+
</Header>
32+
33+
<Body>
34+
{tableList.map((item) => (
35+
<Row
36+
disabled
37+
key={item.id}
38+
item={item}
39+
onClick={(item, event) => console.log('Single Click Row', item, event)}
40+
onDoubleClick={(item, event) => console.log('Double Click Row', item, event)}
41+
>
42+
<Cell>{item.name}</Cell>
43+
<Cell>
44+
{item.deadline.toLocaleDateString('en-US', {
45+
year: 'numeric',
46+
month: '2-digit',
47+
day: '2-digit',
48+
})}
49+
</Cell>
50+
<Cell>{item.type}</Cell>
51+
<Cell>{item.isComplete.toString()}</Cell>
52+
<Cell>{item.nodes?.length}</Cell>
53+
</Row>
54+
))}
55+
</Body>
56+
</>
57+
)}
58+
</Table>
59+
);
60+
};
61+
62+
export default Component;

Diff for: src/table/Row/Row.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ export const Row = <T extends TableNode>(props: RowProps<T>) => {
9696

9797
const ref = React.useRef<HTMLTableRowElement>(null);
9898

99-
useDoubleClick<T>(ref, onClickByFeature, onDoubleClick, item);
99+
useDoubleClick<T>(ref, onClickByFeature, onDoubleClick, item, disabled);
100100

101101
const handleClick = disabled
102102
? () => {}

Diff for: src/table/Row/useDoubleClick.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,11 @@ export const useDoubleClick = <T extends TableNode>(
4848
onClick: OnClick<T> | Nullish,
4949
onDoubleClick: OnClick<T> | Nullish,
5050
node: T,
51+
disabled: boolean | undefined,
5152
) => {
5253
useDoubleClickBase({
53-
onSingleClick: onClick ? (event) => onClick(node, event) : NOOP,
54-
onDoubleClick: onDoubleClick ? (event) => onDoubleClick(node, event) : null,
54+
onSingleClick: onClick && !disabled ? (event) => onClick(node, event) : NOOP,
55+
onDoubleClick: onDoubleClick && !disabled ? (event) => onDoubleClick(node, event) : null,
5556
ref,
5657
});
5758
};

0 commit comments

Comments
 (0)