Fix initialisation error
Summary: There was an initialisation error possible if the crash reporter tried to start with an initial selection (after coming from a deeplink or the notification pane), which would cause an unending update loop. Reviewed By: passy Differential Revision: D29331127 fbshipit-source-id: 14e75e483c232039e6a80aa131fa5ce7c105b670
This commit is contained in:
committed by
Facebook GitHub Bot
parent
db787d5d42
commit
2127dea447
@@ -357,12 +357,16 @@ export function DataTable<T extends object>(
|
|||||||
[dataSource, tableState.sorting],
|
[dataSource, tableState.sorting],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const isMounted = useRef(false);
|
||||||
useEffect(
|
useEffect(
|
||||||
function triggerSelection() {
|
function triggerSelection() {
|
||||||
|
if (isMounted.current) {
|
||||||
onSelect?.(
|
onSelect?.(
|
||||||
getSelectedItem(dataSource, tableState.selection),
|
getSelectedItem(dataSource, tableState.selection),
|
||||||
getSelectedItems(dataSource, tableState.selection),
|
getSelectedItems(dataSource, tableState.selection),
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
isMounted.current = true;
|
||||||
},
|
},
|
||||||
[onSelect, dataSource, tableState.selection],
|
[onSelect, dataSource, tableState.selection],
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -555,10 +555,7 @@ test('onSelect callback fires, and in order', () => {
|
|||||||
ref.current!.selectItem(2);
|
ref.current!.selectItem(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(events.splice(0)).toEqual([
|
expect(events.splice(0)).toEqual([[item3, [item3]]]);
|
||||||
[undefined, []],
|
|
||||||
[item3, [item3]],
|
|
||||||
]);
|
|
||||||
|
|
||||||
act(() => {
|
act(() => {
|
||||||
ref.current!.addRangeToSelection(0, 0);
|
ref.current!.addRangeToSelection(0, 0);
|
||||||
@@ -606,10 +603,7 @@ test('selection always has the latest state', () => {
|
|||||||
ref.current!.selectItem(2);
|
ref.current!.selectItem(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(events.splice(0)).toEqual([
|
expect(events.splice(0)).toEqual([[item3, [item3]]]);
|
||||||
[undefined, []],
|
|
||||||
[item3, [item3]],
|
|
||||||
]);
|
|
||||||
|
|
||||||
const item3updated = {
|
const item3updated = {
|
||||||
title: 'item 3 updated',
|
title: 'item 3 updated',
|
||||||
|
|||||||
Reference in New Issue
Block a user