Skip to content

Commit 55bf8ec

Browse files
authored
Merge pull request #671 from AnnMarieW/fix-debounce
fix race condition in debounce values
2 parents a0b1e62 + 899099c commit 55bf8ec

14 files changed

Lines changed: 49 additions & 17 deletions

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,13 @@
22

33
# [Unreleased]
44

5+
### Added
56
- Added `anchorProps` prop to `Anchor` by @jksinton
67

8+
### Fixed
9+
- Fixed race condition in debounced value updates #671 by @AnnMarieW
10+
11+
712
# 2.4.0
813

914
### Added

src/ts/components/core/combobox/Autocomplete.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ const Autocomplete = ({
8787
}, [options]);
8888

8989
useDidUpdate(() => {
90-
setAutocomplete(value);
90+
if (value !== debounced) {
91+
setAutocomplete(value);
92+
}
9193
}, [value]);
9294

9395
return (

src/ts/components/core/combobox/MultiSelect.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,10 @@ const MultiSelect = ({
114114
setProps({ value: newSelected });
115115
}, [data]);
116116

117-
useDidUpdate(() => {
118-
setSelected(value ?? []);
117+
useDidUpdate(() => {
118+
if (value !== debounced) {
119+
setSelected(value ?? []);
120+
}
119121
}, [value]);
120122

121123
const handleSearchChange = (newSearchVal) => {

src/ts/components/core/combobox/Select.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ const Select = ({
5858
debounce = false,
5959
n_submit = 0,
6060
n_blur = 0,
61-
data = [],
61+
data,
6262
searchValue,
6363
value,
6464
clearSearchOnFocus = false,
@@ -106,7 +106,9 @@ const Select = ({
106106
}, [data]);
107107

108108
useDidUpdate(() => {
109-
setSelected(value);
109+
if (value !== debounced) {
110+
setSelected(value);
111+
}
110112
}, [value]);
111113

112114
useDidUpdate(() => {

src/ts/components/core/input/JsonInput.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ const JsonInput = ({
4646
}, [debounced]);
4747

4848
useDidUpdate(() => {
49-
setVal(value);
49+
if (value !== debounced) {
50+
setVal(value);
51+
}
5052
}, [value]);
5153

5254
const handleKeyDown = (ev) => {

src/ts/components/core/input/NumberInput.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,9 @@ const NumberInput = ({
9292
}, [debounced]);
9393

9494
useDidUpdate(() => {
95-
setVal(value);
95+
if (value !== debounced) {
96+
setVal(value);
97+
}
9698
}, [value]);
9799

98100
const handleKeyDown = (ev) => {

src/ts/components/core/input/PasswordInput.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ const PasswordInput = ({
5050
}, [debounced]);
5151

5252
useDidUpdate(() => {
53-
setVal(value);
53+
if (value !== debounced) {
54+
setVal(value);
55+
}
5456
}, [value]);
5557

5658
const handleKeyDown = (ev) => {

src/ts/components/core/input/TextInput.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ const TextInput = ({
4949
}, [debounced]);
5050

5151
useDidUpdate(() => {
52-
setVal(value);
52+
if (value !== debounced) {
53+
setVal(value);
54+
}
5355
}, [value]);
5456

5557
const handleKeyDown = (ev) => {

src/ts/components/core/input/Textarea.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ const Textarea = ({
4444
}, [debounced]);
4545

4646
useDidUpdate(() => {
47-
setVal(value);
47+
if (value !== debounced) {
48+
setVal(value);
49+
}
4850
}, [value]);
4951

5052
const handleKeyDown = (ev) => {

src/ts/components/dates/DateInput.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,9 @@ const DateInput = ({
9595
}, [debounced]);
9696

9797
useDidUpdate(() => {
98-
setDate(value);
98+
if (value !== debounced) {
99+
setDate(value);
100+
}
99101
}, [value]);
100102

101103
const handleKeyDown = (ev) => {

0 commit comments

Comments
 (0)