@ledgerhq/native-ui 0.39.0-nightly.3 → 0.40.0-nightly.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.
Files changed (22) hide show
  1. package/lib/pre-ldls/components/AssetItem/AssetItem.d.ts.map +1 -1
  2. package/lib/pre-ldls/components/AssetItem/AssetItem.js +3 -4
  3. package/lib/pre-ldls/components/AssetTypeList/AssetList.d.ts.map +1 -1
  4. package/lib/pre-ldls/components/AssetTypeList/AssetList.js +14 -9
  5. package/lib/pre-ldls/components/CryptoIcon/CryptoIcon.d.ts +1 -1
  6. package/lib/pre-ldls/components/CryptoIcon/CryptoIcon.d.ts.map +1 -1
  7. package/lib/pre-ldls/components/CryptoIcon/CryptoIcon.js +1 -1
  8. package/lib/pre-ldls/components/CryptoIcon/CryptoIcon.stories.d.ts.map +1 -1
  9. package/lib/pre-ldls/components/CryptoIcon/CryptoIcon.stories.js +1 -0
  10. package/lib/pre-ldls/components/NetworkItem/NetworkItem.js +2 -2
  11. package/lib/pre-ldls/components/NetworkList/NetworkList.d.ts.map +1 -0
  12. package/lib/pre-ldls/components/{NetwrokList → NetworkList}/NetworkList.js +13 -9
  13. package/lib/pre-ldls/components/{NetwrokList → NetworkList}/NetwrokList.stories.d.ts.map +1 -1
  14. package/lib/pre-ldls/components/Search/Search.js +3 -3
  15. package/lib/pre-ldls/components/index.d.ts +2 -1
  16. package/lib/pre-ldls/components/index.d.ts.map +1 -1
  17. package/lib/pre-ldls/components/index.js +2 -1
  18. package/package.json +3 -4
  19. package/lib/pre-ldls/components/NetwrokList/NetworkList.d.ts.map +0 -1
  20. /package/lib/pre-ldls/components/{NetwrokList → NetworkList}/NetworkList.d.ts +0 -0
  21. /package/lib/pre-ldls/components/{NetwrokList → NetworkList}/NetwrokList.stories.d.ts +0 -0
  22. /package/lib/pre-ldls/components/{NetwrokList → NetworkList}/NetwrokList.stories.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"AssetItem.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/AssetItem/AssetItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC,CAAC;AAEF,KAAK,cAAc,GAAG,SAAS,GAAG;IAChC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACrC,CAAC;AAuBF,eAAO,MAAM,SAAS,8DAOnB,cAAc,sBAsDhB,CAAC"}
1
+ {"version":3,"file":"AssetItem.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/AssetItem/AssetItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC,CAAC;AAEF,KAAK,cAAc,GAAG,SAAS,GAAG;IAChC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACrC,CAAC;AAwBF,eAAO,MAAM,SAAS,8DAOnB,cAAc,sBAkDhB,CAAC"}
@@ -16,6 +16,7 @@ const InfoWrapper = styled(View) `
16
16
  overflow: hidden;
17
17
  flex: 1;
18
18
  gap: 4px;
19
+ margin-left: 16px;
19
20
  `;
20
21
  const LeftElementWrapper = styled(View) `
21
22
  flex-direction: row;
@@ -39,10 +40,8 @@ export const AssetItem = ({ name, ticker, id, onClick, leftElement, rightElement
39
40
  backgroundColor: String(tokens["colors-surface-transparent-default"]),
40
41
  opacity: pressed ? 0.7 : 1,
41
42
  }) },
42
- React.createElement(CryptoIcon, { size: "48px", ledgerId: id, ticker: ticker }),
43
- React.createElement(InfoWrapper, { style: {
44
- marginLeft: Number(tokens["margin-s"]),
45
- } },
43
+ React.createElement(CryptoIcon, { size: 48, ledgerId: id, ticker: ticker }),
44
+ React.createElement(InfoWrapper, null,
46
45
  React.createElement(Text, { fontSize: "14px", variant: "largeLineHeight", fontWeight: "semiBold", color: String(tokens["colors-content-default-default"]), numberOfLines: 1, ellipsizeMode: "tail" }, name),
47
46
  React.createElement(LeftElementWrapper, null,
48
47
  React.createElement(Text, { fontSize: "12px", lineHeight: "16px", variant: "bodyLineHeight", fontWeight: "medium", color: String(tokens["colors-content-subdued-default-default"]) }, ticker),
@@ -1 +1 @@
1
- {"version":3,"file":"AssetList.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/AssetTypeList/AssetList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAa,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE9D,eAAO,MAAM,SAAS;YAOZ,SAAS,EAAE;qBACF,SAAS,KAAK,IAAI;qCACH,IAAI;;;uBAuCrC,CAAC"}
1
+ {"version":3,"file":"AssetList.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/AssetTypeList/AssetList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAa,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAK9D,eAAO,MAAM,SAAS;YAOZ,SAAS,EAAE;qBACF,SAAS,KAAK,IAAI;qCACH,IAAI;;;uBA0CrC,CAAC"}
@@ -1,13 +1,15 @@
1
1
  import React, { useCallback, useEffect, useRef } from "react";
2
- import { FlashList } from "@shopify/flash-list";
2
+ import { FlatList } from "react-native";
3
3
  import { AssetItem } from "../AssetItem/AssetItem";
4
+ const ITEM_PADDING = 8;
5
+ const ITEM_HEIGHT = 48 + ITEM_PADDING * 2;
4
6
  export const AssetList = ({ assets, onClick, onVisibleItemsScrollEnd, scrollToTop, hasNextPage, }) => {
5
- const flashListRef = useRef(null);
7
+ const flatListRef = useRef(null);
6
8
  const renderAssetItem = useCallback(({ item }) => React.createElement(AssetItem, { ...item, onClick: onClick }), [onClick]);
7
9
  const keyExtractor = useCallback((item, index) => `${item.id}-${index}`, []);
8
10
  useEffect(() => {
9
- if (scrollToTop && flashListRef.current) {
10
- flashListRef.current.scrollToOffset({ offset: 0, animated: true });
11
+ if (scrollToTop && flatListRef.current) {
12
+ flatListRef.current.scrollToOffset({ offset: 0, animated: true });
11
13
  }
12
14
  }, [scrollToTop]);
13
15
  const handleEndReached = useCallback(() => {
@@ -15,17 +17,20 @@ export const AssetList = ({ assets, onClick, onVisibleItemsScrollEnd, scrollToTo
15
17
  onVisibleItemsScrollEnd();
16
18
  }
17
19
  }, [hasNextPage, onVisibleItemsScrollEnd]);
18
- const flashListProps = {
19
- ref: flashListRef,
20
+ const flatListProps = {
20
21
  data: assets,
21
22
  renderItem: renderAssetItem,
23
+ initialNumToRender: 15,
22
24
  keyExtractor,
23
- estimatedItemSize: 72,
24
- style: { flex: 1, width: "100%" },
25
+ getItemLayout: (data, index) => ({
26
+ length: ITEM_HEIGHT,
27
+ offset: ITEM_HEIGHT * index,
28
+ index,
29
+ }),
25
30
  ...(hasNextPage && {
26
31
  onEndReached: handleEndReached,
27
32
  onEndReachedThreshold: 0.1,
28
33
  }),
29
34
  };
30
- return React.createElement(FlashList, { ...flashListProps });
35
+ return React.createElement(FlatList, { ref: flatListRef, ...flatListProps });
31
36
  };
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- import { CryptoIcon as Icon } from "@ledgerhq/crypto-icons";
2
+ import Icon from "@ledgerhq/crypto-icons/native";
3
3
  export declare function CryptoIcon(props: Parameters<typeof Icon>[0]): React.JSX.Element;
4
4
  //# sourceMappingURL=CryptoIcon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoIcon.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/CryptoIcon/CryptoIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE5D,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,qBAE3D"}
1
+ {"version":3,"file":"CryptoIcon.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/CryptoIcon/CryptoIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,+BAA+B,CAAC;AAEjD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,qBAE3D"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { CryptoIcon as Icon } from "@ledgerhq/crypto-icons";
2
+ import Icon from "@ledgerhq/crypto-icons/native";
3
3
  export function CryptoIcon(props) {
4
4
  return React.createElement(Icon, { ...props });
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoIcon.stories.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/CryptoIcon/CryptoIcon.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAmBjC,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC;AAEzC,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC"}
1
+ {"version":3,"file":"CryptoIcon.stories.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/CryptoIcon/CryptoIcon.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAoBjC,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC;AAEzC,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC"}
@@ -7,6 +7,7 @@ const meta = {
7
7
  ledgerId: "bitcoin",
8
8
  ticker: "BTC",
9
9
  size: 56,
10
+ backgroundColor: "red",
10
11
  network: "",
11
12
  },
12
13
  argTypes: {
@@ -14,7 +14,7 @@ const Wrapper = styled(Pressable) `
14
14
  const InfoWrapper = styled(View) `
15
15
  flex-direction: column;
16
16
  justify-content: center;
17
- margin-left: ${({ tokens }) => tokens["margin-s"]}px;
17
+ margin-left: 16px;
18
18
  flex: 1;
19
19
  `;
20
20
  const LeftElementWrapper = styled(View) `
@@ -38,7 +38,7 @@ export const NetworkItem = ({ name, onClick, id, ticker, leftElement, rightEleme
38
38
  return (React.createElement(Wrapper, { tokens: tokens, onPress: onClick, style: ({ pressed }) => ({
39
39
  opacity: pressed ? 0.7 : 1,
40
40
  }) },
41
- React.createElement(CryptoIcon, { size: "48px", ledgerId: id, ticker: ticker }),
41
+ React.createElement(CryptoIcon, { size: 48, ledgerId: id, ticker: ticker }),
42
42
  React.createElement(InfoWrapper, { tokens: tokens },
43
43
  React.createElement(Text, { variant: "largeLineHeight", fontWeight: "semiBold", color: String(tokens["colors-content-default-default"]) }, name),
44
44
  React.createElement(LeftElementWrapper, null, leftElement)),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkList.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/NetworkList/NetworkList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAe,MAAM,4BAA4B,CAAC;AAMlE,eAAO,MAAM,WAAW;cAOZ,OAAO,EAAE;yBACE,MAAM,KAAK,IAAI;qCACJ,IAAI;;;uBAyCrC,CAAC"}
@@ -1,13 +1,15 @@
1
1
  import React, { useCallback, useEffect, useRef } from "react";
2
- import { FlashList } from "@shopify/flash-list";
3
2
  import { NetworkItem } from "../NetworkItem/NetworkItem";
3
+ import { FlatList } from "react-native";
4
+ const ITEM_PADDING = 8;
5
+ const ITEM_HEIGHT = 48 + ITEM_PADDING * 2;
4
6
  export const NetworkList = ({ networks, onClick, onVisibleItemsScrollEnd, scrollToTop, hasNextPage, }) => {
5
- const flashListRef = useRef(null);
7
+ const flatListRef = useRef(null);
6
8
  const renderNetworkItem = useCallback(({ item }) => React.createElement(NetworkItem, { ...item, onClick: () => onClick(item.id) }), [onClick]);
7
9
  const keyExtractor = useCallback((item, index) => `${item.id}-${index}`, []);
8
10
  useEffect(() => {
9
- if (scrollToTop && flashListRef.current) {
10
- flashListRef.current.scrollToOffset({ offset: 0, animated: true });
11
+ if (scrollToTop && flatListRef.current) {
12
+ flatListRef.current.scrollToOffset({ offset: 0, animated: true });
11
13
  }
12
14
  }, [scrollToTop]);
13
15
  const handleEndReached = useCallback(() => {
@@ -15,17 +17,19 @@ export const NetworkList = ({ networks, onClick, onVisibleItemsScrollEnd, scroll
15
17
  onVisibleItemsScrollEnd();
16
18
  }
17
19
  }, [hasNextPage, onVisibleItemsScrollEnd]);
18
- const flashListProps = {
19
- ref: flashListRef,
20
+ const flatListProps = {
20
21
  data: networks,
21
22
  renderItem: renderNetworkItem,
22
23
  keyExtractor,
23
- estimatedItemSize: 72,
24
- style: { flex: 1, width: "100%" },
24
+ getItemLayout: (data, index) => ({
25
+ length: ITEM_HEIGHT,
26
+ offset: ITEM_HEIGHT * index,
27
+ index,
28
+ }),
25
29
  ...(hasNextPage && {
26
30
  onEndReached: handleEndReached,
27
31
  onEndReachedThreshold: 0.1,
28
32
  }),
29
33
  };
30
- return React.createElement(FlashList, { ...flashListProps });
34
+ return React.createElement(FlatList, { ref: flatListRef, ...flatListProps });
31
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NetwrokList.stories.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/NetwrokList/NetwrokList.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAkBlC,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AAE1C,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,gBAAgB,EAAE,KAQ9B,CAAC"}
1
+ {"version":3,"file":"NetwrokList.stories.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/NetworkList/NetwrokList.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAkBlC,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AAE1C,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,gBAAgB,EAAE,KAQ9B,CAAC"}
@@ -8,8 +8,7 @@ export function Search({ onDebouncedChange, debounceTime = 500, onChange, ...pro
8
8
  const handleDebouncedChange = useDebouncedCallback(useMemo(() => {
9
9
  if (!onDebouncedChange)
10
10
  return;
11
- return (e) => {
12
- const current = e.nativeEvent.text;
11
+ return (current) => {
13
12
  onDebouncedChange(current, prevValue.current);
14
13
  prevValue.current = current;
15
14
  };
@@ -18,8 +17,9 @@ export function Search({ onDebouncedChange, debounceTime = 500, onChange, ...pro
18
17
  if (!handleDebouncedChange && !onChange)
19
18
  return;
20
19
  return (e) => {
20
+ const current = e.nativeEvent.text;
21
21
  onChange?.(e);
22
- handleDebouncedChange?.(e);
22
+ handleDebouncedChange?.(current);
23
23
  };
24
24
  }, [handleDebouncedChange, onChange]);
25
25
  return React.createElement(Input, { ...props, icon: Icons.Search, onChange: handleChange });
@@ -2,6 +2,7 @@ export * from "./Input/Input";
2
2
  export * from "./AssetItem/AssetItem";
3
3
  export * from "./AssetTypeList/AssetList";
4
4
  export * from "./NetworkItem/NetworkItem";
5
- export * from "./NetwrokList/NetworkList";
5
+ export * from "./NetworkList/NetworkList";
6
6
  export * from "./Tag/Tag";
7
+ export * from "./Search/Search";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pre-ldls/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pre-ldls/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC"}
@@ -2,5 +2,6 @@ export * from "./Input/Input";
2
2
  export * from "./AssetItem/AssetItem";
3
3
  export * from "./AssetTypeList/AssetList";
4
4
  export * from "./NetworkItem/NetworkItem";
5
- export * from "./NetwrokList/NetworkList";
5
+ export * from "./NetworkList/NetworkList";
6
6
  export * from "./Tag/Tag";
7
+ export * from "./Search/Search";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/native-ui",
3
- "version": "0.39.0-nightly.3",
3
+ "version": "0.40.0-nightly.0",
4
4
  "description": "Ledger Live - Mobile UI",
5
5
  "repository": {
6
6
  "type": "git",
@@ -35,13 +35,12 @@
35
35
  "lib/**/*"
36
36
  ],
37
37
  "dependencies": {
38
- "@ledgerhq/crypto-icons": "1.1.1",
39
- "@shopify/flash-list": "1.6.4",
38
+ "@ledgerhq/crypto-icons": "1.1.2",
40
39
  "color": "^4.0.0",
41
40
  "react-native-modal": "14.0.0-rc.1",
42
41
  "rn-range-slider": "2.1.1",
43
42
  "styled-system": "^5.1.5",
44
- "@ledgerhq/crypto-icons-ui": "^1.16.0-nightly.0",
43
+ "@ledgerhq/crypto-icons-ui": "^1.16.0",
45
44
  "@ledgerhq/icons-ui": "^0.13.0-nightly.0",
46
45
  "@ledgerhq/ui-shared": "^0.3.0"
47
46
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"NetworkList.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/NetwrokList/NetworkList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAe,MAAM,4BAA4B,CAAC;AAElE,eAAO,MAAM,WAAW;cAOZ,OAAO,EAAE;yBACE,MAAM,KAAK,IAAI;qCACJ,IAAI;;;uBAuCrC,CAAC"}