@ledgerhq/native-ui 0.39.0-nightly.2 → 0.39.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 (36) hide show
  1. package/lib/components/Form/TabSelector/index.d.ts.map +1 -1
  2. package/lib/components/Form/TabSelector/index.js +1 -1
  3. package/lib/pre-ldls/components/index.d.ts +0 -5
  4. package/lib/pre-ldls/components/index.d.ts.map +1 -1
  5. package/lib/pre-ldls/components/index.js +0 -5
  6. package/package.json +3 -4
  7. package/lib/pre-ldls/components/AssetItem/AssetItem.d.ts +0 -14
  8. package/lib/pre-ldls/components/AssetItem/AssetItem.d.ts.map +0 -1
  9. package/lib/pre-ldls/components/AssetItem/AssetItem.js +0 -51
  10. package/lib/pre-ldls/components/AssetItem/AssetItem.stories.d.ts +0 -11
  11. package/lib/pre-ldls/components/AssetItem/AssetItem.stories.d.ts.map +0 -1
  12. package/lib/pre-ldls/components/AssetItem/AssetItem.stories.js +0 -55
  13. package/lib/pre-ldls/components/AssetTypeList/AssetList.d.ts +0 -10
  14. package/lib/pre-ldls/components/AssetTypeList/AssetList.d.ts.map +0 -1
  15. package/lib/pre-ldls/components/AssetTypeList/AssetList.js +0 -31
  16. package/lib/pre-ldls/components/AssetTypeList/AssetList.stories.d.ts +0 -10
  17. package/lib/pre-ldls/components/AssetTypeList/AssetList.stories.d.ts.map +0 -1
  18. package/lib/pre-ldls/components/AssetTypeList/AssetList.stories.js +0 -62
  19. package/lib/pre-ldls/components/NetworkItem/NetworkItem.d.ts +0 -14
  20. package/lib/pre-ldls/components/NetworkItem/NetworkItem.d.ts.map +0 -1
  21. package/lib/pre-ldls/components/NetworkItem/NetworkItem.js +0 -46
  22. package/lib/pre-ldls/components/NetworkItem/NetworkItem.stories.d.ts +0 -10
  23. package/lib/pre-ldls/components/NetworkItem/NetworkItem.stories.d.ts.map +0 -1
  24. package/lib/pre-ldls/components/NetworkItem/NetworkItem.stories.js +0 -32
  25. package/lib/pre-ldls/components/NetwrokList/NetworkList.d.ts +0 -10
  26. package/lib/pre-ldls/components/NetwrokList/NetworkList.d.ts.map +0 -1
  27. package/lib/pre-ldls/components/NetwrokList/NetworkList.js +0 -31
  28. package/lib/pre-ldls/components/NetwrokList/NetwrokList.stories.d.ts +0 -8
  29. package/lib/pre-ldls/components/NetwrokList/NetwrokList.stories.d.ts.map +0 -1
  30. package/lib/pre-ldls/components/NetwrokList/NetwrokList.stories.js +0 -30
  31. package/lib/pre-ldls/components/Tag/Tag.d.ts +0 -7
  32. package/lib/pre-ldls/components/Tag/Tag.d.ts.map +0 -1
  33. package/lib/pre-ldls/components/Tag/Tag.js +0 -14
  34. package/lib/pre-ldls/components/sharedStoryBook.d.ts +0 -6
  35. package/lib/pre-ldls/components/sharedStoryBook.d.ts.map +0 -1
  36. package/lib/pre-ldls/components/sharedStoryBook.js +0 -13
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Form/TabSelector/index.tsx"],"names":[],"mappings":";AA8BA,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI;IACxC,MAAM,EAAE;QAAE,EAAE,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3C,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,EACpD,MAAM,EACN,UAAU,EACV,QAAQ,EACR,aAAqB,GACtB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CA0EnC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Form/TabSelector/index.tsx"],"names":[],"mappings":";AA8BA,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI;IACxC,MAAM,EAAE;QAAE,EAAE,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3C,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,EACpD,MAAM,EACN,UAAU,EACV,QAAQ,EACR,aAAqB,GACtB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAyEnC"}
@@ -66,7 +66,7 @@ export default function TabSelector({ labels, initialTab, onToggle, filledVarian
66
66
  labels.map((label, index) => (React.createElement(Pressable, { hitSlop: 6, key: label.id, onPress: () => handlePress(label.id, index), style: ({ pressed }) => ({
67
67
  opacity: pressed && selectedIndex !== index ? 0.5 : 1,
68
68
  flex: 1,
69
- }), testID: `tab-selector-${label.id}` },
69
+ }) },
70
70
  React.createElement(Tab, { "$radius": tabRadius },
71
71
  React.createElement(Text, { fontSize: 14, fontWeight: "semiBold", flexShrink: 1, numberOfLines: 1 }, label.value))))))));
72
72
  }
@@ -1,7 +1,2 @@
1
1
  export * from "./Input/Input";
2
- export * from "./AssetItem/AssetItem";
3
- export * from "./AssetTypeList/AssetList";
4
- export * from "./NetworkItem/NetworkItem";
5
- export * from "./NetwrokList/NetworkList";
6
- export * from "./Tag/Tag";
7
2
  //# 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"}
@@ -1,6 +1 @@
1
1
  export * from "./Input/Input";
2
- export * from "./AssetItem/AssetItem";
3
- export * from "./AssetTypeList/AssetList";
4
- export * from "./NetworkItem/NetworkItem";
5
- export * from "./NetwrokList/NetworkList";
6
- export * from "./Tag/Tag";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/native-ui",
3
- "version": "0.39.0-nightly.2",
3
+ "version": "0.39.0",
4
4
  "description": "Ledger Live - Mobile UI",
5
5
  "repository": {
6
6
  "type": "git",
@@ -36,13 +36,12 @@
36
36
  ],
37
37
  "dependencies": {
38
38
  "@ledgerhq/crypto-icons": "1.1.1",
39
- "@shopify/flash-list": "1.6.4",
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",
45
- "@ledgerhq/icons-ui": "^0.13.0-nightly.0",
43
+ "@ledgerhq/crypto-icons-ui": "^1.16.0",
44
+ "@ledgerhq/icons-ui": "^0.12.0",
46
45
  "@ledgerhq/ui-shared": "^0.3.0"
47
46
  },
48
47
  "peerDependencies": {
@@ -1,14 +0,0 @@
1
- import React from "react";
2
- export type AssetType = {
3
- name: string;
4
- ticker: string;
5
- id: string;
6
- leftElement?: React.ReactNode;
7
- rightElement?: React.ReactNode;
8
- };
9
- type AssetItemProps = AssetType & {
10
- onClick: (asset: AssetType) => void;
11
- };
12
- export declare const AssetItem: ({ name, ticker, id, onClick, leftElement, rightElement, }: AssetItemProps) => React.JSX.Element;
13
- export {};
14
- //# sourceMappingURL=AssetItem.d.ts.map
@@ -1 +0,0 @@
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,51 +0,0 @@
1
- import React from "react";
2
- import { Pressable, View } from "react-native";
3
- import styled, { useTheme } from "styled-components/native";
4
- import Text from "../../../components/Text";
5
- import { CryptoIcon } from "../CryptoIcon/CryptoIcon";
6
- import { useTokens } from "../../libs";
7
- const Wrapper = styled(Pressable) `
8
- flex-direction: row;
9
- align-items: center;
10
- overflow: hidden;
11
- width: 100%;
12
- `;
13
- const InfoWrapper = styled(View) `
14
- flex-direction: column;
15
- justify-content: center;
16
- overflow: hidden;
17
- flex: 1;
18
- gap: 4px;
19
- `;
20
- const LeftElementWrapper = styled(View) `
21
- flex-direction: row;
22
- align-items: center;
23
- gap: 4px;
24
- `;
25
- export const AssetItem = ({ name, ticker, id, onClick, leftElement, rightElement, }) => {
26
- const theme = useTheme();
27
- const colorType = theme.colors.type === "dark" ? "dark" : "light";
28
- const tokens = useTokens(colorType, [
29
- "spacing-xxs",
30
- "margin-s",
31
- "radius-s",
32
- "colors-content-default-default",
33
- "colors-content-subdued-default-default",
34
- "colors-surface-transparent-default",
35
- ]);
36
- return (React.createElement(Wrapper, { onPress: () => onClick({ name, ticker, id }), style: ({ pressed }) => ({
37
- padding: Number(tokens["spacing-xxs"]),
38
- borderRadius: Number(tokens["radius-s"]),
39
- backgroundColor: String(tokens["colors-surface-transparent-default"]),
40
- opacity: pressed ? 0.7 : 1,
41
- }) },
42
- React.createElement(CryptoIcon, { size: "48px", ledgerId: id, ticker: ticker }),
43
- React.createElement(InfoWrapper, { style: {
44
- marginLeft: Number(tokens["margin-s"]),
45
- } },
46
- React.createElement(Text, { fontSize: "14px", variant: "largeLineHeight", fontWeight: "semiBold", color: String(tokens["colors-content-default-default"]), numberOfLines: 1, ellipsizeMode: "tail" }, name),
47
- React.createElement(LeftElementWrapper, null,
48
- React.createElement(Text, { fontSize: "12px", lineHeight: "16px", variant: "bodyLineHeight", fontWeight: "medium", color: String(tokens["colors-content-subdued-default-default"]) }, ticker),
49
- leftElement)),
50
- rightElement));
51
- };
@@ -1,11 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/react";
2
- import { AssetItem } from "./AssetItem";
3
- declare const meta: Meta<typeof AssetItem>;
4
- export default meta;
5
- type Story = StoryObj<typeof AssetItem>;
6
- export declare const Default: Story;
7
- export declare const WithBalance: Story;
8
- export declare const WithTag: Story;
9
- export declare const WithLeftTagAndRightBalance: Story;
10
- export declare const WithDiscreetModeEnabled: Story;
11
- //# sourceMappingURL=AssetItem.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssetItem.stories.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/AssetItem/AssetItem.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CAkBhC,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC;AAExC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,KAQxC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAOrC,CAAC"}
@@ -1,55 +0,0 @@
1
- import { AssetItem } from "./AssetItem";
2
- import { createRightElement, leftElement } from "../sharedStoryBook";
3
- const meta = {
4
- component: AssetItem,
5
- title: "PreLdls/Components/AssetItem",
6
- tags: ["autodocs"],
7
- args: {
8
- name: "Bitcoin",
9
- ticker: "BTC",
10
- id: "bitcoin",
11
- onClick: () => { },
12
- },
13
- parameters: {
14
- docs: {
15
- description: {
16
- component: "AssetItem displays a crypto asset with its name, ticker, icon, and optionally fiat value and balance. Use it to represent selectable assets in lists.",
17
- },
18
- },
19
- },
20
- };
21
- export default meta;
22
- export const Default = {};
23
- export const WithBalance = {
24
- args: {
25
- name: "Bitcoin",
26
- ticker: "BTC",
27
- id: "bitcoin",
28
- rightElement: createRightElement(false),
29
- },
30
- };
31
- export const WithTag = {
32
- args: {
33
- name: "Bitcoin",
34
- ticker: "BTC",
35
- id: "bitcoin",
36
- leftElement: leftElement,
37
- },
38
- };
39
- export const WithLeftTagAndRightBalance = {
40
- args: {
41
- name: "Bitcoin",
42
- ticker: "BTC",
43
- id: "bitcoin",
44
- leftElement: leftElement,
45
- rightElement: createRightElement(false),
46
- },
47
- };
48
- export const WithDiscreetModeEnabled = {
49
- args: {
50
- name: "Bitcoin",
51
- ticker: "BTC",
52
- id: "bitcoin",
53
- rightElement: createRightElement(true),
54
- },
55
- };
@@ -1,10 +0,0 @@
1
- import React from "react";
2
- import { AssetType } from "../AssetItem/AssetItem";
3
- export declare const AssetList: ({ assets, onClick, onVisibleItemsScrollEnd, scrollToTop, hasNextPage, }: {
4
- assets: AssetType[];
5
- onClick: (asset: AssetType) => void;
6
- onVisibleItemsScrollEnd?: (() => void) | undefined;
7
- scrollToTop?: boolean | undefined;
8
- hasNextPage?: boolean | undefined;
9
- }) => React.JSX.Element;
10
- //# sourceMappingURL=AssetList.d.ts.map
@@ -1 +0,0 @@
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,31 +0,0 @@
1
- import React, { useCallback, useEffect, useRef } from "react";
2
- import { FlashList } from "@shopify/flash-list";
3
- import { AssetItem } from "../AssetItem/AssetItem";
4
- export const AssetList = ({ assets, onClick, onVisibleItemsScrollEnd, scrollToTop, hasNextPage, }) => {
5
- const flashListRef = useRef(null);
6
- const renderAssetItem = useCallback(({ item }) => React.createElement(AssetItem, { ...item, onClick: onClick }), [onClick]);
7
- const keyExtractor = useCallback((item, index) => `${item.id}-${index}`, []);
8
- useEffect(() => {
9
- if (scrollToTop && flashListRef.current) {
10
- flashListRef.current.scrollToOffset({ offset: 0, animated: true });
11
- }
12
- }, [scrollToTop]);
13
- const handleEndReached = useCallback(() => {
14
- if (hasNextPage && onVisibleItemsScrollEnd) {
15
- onVisibleItemsScrollEnd();
16
- }
17
- }, [hasNextPage, onVisibleItemsScrollEnd]);
18
- const flashListProps = {
19
- ref: flashListRef,
20
- data: assets,
21
- renderItem: renderAssetItem,
22
- keyExtractor,
23
- estimatedItemSize: 72,
24
- style: { flex: 1, width: "100%" },
25
- ...(hasNextPage && {
26
- onEndReached: handleEndReached,
27
- onEndReachedThreshold: 0.1,
28
- }),
29
- };
30
- return React.createElement(FlashList, { ...flashListProps });
31
- };
@@ -1,10 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/react";
2
- import { AssetList } from "./AssetList";
3
- declare const meta: Meta<typeof AssetList>;
4
- export default meta;
5
- type Story = StoryObj<typeof AssetList>;
6
- export declare const Default: Story;
7
- export declare const WithFiatValue: Story;
8
- export declare const WithDiscreetModeEnabled: Story;
9
- export declare const WithLeftTagAndRightBalance: Story;
10
- //# sourceMappingURL=AssetList.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssetList.stories.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/AssetTypeList/AssetList.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CA4BhC,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC;AAExC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,aAAa,EAAE,KAS3B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KASrC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,KAUxC,CAAC"}
@@ -1,62 +0,0 @@
1
- import React from "react";
2
- import { View } from "react-native";
3
- import { AssetList } from "./AssetList";
4
- import { createRightElement, leftElement } from "../sharedStoryBook";
5
- const meta = {
6
- component: AssetList,
7
- title: "PreLdls/Components/AssetList",
8
- tags: ["autodocs"],
9
- args: {
10
- assets: Array.from({ length: 50 }).map((_, i) => ({
11
- name: `Bitcoin ${i}`,
12
- ticker: "BTC",
13
- id: "bitcoin",
14
- })),
15
- onClick: () => { },
16
- scrollToTop: false,
17
- },
18
- decorators: [
19
- (Story) => (React.createElement(View, { style: { height: 600, width: "100%" } },
20
- React.createElement(Story, null))),
21
- ],
22
- parameters: {
23
- docs: {
24
- description: {
25
- component: "AssetList displays a list of crypto assets. It supports virtual scrolling for performance with large datasets. Use it to represent selectable assets in lists.",
26
- },
27
- },
28
- },
29
- };
30
- export default meta;
31
- export const Default = {};
32
- export const WithFiatValue = {
33
- args: {
34
- assets: Array.from({ length: 50 }).map((_, i) => ({
35
- name: `Bitcoin ${i}`,
36
- ticker: "BTC",
37
- id: "bitcoin",
38
- rightElement: createRightElement(false),
39
- })),
40
- },
41
- };
42
- export const WithDiscreetModeEnabled = {
43
- args: {
44
- assets: Array.from({ length: 50 }).map((_, i) => ({
45
- name: `Bitcoin ${i}`,
46
- ticker: "BTC",
47
- id: "bitcoin",
48
- rightElement: createRightElement(true),
49
- })),
50
- },
51
- };
52
- export const WithLeftTagAndRightBalance = {
53
- args: {
54
- assets: Array.from({ length: 50 }).map((_, i) => ({
55
- name: `Bitcoin ${i}`,
56
- ticker: "BTC",
57
- id: "bitcoin",
58
- leftElement: leftElement,
59
- rightElement: createRightElement(false),
60
- })),
61
- },
62
- };
@@ -1,14 +0,0 @@
1
- import React from "react";
2
- export type Network = {
3
- name: string;
4
- id: string;
5
- ticker: string;
6
- leftElement?: React.ReactNode;
7
- rightElement?: React.ReactNode;
8
- };
9
- type NetworkItemProps = Network & {
10
- onClick: () => void;
11
- };
12
- export declare const NetworkItem: ({ name, onClick, id, ticker, leftElement, rightElement, }: NetworkItemProps) => React.JSX.Element;
13
- export {};
14
- //# sourceMappingURL=NetworkItem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NetworkItem.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/NetworkItem/NetworkItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC,CAAC;AAEF,KAAK,gBAAgB,GAAG,OAAO,GAAG;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAiCF,eAAO,MAAM,WAAW,8DAOrB,gBAAgB,sBA4BlB,CAAC"}
@@ -1,46 +0,0 @@
1
- import React from "react";
2
- import { Pressable, View } from "react-native";
3
- import styled, { useTheme } from "styled-components/native";
4
- import { useTokens } from "../../libs";
5
- import Text from "../../../components/Text";
6
- import { CryptoIcon } from "../CryptoIcon/CryptoIcon";
7
- const Wrapper = styled(Pressable) `
8
- flex-direction: row;
9
- padding: ${({ tokens }) => tokens["spacing-xxs"]}px;
10
- border-radius: ${({ tokens }) => tokens["radius-s"]}px;
11
- align-items: center;
12
- width: 100%;
13
- `;
14
- const InfoWrapper = styled(View) `
15
- flex-direction: column;
16
- justify-content: center;
17
- margin-left: ${({ tokens }) => tokens["margin-s"]}px;
18
- flex: 1;
19
- `;
20
- const LeftElementWrapper = styled(View) `
21
- flex-direction: row;
22
- align-items: center;
23
- gap: 4px;
24
- `;
25
- const TOKEN_KEYS = [
26
- "spacing-xxs",
27
- "margin-s",
28
- "radius-s",
29
- "colors-content-default-default",
30
- "colors-content-subdued-default-default",
31
- "colors-surface-transparent-hover",
32
- "colors-surface-transparent-pressed",
33
- ];
34
- export const NetworkItem = ({ name, onClick, id, ticker, leftElement, rightElement, }) => {
35
- const theme = useTheme();
36
- const colorType = theme.colors.type === "dark" ? "dark" : "light";
37
- const tokens = useTokens(colorType, [...TOKEN_KEYS]);
38
- return (React.createElement(Wrapper, { tokens: tokens, onPress: onClick, style: ({ pressed }) => ({
39
- opacity: pressed ? 0.7 : 1,
40
- }) },
41
- React.createElement(CryptoIcon, { size: "48px", ledgerId: id, ticker: ticker }),
42
- React.createElement(InfoWrapper, { tokens: tokens },
43
- React.createElement(Text, { variant: "largeLineHeight", fontWeight: "semiBold", color: String(tokens["colors-content-default-default"]) }, name),
44
- React.createElement(LeftElementWrapper, null, leftElement)),
45
- rightElement));
46
- };
@@ -1,10 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/react";
2
- import { NetworkItem } from "./NetworkItem";
3
- declare const meta: Meta<typeof NetworkItem>;
4
- export default meta;
5
- type Story = StoryObj<typeof NetworkItem>;
6
- export declare const Default: Story;
7
- export declare const TestNetworkItem: Story;
8
- export declare const NetworkItemWithLeftElement: Story;
9
- export declare const NetworkItemWithRightElement: Story;
10
- //# sourceMappingURL=NetworkItem.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NetworkItem.stories.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/NetworkItem/NetworkItem.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAUlC,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,eAAe,EAAE,KAAU,CAAC;AAEzC,eAAO,MAAM,0BAA0B,EAAE,KAOxC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KAOzC,CAAC"}
@@ -1,32 +0,0 @@
1
- import { NetworkItem } from "./NetworkItem";
2
- import { createRightElement, leftElement } from "../sharedStoryBook";
3
- const meta = {
4
- component: NetworkItem,
5
- title: "PreLdls/Components/NetworkItem",
6
- tags: ["autodocs"],
7
- args: {
8
- name: "Bitcoin",
9
- id: "bitcoin",
10
- ticker: "btc",
11
- onClick: () => console.log("NetworkItem clicked"),
12
- },
13
- };
14
- export default meta;
15
- export const Default = {};
16
- export const TestNetworkItem = {};
17
- export const NetworkItemWithLeftElement = {
18
- args: {
19
- name: "Bitcoin",
20
- id: "bitcoin",
21
- ticker: "btc",
22
- leftElement,
23
- },
24
- };
25
- export const NetworkItemWithRightElement = {
26
- args: {
27
- name: "Bitcoin",
28
- id: "bitcoin",
29
- ticker: "btc",
30
- rightElement: createRightElement(true),
31
- },
32
- };
@@ -1,10 +0,0 @@
1
- import React from "react";
2
- import { Network } from "../NetworkItem/NetworkItem";
3
- export declare const NetworkList: ({ networks, onClick, onVisibleItemsScrollEnd, scrollToTop, hasNextPage, }: {
4
- networks: Network[];
5
- onClick: (networkId: string) => void;
6
- onVisibleItemsScrollEnd?: (() => void) | undefined;
7
- scrollToTop?: boolean | undefined;
8
- hasNextPage?: boolean | undefined;
9
- }) => React.JSX.Element;
10
- //# sourceMappingURL=NetworkList.d.ts.map
@@ -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"}
@@ -1,31 +0,0 @@
1
- import React, { useCallback, useEffect, useRef } from "react";
2
- import { FlashList } from "@shopify/flash-list";
3
- import { NetworkItem } from "../NetworkItem/NetworkItem";
4
- export const NetworkList = ({ networks, onClick, onVisibleItemsScrollEnd, scrollToTop, hasNextPage, }) => {
5
- const flashListRef = useRef(null);
6
- const renderNetworkItem = useCallback(({ item }) => React.createElement(NetworkItem, { ...item, onClick: () => onClick(item.id) }), [onClick]);
7
- const keyExtractor = useCallback((item, index) => `${item.id}-${index}`, []);
8
- useEffect(() => {
9
- if (scrollToTop && flashListRef.current) {
10
- flashListRef.current.scrollToOffset({ offset: 0, animated: true });
11
- }
12
- }, [scrollToTop]);
13
- const handleEndReached = useCallback(() => {
14
- if (hasNextPage && onVisibleItemsScrollEnd) {
15
- onVisibleItemsScrollEnd();
16
- }
17
- }, [hasNextPage, onVisibleItemsScrollEnd]);
18
- const flashListProps = {
19
- ref: flashListRef,
20
- data: networks,
21
- renderItem: renderNetworkItem,
22
- keyExtractor,
23
- estimatedItemSize: 72,
24
- style: { flex: 1, width: "100%" },
25
- ...(hasNextPage && {
26
- onEndReached: handleEndReached,
27
- onEndReachedThreshold: 0.1,
28
- }),
29
- };
30
- return React.createElement(FlashList, { ...flashListProps });
31
- };
@@ -1,8 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/react";
2
- import { NetworkList } from "./NetworkList";
3
- declare const meta: Meta<typeof NetworkList>;
4
- export default meta;
5
- type Story = StoryObj<typeof NetworkList>;
6
- export declare const Default: Story;
7
- export declare const TestNetworkClick: Story;
8
- //# sourceMappingURL=NetwrokList.stories.d.ts.map
@@ -1 +0,0 @@
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,30 +0,0 @@
1
- import { NetworkList } from "./NetworkList";
2
- import React from "react";
3
- import { View } from "react-native";
4
- const meta = {
5
- component: NetworkList,
6
- title: "PreLdls/Components/NetworkList",
7
- tags: ["autodocs"],
8
- args: {
9
- networks: Array.from({ length: 50 }, (_, i) => ({
10
- name: `Bitcoin ${i}`,
11
- id: `bitcoin`,
12
- ticker: "btc",
13
- })),
14
- },
15
- decorators: [
16
- (Story) => (React.createElement(View, { style: { height: 600, width: "100%" } },
17
- React.createElement(Story, null))),
18
- ],
19
- };
20
- export default meta;
21
- export const Default = {};
22
- export const TestNetworkClick = {
23
- args: {
24
- networks: Array.from({ length: 3 }, (_, i) => ({
25
- name: `Bitcoin ${i}`,
26
- id: `bitcoin`,
27
- ticker: "btc",
28
- })),
29
- },
30
- };
@@ -1,7 +0,0 @@
1
- import React, { ReactNode } from "react";
2
- import { TextStyle } from "react-native";
3
- export declare const Tag: ({ textTransform, children, }: {
4
- textTransform?: TextStyle["textTransform"];
5
- children: ReactNode;
6
- }) => React.JSX.Element;
7
- //# sourceMappingURL=Tag.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../../src/pre-ldls/components/Tag/Tag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAWzC,eAAO,MAAM,GAAG;oBAIE,SAAS,CAAC,eAAe,CAAC;cAChC,SAAS;uBAcpB,CAAC"}
@@ -1,14 +0,0 @@
1
- import React from "react";
2
- import styled from "styled-components/native";
3
- import { Text } from "../../../components";
4
- const Wrapper = styled.View `
5
- padding: 1px 4px;
6
- border-radius: 4px;
7
- background-color: ${(props) => props.theme.colors.palette.neutral.c30};
8
- flex-shrink: 0;
9
- align-self: flex-start;
10
- `;
11
- export const Tag = ({ textTransform = "none", children, }) => {
12
- return (React.createElement(Wrapper, { testID: "tag" },
13
- React.createElement(Text, { color: "palette.neutral.c70", fontSize: "10px", lineHeight: "16px", textTransform: textTransform }, children)));
14
- };
@@ -1,6 +0,0 @@
1
- /// <reference types="styled-components-react-native" />
2
- import React from "react";
3
- export declare const BalanceContainer: import("styled-components").StyledComponent<typeof import("react-native").View, import("styled-components").DefaultTheme, {}, never>;
4
- export declare const leftElement: React.JSX.Element;
5
- export declare const createRightElement: (discreetMode: boolean) => React.JSX.Element;
6
- //# sourceMappingURL=sharedStoryBook.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sharedStoryBook.d.ts","sourceRoot":"","sources":["../../../src/pre-ldls/components/sharedStoryBook.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,eAAO,MAAM,gBAAgB,sIAI5B,CAAC;AAEF,eAAO,MAAM,WAAW,mBAA2B,CAAC;AAEpD,eAAO,MAAM,kBAAkB,iBAAkB,OAAO,sBAoBvD,CAAC"}
@@ -1,13 +0,0 @@
1
- import React from "react";
2
- import styled from "styled-components/native";
3
- import { Text } from "../../components";
4
- import { Tag } from "./Tag/Tag";
5
- export const BalanceContainer = styled.View `
6
- flex-direction: column;
7
- align-items: flex-end;
8
- gap: 4px;
9
- `;
10
- export const leftElement = React.createElement(Tag, null, "1.34% APY");
11
- export const createRightElement = (discreetMode) => (React.createElement(BalanceContainer, null,
12
- React.createElement(Text, { fontSize: "14px", variant: "largeLineHeight", fontWeight: "semiBold", color: "palette.neutral.c100" }, discreetMode ? "$***" : "$5,969.83"),
13
- React.createElement(Text, { fontSize: "12px", lineHeight: "16px", variant: "bodyLineHeight", fontWeight: "medium", color: "palette.neutral.c70" }, discreetMode ? "*** BTC" : "0.118 BTC")));