@oanda/labs-instruments-table-widget 1.0.34 → 1.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,298 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 1.0.36 (2025-08-18)
7
+
8
+
9
+
10
+ ## 1.0.215 (2025-08-18)
11
+
12
+
13
+
14
+ ## 1.0.214 (2025-08-14)
15
+
16
+
17
+
18
+ ## 1.0.213 (2025-08-12)
19
+
20
+
21
+
22
+ ## 1.0.212 (2025-08-05)
23
+
24
+
25
+
26
+ ## 1.0.211 (2025-08-05)
27
+
28
+
29
+
30
+ ## 1.0.210 (2025-07-31)
31
+
32
+
33
+
34
+ ## 1.0.209 (2025-07-31)
35
+
36
+
37
+
38
+ ## 1.0.208 (2025-07-24)
39
+
40
+
41
+
42
+ ## 1.0.207 (2025-07-18)
43
+
44
+
45
+
46
+ ## 1.0.206 (2025-07-18)
47
+
48
+
49
+
50
+ ## 1.0.205 (2025-07-17)
51
+
52
+
53
+
54
+ ## 1.0.204 (2025-07-09)
55
+
56
+
57
+
58
+ ## 1.0.203 (2025-06-16)
59
+
60
+
61
+
62
+ ## 1.0.202 (2025-06-04)
63
+
64
+
65
+
66
+ ## 1.0.201 (2025-06-02)
67
+
68
+
69
+
70
+ ## 1.0.200 (2025-05-30)
71
+
72
+
73
+
74
+ ## 1.0.199 (2025-05-29)
75
+
76
+
77
+
78
+ ## 1.0.198 (2025-05-26)
79
+
80
+
81
+
82
+ ## 1.0.197 (2025-05-23)
83
+
84
+
85
+
86
+ ## 1.0.196 (2025-05-22)
87
+
88
+
89
+
90
+ ## 1.0.195 (2025-05-21)
91
+
92
+
93
+
94
+ ## 1.0.194 (2025-05-21)
95
+
96
+
97
+
98
+ ## 1.0.193 (2025-05-15)
99
+
100
+
101
+
102
+ ## 1.0.192 (2025-05-14)
103
+
104
+
105
+
106
+ ## 1.0.191 (2025-04-30)
107
+
108
+
109
+
110
+ ## 1.0.190 (2025-04-28)
111
+
112
+
113
+
114
+ ## 1.0.189 (2025-04-23)
115
+
116
+
117
+
118
+ ## 1.0.188 (2025-04-22)
119
+
120
+
121
+
122
+ ## 1.0.187 (2025-04-18)
123
+
124
+
125
+
126
+ ## 1.0.186 (2025-04-10)
127
+
128
+
129
+
130
+ ## 1.0.185 (2025-04-09)
131
+
132
+
133
+
134
+ ## 1.0.184 (2025-04-08)
135
+
136
+
137
+
138
+ ## 1.0.183 (2025-04-04)
139
+
140
+
141
+
142
+ ## 1.0.182 (2025-03-21)
143
+
144
+
145
+
146
+ ## 1.0.181 (2025-03-13)
147
+
148
+ **Note:** Version bump only for package @oanda/labs-instruments-table-widget
149
+
150
+
151
+
152
+
153
+
154
+ ## 1.0.35 (2025-08-18)
155
+
156
+
157
+
158
+ ## 1.0.214 (2025-08-14)
159
+
160
+
161
+
162
+ ## 1.0.213 (2025-08-12)
163
+
164
+
165
+
166
+ ## 1.0.212 (2025-08-05)
167
+
168
+
169
+
170
+ ## 1.0.211 (2025-08-05)
171
+
172
+
173
+
174
+ ## 1.0.210 (2025-07-31)
175
+
176
+
177
+
178
+ ## 1.0.209 (2025-07-31)
179
+
180
+
181
+
182
+ ## 1.0.208 (2025-07-24)
183
+
184
+
185
+
186
+ ## 1.0.207 (2025-07-18)
187
+
188
+
189
+
190
+ ## 1.0.206 (2025-07-18)
191
+
192
+
193
+
194
+ ## 1.0.205 (2025-07-17)
195
+
196
+
197
+
198
+ ## 1.0.204 (2025-07-09)
199
+
200
+
201
+
202
+ ## 1.0.203 (2025-06-16)
203
+
204
+
205
+
206
+ ## 1.0.202 (2025-06-04)
207
+
208
+
209
+
210
+ ## 1.0.201 (2025-06-02)
211
+
212
+
213
+
214
+ ## 1.0.200 (2025-05-30)
215
+
216
+
217
+
218
+ ## 1.0.199 (2025-05-29)
219
+
220
+
221
+
222
+ ## 1.0.198 (2025-05-26)
223
+
224
+
225
+
226
+ ## 1.0.197 (2025-05-23)
227
+
228
+
229
+
230
+ ## 1.0.196 (2025-05-22)
231
+
232
+
233
+
234
+ ## 1.0.195 (2025-05-21)
235
+
236
+
237
+
238
+ ## 1.0.194 (2025-05-21)
239
+
240
+
241
+
242
+ ## 1.0.193 (2025-05-15)
243
+
244
+
245
+
246
+ ## 1.0.192 (2025-05-14)
247
+
248
+
249
+
250
+ ## 1.0.191 (2025-04-30)
251
+
252
+
253
+
254
+ ## 1.0.190 (2025-04-28)
255
+
256
+
257
+
258
+ ## 1.0.189 (2025-04-23)
259
+
260
+
261
+
262
+ ## 1.0.188 (2025-04-22)
263
+
264
+
265
+
266
+ ## 1.0.187 (2025-04-18)
267
+
268
+
269
+
270
+ ## 1.0.186 (2025-04-10)
271
+
272
+
273
+
274
+ ## 1.0.185 (2025-04-09)
275
+
276
+
277
+
278
+ ## 1.0.184 (2025-04-08)
279
+
280
+
281
+
282
+ ## 1.0.183 (2025-04-04)
283
+
284
+
285
+
286
+ ## 1.0.182 (2025-03-21)
287
+
288
+
289
+
290
+ ## 1.0.181 (2025-03-13)
291
+
292
+ **Note:** Version bump only for package @oanda/labs-instruments-table-widget
293
+
294
+
295
+
296
+
297
+
6
298
  ## 1.0.34 (2025-08-14)
7
299
 
8
300
 
@@ -27,18 +27,12 @@ const Filters = _ref => {
27
27
  const isDesktop = size === _labsWidgetCommon.Size.DESKTOP;
28
28
  const [assetClass, setAssetClass] = (0, _react.useState)([assetClassOptions[0].id]);
29
29
  const [searchInputValue, setSearchInputValue] = (0, _react.useState)('');
30
- const debounced = (0, _usehooksTs.useDebounceCallback)(val => {
31
- onSearchChange(val);
32
- }, 300);
33
- const handleTextInputSearch = value => {
34
- setSearchInputValue(value);
35
- if (value.length >= 3) {
36
- debounced(value);
30
+ const [debouncedValue, setValue] = (0, _usehooksTs.useDebounceValue)('', 500);
31
+ (0, _react.useEffect)(() => {
32
+ if (debouncedValue.length >= 3 || debouncedValue.length === 0) {
33
+ onSearchChange(debouncedValue);
37
34
  }
38
- if (value.length === 0) {
39
- onSearchChange(value);
40
- }
41
- };
35
+ }, [debouncedValue]);
42
36
  return _react.default.createElement("div", {
43
37
  className: (0, _labsWidgetCommon.cn)('lw-mb-4 lw-mt-2 lw-flex lw-w-full lw-gap-4', {
44
38
  'lw-flex-col': !isDesktop,
@@ -68,7 +62,10 @@ const Filters = _ref => {
68
62
  label: lang('search'),
69
63
  placeholder: lang('instrument_name'),
70
64
  value: searchInputValue,
71
- onChange: handleTextInputSearch
65
+ onChange: val => {
66
+ setSearchInputValue(val);
67
+ setValue(val);
68
+ }
72
69
  })));
73
70
  };
74
71
  exports.Filters = Filters;
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.js","names":["_labsWidgetCommon","require","_monoI18n","_react","_interopRequireWildcard","_usehooksTs","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Filters","_ref","assetClassOptions","onSearchChange","onAssetClassChange","isAssetClassFilterEnabled","isInstrumentSearchEnabled","lang","useLocale","size","useLayoutProvider","isDesktop","Size","DESKTOP","assetClass","setAssetClass","useState","id","searchInputValue","setSearchInputValue","debounced","useDebounceCallback","val","handleTextInputSearch","value","length","createElement","className","cn","Select","options","selectLabel","selectedOption","find","opt","setSelectedOption","option","TextInput","label","placeholder","onChange","exports"],"sources":["../../../../../src/InstrumentsTableWidget/components/Filters/Filters.tsx"],"sourcesContent":["import {\n cn,\n Select,\n Size,\n TextInput,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useState } from 'react';\nimport { useDebounceCallback } from 'usehooks-ts';\n\nimport type { AssetClassLabels, FiltersProps } from './types';\n\nexport const Filters = ({\n assetClassOptions,\n onSearchChange,\n onAssetClassChange,\n isAssetClassFilterEnabled,\n isInstrumentSearchEnabled,\n}: FiltersProps) => {\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n\n const [assetClass, setAssetClass] = useState([assetClassOptions[0].id]);\n const [searchInputValue, setSearchInputValue] = useState('');\n\n const debounced = useDebounceCallback((val: string) => {\n onSearchChange(val);\n }, 300);\n\n const handleTextInputSearch = (value: string) => {\n setSearchInputValue(value);\n if (value.length >= 3) {\n debounced(value);\n }\n if (value.length === 0) {\n onSearchChange(value);\n }\n };\n\n return (\n <div\n className={cn('lw-mb-4 lw-mt-2 lw-flex lw-w-full lw-gap-4', {\n 'lw-flex-col': !isDesktop,\n 'lw-flex-row': isDesktop,\n })}\n >\n {isAssetClassFilterEnabled && (\n <div\n className={cn({\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <Select\n options={assetClassOptions}\n selectLabel={lang('asset_class')}\n selectedOption={\n assetClassOptions.find((opt) => opt.id === assetClass[0]) ||\n assetClassOptions[0]\n }\n setSelectedOption={(option) => {\n setAssetClass([option.id]);\n onAssetClassChange([option.id as AssetClassLabels]);\n setSearchInputValue('');\n onSearchChange('');\n }}\n />\n </div>\n )}\n {isInstrumentSearchEnabled && (\n <div\n className={cn({\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <TextInput\n label={lang('search')}\n placeholder={lang('instrument_name')}\n value={searchInputValue}\n onChange={handleTextInputSearch}\n />\n </div>\n )}\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Filters.js","names":["_labsWidgetCommon","require","_monoI18n","_react","_interopRequireWildcard","_usehooksTs","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Filters","_ref","assetClassOptions","onSearchChange","onAssetClassChange","isAssetClassFilterEnabled","isInstrumentSearchEnabled","lang","useLocale","size","useLayoutProvider","isDesktop","Size","DESKTOP","assetClass","setAssetClass","useState","id","searchInputValue","setSearchInputValue","debouncedValue","setValue","useDebounceValue","useEffect","length","createElement","className","cn","Select","options","selectLabel","selectedOption","find","opt","setSelectedOption","option","TextInput","label","placeholder","value","onChange","val","exports"],"sources":["../../../../../src/InstrumentsTableWidget/components/Filters/Filters.tsx"],"sourcesContent":["import {\n cn,\n Select,\n Size,\n TextInput,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useEffect, useState } from 'react';\nimport { useDebounceValue } from 'usehooks-ts';\n\nimport type { AssetClassLabels, FiltersProps } from './types';\n\nexport const Filters = ({\n assetClassOptions,\n onSearchChange,\n onAssetClassChange,\n isAssetClassFilterEnabled,\n isInstrumentSearchEnabled,\n}: FiltersProps) => {\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n\n const [assetClass, setAssetClass] = useState([assetClassOptions[0].id]);\n const [searchInputValue, setSearchInputValue] = useState('');\n const [debouncedValue, setValue] = useDebounceValue('', 500);\n\n useEffect(() => {\n if (debouncedValue.length >= 3 || debouncedValue.length === 0) {\n onSearchChange(debouncedValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debouncedValue]);\n\n return (\n <div\n className={cn('lw-mb-4 lw-mt-2 lw-flex lw-w-full lw-gap-4', {\n 'lw-flex-col': !isDesktop,\n 'lw-flex-row': isDesktop,\n })}\n >\n {isAssetClassFilterEnabled && (\n <div\n className={cn({\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <Select\n options={assetClassOptions}\n selectLabel={lang('asset_class')}\n selectedOption={\n assetClassOptions.find((opt) => opt.id === assetClass[0]) ||\n assetClassOptions[0]\n }\n setSelectedOption={(option) => {\n setAssetClass([option.id]);\n onAssetClassChange([option.id as AssetClassLabels]);\n setSearchInputValue('');\n onSearchChange('');\n }}\n />\n </div>\n )}\n {isInstrumentSearchEnabled && (\n <div\n className={cn({\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <TextInput\n label={lang('search')}\n placeholder={lang('instrument_name')}\n value={searchInputValue}\n onChange={(val) => {\n setSearchInputValue(val);\n setValue(val);\n }}\n />\n </div>\n )}\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import { cn, Select, Size, TextInput, useLayoutProvider } from '@oanda/labs-widget-common';
2
2
  import { useLocale } from '@oanda/mono-i18n';
3
- import React, { useState } from 'react';
4
- import { useDebounceCallback } from 'usehooks-ts';
3
+ import React, { useEffect, useState } from 'react';
4
+ import { useDebounceValue } from 'usehooks-ts';
5
5
  export const Filters = _ref => {
6
6
  let {
7
7
  assetClassOptions,
@@ -19,18 +19,12 @@ export const Filters = _ref => {
19
19
  const isDesktop = size === Size.DESKTOP;
20
20
  const [assetClass, setAssetClass] = useState([assetClassOptions[0].id]);
21
21
  const [searchInputValue, setSearchInputValue] = useState('');
22
- const debounced = useDebounceCallback(val => {
23
- onSearchChange(val);
24
- }, 300);
25
- const handleTextInputSearch = value => {
26
- setSearchInputValue(value);
27
- if (value.length >= 3) {
28
- debounced(value);
22
+ const [debouncedValue, setValue] = useDebounceValue('', 500);
23
+ useEffect(() => {
24
+ if (debouncedValue.length >= 3 || debouncedValue.length === 0) {
25
+ onSearchChange(debouncedValue);
29
26
  }
30
- if (value.length === 0) {
31
- onSearchChange(value);
32
- }
33
- };
27
+ }, [debouncedValue]);
34
28
  return React.createElement("div", {
35
29
  className: cn('lw-mb-4 lw-mt-2 lw-flex lw-w-full lw-gap-4', {
36
30
  'lw-flex-col': !isDesktop,
@@ -60,7 +54,10 @@ export const Filters = _ref => {
60
54
  label: lang('search'),
61
55
  placeholder: lang('instrument_name'),
62
56
  value: searchInputValue,
63
- onChange: handleTextInputSearch
57
+ onChange: val => {
58
+ setSearchInputValue(val);
59
+ setValue(val);
60
+ }
64
61
  })));
65
62
  };
66
63
  //# sourceMappingURL=Filters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.js","names":["cn","Select","Size","TextInput","useLayoutProvider","useLocale","React","useState","useDebounceCallback","Filters","_ref","assetClassOptions","onSearchChange","onAssetClassChange","isAssetClassFilterEnabled","isInstrumentSearchEnabled","lang","size","isDesktop","DESKTOP","assetClass","setAssetClass","id","searchInputValue","setSearchInputValue","debounced","val","handleTextInputSearch","value","length","createElement","className","options","selectLabel","selectedOption","find","opt","setSelectedOption","option","label","placeholder","onChange"],"sources":["../../../../../src/InstrumentsTableWidget/components/Filters/Filters.tsx"],"sourcesContent":["import {\n cn,\n Select,\n Size,\n TextInput,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useState } from 'react';\nimport { useDebounceCallback } from 'usehooks-ts';\n\nimport type { AssetClassLabels, FiltersProps } from './types';\n\nexport const Filters = ({\n assetClassOptions,\n onSearchChange,\n onAssetClassChange,\n isAssetClassFilterEnabled,\n isInstrumentSearchEnabled,\n}: FiltersProps) => {\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n\n const [assetClass, setAssetClass] = useState([assetClassOptions[0].id]);\n const [searchInputValue, setSearchInputValue] = useState('');\n\n const debounced = useDebounceCallback((val: string) => {\n onSearchChange(val);\n }, 300);\n\n const handleTextInputSearch = (value: string) => {\n setSearchInputValue(value);\n if (value.length >= 3) {\n debounced(value);\n }\n if (value.length === 0) {\n onSearchChange(value);\n }\n };\n\n return (\n <div\n className={cn('lw-mb-4 lw-mt-2 lw-flex lw-w-full lw-gap-4', {\n 'lw-flex-col': !isDesktop,\n 'lw-flex-row': isDesktop,\n })}\n >\n {isAssetClassFilterEnabled && (\n <div\n className={cn({\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <Select\n options={assetClassOptions}\n selectLabel={lang('asset_class')}\n selectedOption={\n assetClassOptions.find((opt) => opt.id === assetClass[0]) ||\n assetClassOptions[0]\n }\n setSelectedOption={(option) => {\n setAssetClass([option.id]);\n onAssetClassChange([option.id as AssetClassLabels]);\n setSearchInputValue('');\n onSearchChange('');\n }}\n />\n </div>\n )}\n {isInstrumentSearchEnabled && (\n <div\n className={cn({\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <TextInput\n label={lang('search')}\n placeholder={lang('instrument_name')}\n value={searchInputValue}\n onChange={handleTextInputSearch}\n />\n </div>\n )}\n </div>\n );\n};\n"],"mappings":"AAAA,SACEA,EAAE,EACFC,MAAM,EACNC,IAAI,EACJC,SAAS,EACTC,iBAAiB,QACZ,2BAA2B;AAClC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,mBAAmB,QAAQ,aAAa;AAIjD,OAAO,MAAMC,OAAO,GAAGC,IAAA,IAMH;EAAA,IANI;IACtBC,iBAAiB;IACjBC,cAAc;IACdC,kBAAkB;IAClBC,yBAAyB;IACzBC;EACY,CAAC,GAAAL,IAAA;EACb,MAAM;IAAEM;EAAK,CAAC,GAAGX,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAEY;EAAK,CAAC,GAAGb,iBAAiB,CAAC,CAAC;EACpC,MAAMc,SAAS,GAAGD,IAAI,KAAKf,IAAI,CAACiB,OAAO;EAEvC,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGd,QAAQ,CAAC,CAACI,iBAAiB,CAAC,CAAC,CAAC,CAACW,EAAE,CAAC,CAAC;EACvE,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGjB,QAAQ,CAAC,EAAE,CAAC;EAE5D,MAAMkB,SAAS,GAAGjB,mBAAmB,CAAEkB,GAAW,IAAK;IACrDd,cAAc,CAACc,GAAG,CAAC;EACrB,CAAC,EAAE,GAAG,CAAC;EAEP,MAAMC,qBAAqB,GAAIC,KAAa,IAAK;IAC/CJ,mBAAmB,CAACI,KAAK,CAAC;IAC1B,IAAIA,KAAK,CAACC,MAAM,IAAI,CAAC,EAAE;MACrBJ,SAAS,CAACG,KAAK,CAAC;IAClB;IACA,IAAIA,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;MACtBjB,cAAc,CAACgB,KAAK,CAAC;IACvB;EACF,CAAC;EAED,OACEtB,KAAA,CAAAwB,aAAA;IACEC,SAAS,EAAE/B,EAAE,CAAC,4CAA4C,EAAE;MAC1D,aAAa,EAAE,CAACkB,SAAS;MACzB,aAAa,EAAEA;IACjB,CAAC;EAAE,GAEFJ,yBAAyB,IACxBR,KAAA,CAAAwB,aAAA;IACEC,SAAS,EAAE/B,EAAE,CAAC;MACZ,WAAW,EAAE,CAACkB,SAAS;MACvB,cAAc,EAAEA;IAClB,CAAC;EAAE,GAEHZ,KAAA,CAAAwB,aAAA,CAAC7B,MAAM;IACL+B,OAAO,EAAErB,iBAAkB;IAC3BsB,WAAW,EAAEjB,IAAI,CAAC,aAAa,CAAE;IACjCkB,cAAc,EACZvB,iBAAiB,CAACwB,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACd,EAAE,KAAKF,UAAU,CAAC,CAAC,CAAC,CAAC,IACzDT,iBAAiB,CAAC,CAAC,CACpB;IACD0B,iBAAiB,EAAGC,MAAM,IAAK;MAC7BjB,aAAa,CAAC,CAACiB,MAAM,CAAChB,EAAE,CAAC,CAAC;MAC1BT,kBAAkB,CAAC,CAACyB,MAAM,CAAChB,EAAE,CAAqB,CAAC;MACnDE,mBAAmB,CAAC,EAAE,CAAC;MACvBZ,cAAc,CAAC,EAAE,CAAC;IACpB;EAAE,CACH,CACE,CACN,EACAG,yBAAyB,IACxBT,KAAA,CAAAwB,aAAA;IACEC,SAAS,EAAE/B,EAAE,CAAC;MACZ,WAAW,EAAE,CAACkB,SAAS;MACvB,cAAc,EAAEA;IAClB,CAAC;EAAE,GAEHZ,KAAA,CAAAwB,aAAA,CAAC3B,SAAS;IACRoC,KAAK,EAAEvB,IAAI,CAAC,QAAQ,CAAE;IACtBwB,WAAW,EAAExB,IAAI,CAAC,iBAAiB,CAAE;IACrCY,KAAK,EAAEL,gBAAiB;IACxBkB,QAAQ,EAAEd;EAAsB,CACjC,CACE,CAEJ,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Filters.js","names":["cn","Select","Size","TextInput","useLayoutProvider","useLocale","React","useEffect","useState","useDebounceValue","Filters","_ref","assetClassOptions","onSearchChange","onAssetClassChange","isAssetClassFilterEnabled","isInstrumentSearchEnabled","lang","size","isDesktop","DESKTOP","assetClass","setAssetClass","id","searchInputValue","setSearchInputValue","debouncedValue","setValue","length","createElement","className","options","selectLabel","selectedOption","find","opt","setSelectedOption","option","label","placeholder","value","onChange","val"],"sources":["../../../../../src/InstrumentsTableWidget/components/Filters/Filters.tsx"],"sourcesContent":["import {\n cn,\n Select,\n Size,\n TextInput,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useEffect, useState } from 'react';\nimport { useDebounceValue } from 'usehooks-ts';\n\nimport type { AssetClassLabels, FiltersProps } from './types';\n\nexport const Filters = ({\n assetClassOptions,\n onSearchChange,\n onAssetClassChange,\n isAssetClassFilterEnabled,\n isInstrumentSearchEnabled,\n}: FiltersProps) => {\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n\n const [assetClass, setAssetClass] = useState([assetClassOptions[0].id]);\n const [searchInputValue, setSearchInputValue] = useState('');\n const [debouncedValue, setValue] = useDebounceValue('', 500);\n\n useEffect(() => {\n if (debouncedValue.length >= 3 || debouncedValue.length === 0) {\n onSearchChange(debouncedValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debouncedValue]);\n\n return (\n <div\n className={cn('lw-mb-4 lw-mt-2 lw-flex lw-w-full lw-gap-4', {\n 'lw-flex-col': !isDesktop,\n 'lw-flex-row': isDesktop,\n })}\n >\n {isAssetClassFilterEnabled && (\n <div\n className={cn({\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <Select\n options={assetClassOptions}\n selectLabel={lang('asset_class')}\n selectedOption={\n assetClassOptions.find((opt) => opt.id === assetClass[0]) ||\n assetClassOptions[0]\n }\n setSelectedOption={(option) => {\n setAssetClass([option.id]);\n onAssetClassChange([option.id as AssetClassLabels]);\n setSearchInputValue('');\n onSearchChange('');\n }}\n />\n </div>\n )}\n {isInstrumentSearchEnabled && (\n <div\n className={cn({\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <TextInput\n label={lang('search')}\n placeholder={lang('instrument_name')}\n value={searchInputValue}\n onChange={(val) => {\n setSearchInputValue(val);\n setValue(val);\n }}\n />\n </div>\n )}\n </div>\n );\n};\n"],"mappings":"AAAA,SACEA,EAAE,EACFC,MAAM,EACNC,IAAI,EACJC,SAAS,EACTC,iBAAiB,QACZ,2BAA2B;AAClC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SAASC,gBAAgB,QAAQ,aAAa;AAI9C,OAAO,MAAMC,OAAO,GAAGC,IAAA,IAMH;EAAA,IANI;IACtBC,iBAAiB;IACjBC,cAAc;IACdC,kBAAkB;IAClBC,yBAAyB;IACzBC;EACY,CAAC,GAAAL,IAAA;EACb,MAAM;IAAEM;EAAK,CAAC,GAAGZ,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAEa;EAAK,CAAC,GAAGd,iBAAiB,CAAC,CAAC;EACpC,MAAMe,SAAS,GAAGD,IAAI,KAAKhB,IAAI,CAACkB,OAAO;EAEvC,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGd,QAAQ,CAAC,CAACI,iBAAiB,CAAC,CAAC,CAAC,CAACW,EAAE,CAAC,CAAC;EACvE,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGjB,QAAQ,CAAC,EAAE,CAAC;EAC5D,MAAM,CAACkB,cAAc,EAAEC,QAAQ,CAAC,GAAGlB,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC;EAE5DF,SAAS,CAAC,MAAM;IACd,IAAImB,cAAc,CAACE,MAAM,IAAI,CAAC,IAAIF,cAAc,CAACE,MAAM,KAAK,CAAC,EAAE;MAC7Df,cAAc,CAACa,cAAc,CAAC;IAChC;EAEF,CAAC,EAAE,CAACA,cAAc,CAAC,CAAC;EAEpB,OACEpB,KAAA,CAAAuB,aAAA;IACEC,SAAS,EAAE9B,EAAE,CAAC,4CAA4C,EAAE;MAC1D,aAAa,EAAE,CAACmB,SAAS;MACzB,aAAa,EAAEA;IACjB,CAAC;EAAE,GAEFJ,yBAAyB,IACxBT,KAAA,CAAAuB,aAAA;IACEC,SAAS,EAAE9B,EAAE,CAAC;MACZ,WAAW,EAAE,CAACmB,SAAS;MACvB,cAAc,EAAEA;IAClB,CAAC;EAAE,GAEHb,KAAA,CAAAuB,aAAA,CAAC5B,MAAM;IACL8B,OAAO,EAAEnB,iBAAkB;IAC3BoB,WAAW,EAAEf,IAAI,CAAC,aAAa,CAAE;IACjCgB,cAAc,EACZrB,iBAAiB,CAACsB,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACZ,EAAE,KAAKF,UAAU,CAAC,CAAC,CAAC,CAAC,IACzDT,iBAAiB,CAAC,CAAC,CACpB;IACDwB,iBAAiB,EAAGC,MAAM,IAAK;MAC7Bf,aAAa,CAAC,CAACe,MAAM,CAACd,EAAE,CAAC,CAAC;MAC1BT,kBAAkB,CAAC,CAACuB,MAAM,CAACd,EAAE,CAAqB,CAAC;MACnDE,mBAAmB,CAAC,EAAE,CAAC;MACvBZ,cAAc,CAAC,EAAE,CAAC;IACpB;EAAE,CACH,CACE,CACN,EACAG,yBAAyB,IACxBV,KAAA,CAAAuB,aAAA;IACEC,SAAS,EAAE9B,EAAE,CAAC;MACZ,WAAW,EAAE,CAACmB,SAAS;MACvB,cAAc,EAAEA;IAClB,CAAC;EAAE,GAEHb,KAAA,CAAAuB,aAAA,CAAC1B,SAAS;IACRmC,KAAK,EAAErB,IAAI,CAAC,QAAQ,CAAE;IACtBsB,WAAW,EAAEtB,IAAI,CAAC,iBAAiB,CAAE;IACrCuB,KAAK,EAAEhB,gBAAiB;IACxBiB,QAAQ,EAAGC,GAAG,IAAK;MACjBjB,mBAAmB,CAACiB,GAAG,CAAC;MACxBf,QAAQ,CAACe,GAAG,CAAC;IACf;EAAE,CACH,CACE,CAEJ,CAAC;AAEV,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oanda/labs-instruments-table-widget",
3
- "version": "1.0.34",
3
+ "version": "1.0.36",
4
4
  "description": "Labs Instruments Table Widget",
5
5
  "main": "dist/main/index.js",
6
6
  "module": "dist/module/index.js",
@@ -12,7 +12,7 @@
12
12
  "author": "OANDA",
13
13
  "license": "UNLICENSED",
14
14
  "dependencies": {
15
- "@oanda/labs-widget-common": "^1.0.214",
15
+ "@oanda/labs-widget-common": "^1.0.216",
16
16
  "@oanda/mono-i18n": "10.0.1",
17
17
  "graphql": "16.8.1"
18
18
  },
@@ -20,5 +20,5 @@
20
20
  "@graphql-codegen/cli": "5.0.0",
21
21
  "@graphql-codegen/client-preset": "4.1.0"
22
22
  },
23
- "gitHead": "a23750aa48956806673092c040ba5df282b4de0d"
23
+ "gitHead": "b59a80b0e52d71fb67c9bf0f8fc8eed1643e0dad"
24
24
  }
@@ -6,8 +6,8 @@ import {
6
6
  useLayoutProvider,
7
7
  } from '@oanda/labs-widget-common';
8
8
  import { useLocale } from '@oanda/mono-i18n';
9
- import React, { useState } from 'react';
10
- import { useDebounceCallback } from 'usehooks-ts';
9
+ import React, { useEffect, useState } from 'react';
10
+ import { useDebounceValue } from 'usehooks-ts';
11
11
 
12
12
  import type { AssetClassLabels, FiltersProps } from './types';
13
13
 
@@ -24,20 +24,14 @@ export const Filters = ({
24
24
 
25
25
  const [assetClass, setAssetClass] = useState([assetClassOptions[0].id]);
26
26
  const [searchInputValue, setSearchInputValue] = useState('');
27
+ const [debouncedValue, setValue] = useDebounceValue('', 500);
27
28
 
28
- const debounced = useDebounceCallback((val: string) => {
29
- onSearchChange(val);
30
- }, 300);
31
-
32
- const handleTextInputSearch = (value: string) => {
33
- setSearchInputValue(value);
34
- if (value.length >= 3) {
35
- debounced(value);
36
- }
37
- if (value.length === 0) {
38
- onSearchChange(value);
29
+ useEffect(() => {
30
+ if (debouncedValue.length >= 3 || debouncedValue.length === 0) {
31
+ onSearchChange(debouncedValue);
39
32
  }
40
- };
33
+ // eslint-disable-next-line react-hooks/exhaustive-deps
34
+ }, [debouncedValue]);
41
35
 
42
36
  return (
43
37
  <div
@@ -80,7 +74,10 @@ export const Filters = ({
80
74
  label={lang('search')}
81
75
  placeholder={lang('instrument_name')}
82
76
  value={searchInputValue}
83
- onChange={handleTextInputSearch}
77
+ onChange={(val) => {
78
+ setSearchInputValue(val);
79
+ setValue(val);
80
+ }}
84
81
  />
85
82
  </div>
86
83
  )}