@coinbase/cds-mobile 8.29.0 → 8.30.0
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 +9 -0
- package/dts/alpha/select-chip/SelectChip.d.ts +12 -6
- package/dts/alpha/select-chip/SelectChip.d.ts.map +1 -1
- package/dts/alpha/select-chip/SelectChipControl.d.ts +1 -0
- package/dts/alpha/select-chip/SelectChipControl.d.ts.map +1 -1
- package/dts/alpha/tabbed-chips/TabbedChips.d.ts +5 -0
- package/dts/alpha/tabbed-chips/TabbedChips.d.ts.map +1 -1
- package/dts/chips/Chip.d.ts +1 -1
- package/dts/chips/Chip.d.ts.map +1 -1
- package/dts/chips/ChipProps.d.ts +1 -1
- package/dts/chips/ChipProps.d.ts.map +1 -1
- package/dts/chips/InputChip.d.ts +1 -1
- package/dts/chips/InputChip.d.ts.map +1 -1
- package/dts/chips/MediaChip.d.ts +1 -1
- package/dts/chips/MediaChip.d.ts.map +1 -1
- package/dts/hooks/useHorizontalScrollToTarget.d.ts +10 -0
- package/dts/hooks/useHorizontalScrollToTarget.d.ts.map +1 -1
- package/esm/alpha/select-chip/SelectChip.js +8 -5
- package/esm/alpha/select-chip/SelectChipControl.js +6 -2
- package/esm/alpha/select-chip/__stories__/{SelectChip.stories.js → AlphaSelectChip.stories.js} +42 -0
- package/esm/alpha/tabbed-chips/TabbedChips.js +12 -5
- package/esm/alpha/tabbed-chips/__stories__/AlphaTabbedChips.stories.js +9 -1
- package/esm/hooks/useHorizontalScrollToTarget.js +16 -5
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,15 @@ All notable changes to this project will be documented in this file.
|
|
|
8
8
|
|
|
9
9
|
<!-- template-start -->
|
|
10
10
|
|
|
11
|
+
## 8.30.0 (12/12/2025 PST)
|
|
12
|
+
|
|
13
|
+
#### 🚀 Updates
|
|
14
|
+
|
|
15
|
+
- Add overflow gradient to the left side of TabbedChips alpha. [[#232](https://github.com/coinbase/cds/pull/232)] [DX-5070]
|
|
16
|
+
- Add autoScrollOffset prop to TabbedChips alpha. [[#232](https://github.com/coinbase/cds/pull/232)] [DX-5070]
|
|
17
|
+
- Add maxWidth prop to SelectChip alpha [[#232](https://github.com/coinbase/cds/pull/232)] [DX-5072]
|
|
18
|
+
- Add displayValue prop to SelectChip alpha [[#232](https://github.com/coinbase/cds/pull/232)]
|
|
19
|
+
|
|
11
20
|
## 8.29.0 (12/12/2025 PST)
|
|
12
21
|
|
|
13
22
|
#### 🚀 Updates
|
|
@@ -2,18 +2,24 @@ import React from 'react';
|
|
|
2
2
|
import type { ChipBaseProps } from '../../chips/ChipProps';
|
|
3
3
|
import { type SelectRef } from '../select/Select';
|
|
4
4
|
import type { SelectProps, SelectType } from '../select/types';
|
|
5
|
-
export type SelectChipBaseProps = Pick<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
export type SelectChipBaseProps = Pick<
|
|
6
|
+
ChipBaseProps,
|
|
7
|
+
'invertColorScheme' | 'numberOfLines' | 'maxWidth'
|
|
8
|
+
> & {
|
|
9
|
+
/**
|
|
10
|
+
* Override the displayed value in the chip control.
|
|
11
|
+
* Useful for avoiding truncation, especially in multi-select scenarios where multiple option labels might be too long to display.
|
|
12
|
+
* When provided, this value takes precedence over the default label generation.
|
|
13
|
+
*/
|
|
14
|
+
displayValue?: React.ReactNode;
|
|
15
|
+
};
|
|
10
16
|
export type SelectChipProps<
|
|
11
17
|
Type extends SelectType = 'single',
|
|
12
18
|
SelectOptionValue extends string = string,
|
|
13
19
|
> = SelectChipBaseProps &
|
|
14
20
|
Omit<
|
|
15
21
|
SelectProps<Type, SelectOptionValue>,
|
|
16
|
-
'SelectControlComponent' | 'helperText' | 'labelVariant' | 'variant'
|
|
22
|
+
'SelectControlComponent' | 'helperText' | 'labelVariant' | 'variant' | 'maxWidth'
|
|
17
23
|
>;
|
|
18
24
|
export declare const SelectChip: <
|
|
19
25
|
Type extends SelectType = 'single',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectChip.d.ts","sourceRoot":"","sources":["../../../src/alpha/select-chip/SelectChip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAsB,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAInF,MAAM,MAAM,mBAAmB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"SelectChip.d.ts","sourceRoot":"","sources":["../../../src/alpha/select-chip/SelectChip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAsB,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAInF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,aAAa,EACb,mBAAmB,GAAG,eAAe,GAAG,UAAU,CACnD,GAAG;IACF;;;;OAIG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,CACzB,IAAI,SAAS,UAAU,GAAG,QAAQ,EAClC,iBAAiB,SAAS,MAAM,GAAG,MAAM,IACvC,mBAAmB,GACrB,IAAI,CACF,WAAW,CAAC,IAAI,EAAE,iBAAiB,CAAC,EACpC,wBAAwB,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,GAAG,UAAU,CAClF,CAAC;AA8CJ,eAAO,MAAM,UAAU,EAA0B,CAC/C,IAAI,SAAS,UAAU,GAAG,QAAQ,EAClC,iBAAiB,SAAS,MAAM,GAAG,MAAM,EAEzC,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,iBAAiB,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;CAAE,KAC7E,KAAK,CAAC,YAAY,CAAC"}
|
|
@@ -9,6 +9,7 @@ export declare const SelectChipControl: <
|
|
|
9
9
|
props: SelectControlProps<Type, SelectOptionValue> &
|
|
10
10
|
Partial<Pick<ChipBaseProps, 'invertColorScheme' | 'numberOfLines'>> & {
|
|
11
11
|
ref?: React.Ref<View>;
|
|
12
|
+
displayValue?: React.ReactNode;
|
|
12
13
|
},
|
|
13
14
|
) => React.ReactElement;
|
|
14
15
|
//# sourceMappingURL=SelectChipControl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectChipControl.d.ts","sourceRoot":"","sources":["../../../src/alpha/select-chip/SelectChipControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"SelectChipControl.d.ts","sourceRoot":"","sources":["../../../src/alpha/select-chip/SelectChipControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AA4JzB,eAAO,MAAM,iBAAiB,EAAiC,CAC7D,IAAI,SAAS,UAAU,EACvB,iBAAiB,SAAS,MAAM,GAAG,MAAM,EAEzC,KAAK,EAAE,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC,GAChD,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,mBAAmB,GAAG,eAAe,CAAC,CAAC,GAAG;IACpE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC,KACA,KAAK,CAAC,YAAY,CAAC"}
|
|
@@ -25,6 +25,11 @@ export type TabbedChipsBaseProps<T extends string = string> = Omit<
|
|
|
25
25
|
* @default false
|
|
26
26
|
*/
|
|
27
27
|
compact?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* X position offset when auto-scrolling to active tab (to avoid active tab being covered by the overflow gradient on the left side, default: 30px)
|
|
30
|
+
* @default 30
|
|
31
|
+
*/
|
|
32
|
+
autoScrollOffset?: number;
|
|
28
33
|
};
|
|
29
34
|
export type TabbedChipsProps<T extends string = string> = TabbedChipsBaseProps<T> &
|
|
30
35
|
SharedProps &
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabbedChips.d.ts","sourceRoot":"","sources":["../../../src/alpha/tabbed-chips/TabbedChips.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAChF,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAO,KAAK,QAAQ,EAAoB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAQ,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AA0BtE,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC,GAC9F,QAAQ,CAAC,CAAC,CAAC,GAAG;IACZ,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC;AAEJ,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAChE,aAAa,CAAC,CAAC,CAAC,EACd,cAAc,GACd,8BAA8B,GAC9B,MAAM,GACN,0BAA0B,GAC1B,kBAAkB,CACrB,GAAG;IACF,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,4BAA4B,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;IAC5E;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TabbedChips.d.ts","sourceRoot":"","sources":["../../../src/alpha/tabbed-chips/TabbedChips.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAChF,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAO,KAAK,QAAQ,EAAoB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAQ,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AA0BtE,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC,GAC9F,QAAQ,CAAC,CAAC,CAAC,GAAG;IACZ,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC;AAEJ,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAChE,aAAa,CAAC,CAAC,CAAC,EACd,cAAc,GACd,8BAA8B,GAC9B,MAAM,GACN,0BAA0B,GAC1B,kBAAkB,CACrB,GAAG;IACF,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,4BAA4B,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;IAC5E;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAC/E,WAAW,GACX,wBAAwB,GAAG;IACzB;;;OAGG;IACH,GAAG,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE;QACP;;WAEG;QACH,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B;;WAEG;QACH,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KAC7B,CAAC;CACH,CAAC;AAEJ,KAAK,aAAa,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAC7C,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;CAAE,KAC5D,KAAK,CAAC,YAAY,CAAC;AA+ExB,eAAO,MAAM,WAAW,EAA2B,aAAa,CAAC"}
|
package/dts/chips/Chip.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { View } from 'react-native';
|
|
|
6
6
|
export declare const Chip: React.MemoExoticComponent<
|
|
7
7
|
React.ForwardRefExoticComponent<
|
|
8
8
|
import('@coinbase/cds-common').SharedProps &
|
|
9
|
-
Omit<import('../system').PressableProps, 'children' | 'maxWidth' | 'style'> &
|
|
9
|
+
Omit<import('../system').PressableProps, 'children' | 'maxWidth' | 'style' | 'onChange'> &
|
|
10
10
|
Pick<import('@coinbase/cds-common').SharedAccessibilityProps, 'accessibilityLabel'> & {
|
|
11
11
|
children?: React.ReactNode;
|
|
12
12
|
start?: React.ReactNode;
|
package/dts/chips/Chip.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chip.d.ts","sourceRoot":"","sources":["../../src/chips/Chip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AASzC;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Chip.d.ts","sourceRoot":"","sources":["../../src/chips/Chip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AASzC;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;YA0DT,CAAA;eAAqC,CAAC;;+BA8B7C,CAAC"}
|
package/dts/chips/ChipProps.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from '@coinbase/cds-common/types';
|
|
7
7
|
import type { PressableProps } from '../system';
|
|
8
8
|
export type ChipBaseProps = SharedProps &
|
|
9
|
-
Omit<PressableProps, 'children' | 'maxWidth' | 'style'> &
|
|
9
|
+
Omit<PressableProps, 'children' | 'maxWidth' | 'style' | 'onChange' | 'maxWidth'> &
|
|
10
10
|
Pick<SharedAccessibilityProps, 'accessibilityLabel'> & {
|
|
11
11
|
/** ReactNode placed in the center of the Chip */
|
|
12
12
|
children?: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChipProps.d.ts","sourceRoot":"","sources":["../../src/chips/ChipProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EACjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,MAAM,aAAa,GAAG,WAAW,GACrC,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"ChipProps.d.ts","sourceRoot":"","sources":["../../src/chips/ChipProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EACjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,MAAM,aAAa,GAAG,WAAW,GACrC,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC,GACjF,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,GAAG;IACrD,iDAAiD;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,wCAAwC;IACxC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,iDAAiD;IACjD,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5B,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KAChC,CAAC;CACH,CAAC;AAEJ,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC;AAEtC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
package/dts/chips/InputChip.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { View } from 'react-native';
|
|
|
3
3
|
export declare const InputChip: React.MemoExoticComponent<
|
|
4
4
|
React.ForwardRefExoticComponent<
|
|
5
5
|
import('@coinbase/cds-common').SharedProps &
|
|
6
|
-
Omit<import('../system').PressableProps, 'children' | 'maxWidth' | 'style'> &
|
|
6
|
+
Omit<import('../system').PressableProps, 'children' | 'maxWidth' | 'style' | 'onChange'> &
|
|
7
7
|
Pick<import('@coinbase/cds-common').SharedAccessibilityProps, 'accessibilityLabel'> & {
|
|
8
8
|
children?: React.ReactNode;
|
|
9
9
|
start?: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputChip.d.ts","sourceRoot":"","sources":["../../src/chips/InputChip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAOzC,eAAO,MAAM,SAAS;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"InputChip.d.ts","sourceRoot":"","sources":["../../src/chips/InputChip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAOzC,eAAO,MAAM,SAAS;;;;;;;;;;;;YAiCsxB,CAAC;eAAqC,CAAC;;;;+BADl1B,CAAC"}
|
package/dts/chips/MediaChip.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export type MediaChipProps = ChipProps;
|
|
|
4
4
|
export declare const MediaChip: import('react').MemoExoticComponent<
|
|
5
5
|
import('react').ForwardRefExoticComponent<
|
|
6
6
|
import('@coinbase/cds-common').SharedProps &
|
|
7
|
-
Omit<import('../system').PressableProps, 'children' | 'maxWidth' | 'style'> &
|
|
7
|
+
Omit<import('../system').PressableProps, 'children' | 'maxWidth' | 'style' | 'onChange'> &
|
|
8
8
|
Pick<import('@coinbase/cds-common').SharedAccessibilityProps, 'accessibilityLabel'> & {
|
|
9
9
|
children?: React.ReactNode;
|
|
10
10
|
start?: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaChip.d.ts","sourceRoot":"","sources":["../../src/chips/MediaChip.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC;AAEvC,eAAO,MAAM,SAAS;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"MediaChip.d.ts","sourceRoot":"","sources":["../../src/chips/MediaChip.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC;AAEvC,eAAO,MAAM,SAAS;;;;;;;;;;;;YAsD2M,CAAC;eAAqC,CAAC;;yCADvQ,CAAC"}
|
|
@@ -8,19 +8,29 @@ import type {
|
|
|
8
8
|
export type UseHorizontalScrollToTargetOptions = {
|
|
9
9
|
scrollThrottleWaitTime?: number;
|
|
10
10
|
activeTarget?: View | null;
|
|
11
|
+
autoScrollOffset?: number;
|
|
12
|
+
overflowThreshold?: number;
|
|
11
13
|
};
|
|
12
14
|
/**
|
|
13
15
|
* A hook for managing horizontal scrolling with overflow detection.
|
|
14
16
|
* Useful for horizontally scrollable content that needs to show overflow indicators.
|
|
15
17
|
* Optionally handles scrolling to an active target element.
|
|
18
|
+
*
|
|
19
|
+
* @param scrollThrottleWaitTime - Throttle time for scroll events (default: 200ms)
|
|
20
|
+
* @param activeTarget - The active element to scroll to when it's offscreen
|
|
21
|
+
* @param autoScrollOffset - X position offset when auto-scrolling to active target
|
|
22
|
+
* @param overflowThreshold - Threshold for detecting if content is offscreen (default: 1)
|
|
16
23
|
*/
|
|
17
24
|
export declare const useHorizontalScrollToTarget: ({
|
|
18
25
|
scrollThrottleWaitTime,
|
|
19
26
|
activeTarget,
|
|
27
|
+
autoScrollOffset,
|
|
28
|
+
overflowThreshold,
|
|
20
29
|
}?: UseHorizontalScrollToTargetOptions) => {
|
|
21
30
|
scrollRef: import('react').RefObject<ScrollView>;
|
|
22
31
|
isScrollContentOverflowing: boolean;
|
|
23
32
|
isScrollContentOffscreenRight: boolean;
|
|
33
|
+
isScrollContentOffscreenLeft: boolean;
|
|
24
34
|
handleScroll: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
|
|
25
35
|
handleScrollContainerLayout: (event: LayoutChangeEvent) => void;
|
|
26
36
|
handleScrollContentSizeChange: (contentWidth: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHorizontalScrollToTarget.d.ts","sourceRoot":"","sources":["../../src/hooks/useHorizontalScrollToTarget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,IAAI,EACL,MAAM,cAAc,CAAC;AAGtB,MAAM,MAAM,kCAAkC,GAAG;IAC/C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CAC5B,CAAC;AAIF
|
|
1
|
+
{"version":3,"file":"useHorizontalScrollToTarget.d.ts","sourceRoot":"","sources":["../../src/hooks/useHorizontalScrollToTarget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,IAAI,EACL,MAAM,cAAc,CAAC;AAGtB,MAAM,MAAM,kCAAkC,GAAG;IAC/C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAIF;;;;;;;;;GASG;AAEH,eAAO,MAAM,2BAA2B,GAAI,iFAKzC,kCAAuC;;;;;0BAwB9B,oBAAoB,CAAC,iBAAiB,CAAC;yCAOvC,iBAAiB;kDAQV,MAAM;CAiCxB,CAAC"}
|
|
@@ -1,27 +1,30 @@
|
|
|
1
|
-
const _excluded = ["invertColorScheme", "numberOfLines"];
|
|
1
|
+
const _excluded = ["invertColorScheme", "numberOfLines", "maxWidth", "displayValue"];
|
|
2
2
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
3
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
4
4
|
import React, { forwardRef, memo, useCallback } from 'react';
|
|
5
5
|
import { Select } from '../select/Select';
|
|
6
6
|
import { SelectChipControl } from './SelectChipControl';
|
|
7
|
-
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
/**
|
|
9
9
|
* Chip-styled Select control built on top of the Alpha Select.
|
|
10
10
|
* Supports both single and multi selection via Select's `type` prop.
|
|
11
11
|
*/
|
|
12
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
12
|
const SelectChipComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
|
|
14
13
|
let {
|
|
15
14
|
invertColorScheme,
|
|
16
|
-
numberOfLines
|
|
15
|
+
numberOfLines,
|
|
16
|
+
maxWidth,
|
|
17
|
+
displayValue
|
|
17
18
|
} = _ref,
|
|
18
19
|
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
19
20
|
const SelectChipControlComponent = useCallback(props => {
|
|
20
21
|
return /*#__PURE__*/_jsx(SelectChipControl, _extends({
|
|
22
|
+
displayValue: displayValue,
|
|
21
23
|
invertColorScheme: invertColorScheme,
|
|
24
|
+
maxWidth: maxWidth,
|
|
22
25
|
numberOfLines: numberOfLines
|
|
23
26
|
}, props));
|
|
24
|
-
}, [invertColorScheme, numberOfLines]);
|
|
27
|
+
}, [displayValue, invertColorScheme, maxWidth, numberOfLines]);
|
|
25
28
|
return /*#__PURE__*/_jsx(Select, _extends({
|
|
26
29
|
ref: ref,
|
|
27
30
|
SelectControlComponent: SelectChipControlComponent
|
|
@@ -21,7 +21,9 @@ const SelectChipControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_r
|
|
|
21
21
|
label,
|
|
22
22
|
compact,
|
|
23
23
|
invertColorScheme,
|
|
24
|
-
numberOfLines
|
|
24
|
+
numberOfLines,
|
|
25
|
+
maxWidth,
|
|
26
|
+
displayValue
|
|
25
27
|
} = _ref;
|
|
26
28
|
const isMultiSelect = type === 'multi';
|
|
27
29
|
const hasValue = value !== null && !(Array.isArray(value) && value.length === 0);
|
|
@@ -64,6 +66,7 @@ const SelectChipControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_r
|
|
|
64
66
|
const labelContent = useMemo(() => {
|
|
65
67
|
var _ref3, _ref6, _ref7, _ref8, _opt$label2;
|
|
66
68
|
if (!hasValue) return (_ref3 = label != null ? label : placeholder) != null ? _ref3 : null;
|
|
69
|
+
if (displayValue) return displayValue;
|
|
67
70
|
if (isMultiSelect) {
|
|
68
71
|
const values = value;
|
|
69
72
|
const visible = values.slice(0, maxSelectedOptionsToShow);
|
|
@@ -77,7 +80,7 @@ const SelectChipControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_r
|
|
|
77
80
|
}
|
|
78
81
|
const opt = optionsMap.get(value);
|
|
79
82
|
return (_ref6 = (_ref7 = (_ref8 = (_opt$label2 = opt == null ? void 0 : opt.label) != null ? _opt$label2 : opt == null ? void 0 : opt.description) != null ? _ref8 : opt == null ? void 0 : opt.value) != null ? _ref7 : placeholder) != null ? _ref6 : null;
|
|
80
|
-
}, [hasValue, label, placeholder, isMultiSelect, optionsMap, value, maxSelectedOptionsToShow, hiddenSelectedOptionsLabel]);
|
|
83
|
+
}, [hasValue, label, placeholder, displayValue, isMultiSelect, optionsMap, value, maxSelectedOptionsToShow, hiddenSelectedOptionsLabel]);
|
|
81
84
|
const endNode = useMemo(() => {
|
|
82
85
|
return customEndNode != null ? customEndNode : /*#__PURE__*/_jsx(AnimatedCaret, {
|
|
83
86
|
active: true,
|
|
@@ -102,6 +105,7 @@ const SelectChipControlComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_r
|
|
|
102
105
|
disabled: disabled,
|
|
103
106
|
end: endNode,
|
|
104
107
|
invertColorScheme: invertColorScheme,
|
|
108
|
+
maxWidth: maxWidth,
|
|
105
109
|
numberOfLines: numberOfLines,
|
|
106
110
|
onPress: () => setOpen(s => !s),
|
|
107
111
|
start: startNode,
|
package/esm/alpha/select-chip/__stories__/{SelectChip.stories.js → AlphaSelectChip.stories.js}
RENAMED
|
@@ -491,6 +491,45 @@ export const WithDescriptions = () => {
|
|
|
491
491
|
})]
|
|
492
492
|
});
|
|
493
493
|
};
|
|
494
|
+
export const WithDisplayValue = () => {
|
|
495
|
+
const exampleOptions = [{
|
|
496
|
+
value: '1',
|
|
497
|
+
label: 'Option 1'
|
|
498
|
+
}, {
|
|
499
|
+
value: '2',
|
|
500
|
+
label: 'Option 2'
|
|
501
|
+
}, {
|
|
502
|
+
value: '3',
|
|
503
|
+
label: 'Option 3'
|
|
504
|
+
}, {
|
|
505
|
+
value: '4',
|
|
506
|
+
label: 'Option 4'
|
|
507
|
+
}, {
|
|
508
|
+
value: '5',
|
|
509
|
+
label: 'Option 5'
|
|
510
|
+
}];
|
|
511
|
+
const {
|
|
512
|
+
value,
|
|
513
|
+
onChange
|
|
514
|
+
} = useMultiSelect({
|
|
515
|
+
initialValue: []
|
|
516
|
+
});
|
|
517
|
+
const displayValue = Array.isArray(value) && value.length > 0 ? value.length + " " + (value.length === 1 ? 'option' : 'options') + " selected" : undefined;
|
|
518
|
+
return /*#__PURE__*/_jsxs(VStack, {
|
|
519
|
+
gap: 2,
|
|
520
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
521
|
+
children: "Select with custom displayed value:"
|
|
522
|
+
}), /*#__PURE__*/_jsx(SelectChip, {
|
|
523
|
+
accessibilityLabel: "Select multiple values",
|
|
524
|
+
displayValue: displayValue,
|
|
525
|
+
onChange: onChange,
|
|
526
|
+
options: exampleOptions,
|
|
527
|
+
placeholder: "Choose options",
|
|
528
|
+
type: "multi",
|
|
529
|
+
value: value
|
|
530
|
+
})]
|
|
531
|
+
});
|
|
532
|
+
};
|
|
494
533
|
const SelectChipScreen = () => {
|
|
495
534
|
return /*#__PURE__*/_jsxs(ExampleScreen, {
|
|
496
535
|
children: [/*#__PURE__*/_jsx(Example, {
|
|
@@ -532,6 +571,9 @@ const SelectChipScreen = () => {
|
|
|
532
571
|
}), /*#__PURE__*/_jsx(Example, {
|
|
533
572
|
title: "With Descriptions",
|
|
534
573
|
children: /*#__PURE__*/_jsx(WithDescriptions, {})
|
|
574
|
+
}), /*#__PURE__*/_jsx(Example, {
|
|
575
|
+
title: "With Display Value",
|
|
576
|
+
children: /*#__PURE__*/_jsx(WithDisplayValue, {})
|
|
535
577
|
})]
|
|
536
578
|
});
|
|
537
579
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const _excluded = ["label", "id"],
|
|
2
|
-
_excluded2 = ["tabs", "activeTab", "testID", "TabComponent", "onChange", "width", "gap", "compact", "styles"];
|
|
2
|
+
_excluded2 = ["tabs", "activeTab", "testID", "TabComponent", "onChange", "width", "gap", "compact", "styles", "autoScrollOffset"];
|
|
3
3
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
4
4
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
5
5
|
import React, { forwardRef, memo, useCallback, useMemo, useState } from 'react';
|
|
@@ -45,19 +45,22 @@ const TabbedChipsComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function
|
|
|
45
45
|
width,
|
|
46
46
|
gap = 1,
|
|
47
47
|
compact,
|
|
48
|
-
styles
|
|
48
|
+
styles,
|
|
49
|
+
autoScrollOffset = 30
|
|
49
50
|
} = _ref2,
|
|
50
51
|
accessibilityProps = _objectWithoutPropertiesLoose(_ref2, _excluded2);
|
|
51
52
|
const [scrollTarget, setScrollTarget] = useState(null);
|
|
52
53
|
const {
|
|
53
54
|
scrollRef,
|
|
54
55
|
isScrollContentOverflowing,
|
|
56
|
+
isScrollContentOffscreenLeft,
|
|
55
57
|
isScrollContentOffscreenRight,
|
|
56
58
|
handleScroll,
|
|
57
59
|
handleScrollContainerLayout,
|
|
58
60
|
handleScrollContentSizeChange
|
|
59
61
|
} = useHorizontalScrollToTarget({
|
|
60
|
-
activeTarget: scrollTarget
|
|
62
|
+
activeTarget: scrollTarget,
|
|
63
|
+
autoScrollOffset
|
|
61
64
|
});
|
|
62
65
|
const TabComponentWithCompact = useCallback(props => {
|
|
63
66
|
return /*#__PURE__*/_jsx(TabComponent, _extends({
|
|
@@ -66,7 +69,7 @@ const TabbedChipsComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function
|
|
|
66
69
|
}, [TabComponent, compact]);
|
|
67
70
|
return /*#__PURE__*/_jsxs(Box, {
|
|
68
71
|
ref: ref,
|
|
69
|
-
overflow: isScrollContentOverflowing
|
|
72
|
+
overflow: isScrollContentOverflowing ? undefined : 'visible',
|
|
70
73
|
style: styles == null ? void 0 : styles.root,
|
|
71
74
|
testID: testID,
|
|
72
75
|
width: width,
|
|
@@ -88,7 +91,11 @@ const TabbedChipsComponent = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function
|
|
|
88
91
|
style: styles == null ? void 0 : styles.tabs,
|
|
89
92
|
tabs: tabs
|
|
90
93
|
}, accessibilityProps))
|
|
91
|
-
}), isScrollContentOverflowing &&
|
|
94
|
+
}), isScrollContentOverflowing && isScrollContentOffscreenLeft && /*#__PURE__*/_jsx(OverflowGradient, {
|
|
95
|
+
pin: "left"
|
|
96
|
+
}), isScrollContentOverflowing && isScrollContentOffscreenRight && /*#__PURE__*/_jsx(OverflowGradient, {
|
|
97
|
+
pin: "right"
|
|
98
|
+
})]
|
|
92
99
|
});
|
|
93
100
|
}));
|
|
94
101
|
TabbedChipsComponent.displayName = 'TabbedChips';
|
|
@@ -21,11 +21,13 @@ const Demo = _ref => {
|
|
|
21
21
|
let {
|
|
22
22
|
tabs = defaultTabs,
|
|
23
23
|
compact = false,
|
|
24
|
-
width
|
|
24
|
+
width,
|
|
25
|
+
autoScrollOffset
|
|
25
26
|
} = _ref;
|
|
26
27
|
const [value, setValue] = useState(tabs[0]);
|
|
27
28
|
return /*#__PURE__*/_jsx(TabbedChips, {
|
|
28
29
|
activeTab: value,
|
|
30
|
+
autoScrollOffset: autoScrollOffset,
|
|
29
31
|
compact: compact,
|
|
30
32
|
onChange: setValue,
|
|
31
33
|
tabs: tabs,
|
|
@@ -94,6 +96,12 @@ const TabbedChipsScreen = () => {
|
|
|
94
96
|
compact: true,
|
|
95
97
|
tabs: compactTabsWithStart
|
|
96
98
|
})
|
|
99
|
+
}), /*#__PURE__*/_jsx(Example, {
|
|
100
|
+
title: "With auto scroll offset",
|
|
101
|
+
children: /*#__PURE__*/_jsx(Demo, {
|
|
102
|
+
autoScrollOffset: 100,
|
|
103
|
+
tabs: sampleTabs
|
|
104
|
+
})
|
|
97
105
|
})]
|
|
98
106
|
});
|
|
99
107
|
};
|
|
@@ -4,11 +4,19 @@ import throttle from 'lodash/throttle';
|
|
|
4
4
|
* A hook for managing horizontal scrolling with overflow detection.
|
|
5
5
|
* Useful for horizontally scrollable content that needs to show overflow indicators.
|
|
6
6
|
* Optionally handles scrolling to an active target element.
|
|
7
|
+
*
|
|
8
|
+
* @param scrollThrottleWaitTime - Throttle time for scroll events (default: 200ms)
|
|
9
|
+
* @param activeTarget - The active element to scroll to when it's offscreen
|
|
10
|
+
* @param autoScrollOffset - X position offset when auto-scrolling to active target
|
|
11
|
+
* @param overflowThreshold - Threshold for detecting if content is offscreen (default: 1)
|
|
7
12
|
*/
|
|
13
|
+
|
|
8
14
|
export const useHorizontalScrollToTarget = function (_temp) {
|
|
9
15
|
let {
|
|
10
16
|
scrollThrottleWaitTime = 200,
|
|
11
|
-
activeTarget
|
|
17
|
+
activeTarget,
|
|
18
|
+
autoScrollOffset = 0,
|
|
19
|
+
overflowThreshold = 1
|
|
12
20
|
} = _temp === void 0 ? {} : _temp;
|
|
13
21
|
const scrollRef = useRef(null);
|
|
14
22
|
const scrollDetails = useRef({
|
|
@@ -18,6 +26,7 @@ export const useHorizontalScrollToTarget = function (_temp) {
|
|
|
18
26
|
});
|
|
19
27
|
const [isScrollContentOverflowing, setIsScrollContentOverflowing] = useState(false);
|
|
20
28
|
const [isScrollContentOffscreenRight, setIsScrollContentOffscreenRight] = useState(false);
|
|
29
|
+
const [isScrollContentOffscreenLeft, setIsScrollContentOffscreenLeft] = useState(false);
|
|
21
30
|
const checkScrollState = useCallback(() => {
|
|
22
31
|
const {
|
|
23
32
|
xPosition,
|
|
@@ -26,8 +35,9 @@ export const useHorizontalScrollToTarget = function (_temp) {
|
|
|
26
35
|
} = scrollDetails.current;
|
|
27
36
|
const maxScroll = contentWidth - containerWidth;
|
|
28
37
|
setIsScrollContentOverflowing(contentWidth > containerWidth);
|
|
29
|
-
setIsScrollContentOffscreenRight(xPosition < maxScroll -
|
|
30
|
-
|
|
38
|
+
setIsScrollContentOffscreenRight(xPosition < maxScroll - overflowThreshold); // -1 offset for fractional values
|
|
39
|
+
setIsScrollContentOffscreenLeft(xPosition > overflowThreshold); // 1 offset for fractional values
|
|
40
|
+
}, [overflowThreshold]);
|
|
31
41
|
const throttledHandleScroll = useRef(throttle(xPosition => {
|
|
32
42
|
scrollDetails.current.xPosition = xPosition;
|
|
33
43
|
checkScrollState();
|
|
@@ -56,7 +66,7 @@ export const useHorizontalScrollToTarget = function (_temp) {
|
|
|
56
66
|
if (isOffscreenLeft || isOffscreenRight) {
|
|
57
67
|
var _scrollRef$current;
|
|
58
68
|
(_scrollRef$current = scrollRef.current) == null || _scrollRef$current.scrollTo({
|
|
59
|
-
x,
|
|
69
|
+
x: x - autoScrollOffset,
|
|
60
70
|
y: 0,
|
|
61
71
|
animated: true
|
|
62
72
|
});
|
|
@@ -64,11 +74,12 @@ export const useHorizontalScrollToTarget = function (_temp) {
|
|
|
64
74
|
});
|
|
65
75
|
}
|
|
66
76
|
return () => throttledHandleScroll.cancel();
|
|
67
|
-
}, [activeTarget, throttledHandleScroll]);
|
|
77
|
+
}, [activeTarget, autoScrollOffset, throttledHandleScroll]);
|
|
68
78
|
return {
|
|
69
79
|
scrollRef,
|
|
70
80
|
isScrollContentOverflowing,
|
|
71
81
|
isScrollContentOffscreenRight,
|
|
82
|
+
isScrollContentOffscreenLeft,
|
|
72
83
|
handleScroll,
|
|
73
84
|
handleScrollContainerLayout,
|
|
74
85
|
handleScrollContentSizeChange
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbase/cds-mobile",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.30.0",
|
|
4
4
|
"description": "Coinbase Design System - Mobile",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
"react-native-svg": "^14.1.0"
|
|
155
155
|
},
|
|
156
156
|
"dependencies": {
|
|
157
|
-
"@coinbase/cds-common": "^8.
|
|
157
|
+
"@coinbase/cds-common": "^8.30.0",
|
|
158
158
|
"@coinbase/cds-icons": "^5.8.0",
|
|
159
159
|
"@coinbase/cds-illustrations": "^4.29.0",
|
|
160
160
|
"@coinbase/cds-lottie-files": "^3.3.3",
|