@mezo-org/passport 0.15.1-dev.6 → 0.15.1-dev.7

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 (124) hide show
  1. package/dist/src/config.d.ts +1 -2
  2. package/dist/src/config.d.ts.map +1 -1
  3. package/dist/src/config.js +8 -12
  4. package/dist/src/config.js.map +1 -1
  5. package/dist/src/hooks/useAuthenticateWithWallet.d.ts +11 -11
  6. package/dist/src/hooks/useSignInWithWallet.d.ts +11 -11
  7. package/dist/src/hooks/useSignUpWithWallet.d.ts +11 -11
  8. package/dist/src/hooks/useWalletAccount.d.ts +2 -2
  9. package/dist/src/hooks/useWalletAccount.d.ts.map +1 -1
  10. package/dist/src/hooks/useWalletAccount.js.map +1 -1
  11. package/dist/src/index.d.ts +1 -2
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +1 -2
  14. package/dist/src/index.js.map +1 -1
  15. package/package.json +1 -2
  16. package/src/config.ts +13 -23
  17. package/src/hooks/useWalletAccount.ts +5 -2
  18. package/src/index.ts +0 -2
  19. package/dist/src/assets/DefaultAvatar.d.ts +0 -5
  20. package/dist/src/assets/DefaultAvatar.d.ts.map +0 -1
  21. package/dist/src/assets/DefaultAvatar.js +0 -21
  22. package/dist/src/assets/DefaultAvatar.js.map +0 -1
  23. package/dist/src/components/Dropdown/ConnectedTrigger.d.ts +0 -8
  24. package/dist/src/components/Dropdown/ConnectedTrigger.d.ts.map +0 -1
  25. package/dist/src/components/Dropdown/ConnectedTrigger.js +0 -39
  26. package/dist/src/components/Dropdown/ConnectedTrigger.js.map +0 -1
  27. package/dist/src/components/Dropdown/Content.d.ts +0 -8
  28. package/dist/src/components/Dropdown/Content.d.ts.map +0 -1
  29. package/dist/src/components/Dropdown/Content.js +0 -27
  30. package/dist/src/components/Dropdown/Content.js.map +0 -1
  31. package/dist/src/components/Dropdown/DisconnectedTrigger.d.ts +0 -7
  32. package/dist/src/components/Dropdown/DisconnectedTrigger.d.ts.map +0 -1
  33. package/dist/src/components/Dropdown/DisconnectedTrigger.js +0 -13
  34. package/dist/src/components/Dropdown/DisconnectedTrigger.js.map +0 -1
  35. package/dist/src/components/Dropdown/Dropdown.d.ts +0 -23
  36. package/dist/src/components/Dropdown/Dropdown.d.ts.map +0 -1
  37. package/dist/src/components/Dropdown/Dropdown.js +0 -45
  38. package/dist/src/components/Dropdown/Dropdown.js.map +0 -1
  39. package/dist/src/components/Dropdown/ListingItem.d.ts +0 -14
  40. package/dist/src/components/Dropdown/ListingItem.d.ts.map +0 -1
  41. package/dist/src/components/Dropdown/ListingItem.js +0 -42
  42. package/dist/src/components/Dropdown/ListingItem.js.map +0 -1
  43. package/dist/src/components/Dropdown/NestedViewLayout.d.ts +0 -8
  44. package/dist/src/components/Dropdown/NestedViewLayout.d.ts.map +0 -1
  45. package/dist/src/components/Dropdown/NestedViewLayout.js +0 -32
  46. package/dist/src/components/Dropdown/NestedViewLayout.js.map +0 -1
  47. package/dist/src/components/Dropdown/Receive/Receive.d.ts +0 -4
  48. package/dist/src/components/Dropdown/Receive/Receive.d.ts.map +0 -1
  49. package/dist/src/components/Dropdown/Receive/Receive.js +0 -64
  50. package/dist/src/components/Dropdown/Receive/Receive.js.map +0 -1
  51. package/dist/src/components/Dropdown/Root/AccountAddressActions.d.ts +0 -4
  52. package/dist/src/components/Dropdown/Root/AccountAddressActions.d.ts.map +0 -1
  53. package/dist/src/components/Dropdown/Root/AccountAddressActions.js +0 -49
  54. package/dist/src/components/Dropdown/Root/AccountAddressActions.js.map +0 -1
  55. package/dist/src/components/Dropdown/Root/AccountBalance.d.ts +0 -6
  56. package/dist/src/components/Dropdown/Root/AccountBalance.d.ts.map +0 -1
  57. package/dist/src/components/Dropdown/Root/AccountBalance.js +0 -32
  58. package/dist/src/components/Dropdown/Root/AccountBalance.js.map +0 -1
  59. package/dist/src/components/Dropdown/Root/AccountBtcListing.d.ts +0 -6
  60. package/dist/src/components/Dropdown/Root/AccountBtcListing.d.ts.map +0 -1
  61. package/dist/src/components/Dropdown/Root/AccountBtcListing.js +0 -28
  62. package/dist/src/components/Dropdown/Root/AccountBtcListing.js.map +0 -1
  63. package/dist/src/components/Dropdown/Root/AccountError.d.ts +0 -8
  64. package/dist/src/components/Dropdown/Root/AccountError.d.ts.map +0 -1
  65. package/dist/src/components/Dropdown/Root/AccountError.js +0 -17
  66. package/dist/src/components/Dropdown/Root/AccountError.js.map +0 -1
  67. package/dist/src/components/Dropdown/Root/AccountMusdListing.d.ts +0 -4
  68. package/dist/src/components/Dropdown/Root/AccountMusdListing.d.ts.map +0 -1
  69. package/dist/src/components/Dropdown/Root/AccountMusdListing.js +0 -21
  70. package/dist/src/components/Dropdown/Root/AccountMusdListing.js.map +0 -1
  71. package/dist/src/components/Dropdown/Root/AccountOtherAssets.d.ts +0 -8
  72. package/dist/src/components/Dropdown/Root/AccountOtherAssets.d.ts.map +0 -1
  73. package/dist/src/components/Dropdown/Root/AccountOtherAssets.js +0 -43
  74. package/dist/src/components/Dropdown/Root/AccountOtherAssets.js.map +0 -1
  75. package/dist/src/components/Dropdown/Root/Root.d.ts +0 -8
  76. package/dist/src/components/Dropdown/Root/Root.d.ts.map +0 -1
  77. package/dist/src/components/Dropdown/Root/Root.js +0 -45
  78. package/dist/src/components/Dropdown/Root/Root.js.map +0 -1
  79. package/dist/src/components/Dropdown/Root/WalletAddress.d.ts +0 -4
  80. package/dist/src/components/Dropdown/Root/WalletAddress.d.ts.map +0 -1
  81. package/dist/src/components/Dropdown/Root/WalletAddress.js +0 -66
  82. package/dist/src/components/Dropdown/Root/WalletAddress.js.map +0 -1
  83. package/dist/src/components/Dropdown/Root/WelcomeBlock.d.ts +0 -6
  84. package/dist/src/components/Dropdown/Root/WelcomeBlock.d.ts.map +0 -1
  85. package/dist/src/components/Dropdown/Root/WelcomeBlock.js +0 -88
  86. package/dist/src/components/Dropdown/Root/WelcomeBlock.js.map +0 -1
  87. package/dist/src/components/Dropdown/SlotNumber.d.ts +0 -19
  88. package/dist/src/components/Dropdown/SlotNumber.d.ts.map +0 -1
  89. package/dist/src/components/Dropdown/SlotNumber.js +0 -67
  90. package/dist/src/components/Dropdown/SlotNumber.js.map +0 -1
  91. package/dist/src/components/Dropdown/TestnetTopBanner.d.ts +0 -3
  92. package/dist/src/components/Dropdown/TestnetTopBanner.d.ts.map +0 -1
  93. package/dist/src/components/Dropdown/TestnetTopBanner.js +0 -14
  94. package/dist/src/components/Dropdown/TestnetTopBanner.js.map +0 -1
  95. package/dist/src/components/Dropdown/index.d.ts +0 -3
  96. package/dist/src/components/Dropdown/index.d.ts.map +0 -1
  97. package/dist/src/components/Dropdown/index.js +0 -2
  98. package/dist/src/components/Dropdown/index.js.map +0 -1
  99. package/dist/src/components/index.d.ts +0 -2
  100. package/dist/src/components/index.d.ts.map +0 -1
  101. package/dist/src/components/index.js +0 -2
  102. package/dist/src/components/index.js.map +0 -1
  103. package/src/assets/DefaultAvatar.tsx +0 -74
  104. package/src/components/Dropdown/ConnectedTrigger.tsx +0 -76
  105. package/src/components/Dropdown/Content.tsx +0 -53
  106. package/src/components/Dropdown/DisconnectedTrigger.tsx +0 -36
  107. package/src/components/Dropdown/Dropdown.tsx +0 -100
  108. package/src/components/Dropdown/ListingItem.tsx +0 -176
  109. package/src/components/Dropdown/NestedViewLayout.tsx +0 -87
  110. package/src/components/Dropdown/README.md +0 -41
  111. package/src/components/Dropdown/Receive/Receive.tsx +0 -144
  112. package/src/components/Dropdown/Root/AccountAddressActions.tsx +0 -99
  113. package/src/components/Dropdown/Root/AccountBalance.tsx +0 -69
  114. package/src/components/Dropdown/Root/AccountBtcListing.tsx +0 -53
  115. package/src/components/Dropdown/Root/AccountError.tsx +0 -34
  116. package/src/components/Dropdown/Root/AccountMusdListing.tsx +0 -45
  117. package/src/components/Dropdown/Root/AccountOtherAssets.tsx +0 -85
  118. package/src/components/Dropdown/Root/Root.tsx +0 -77
  119. package/src/components/Dropdown/Root/WalletAddress.tsx +0 -123
  120. package/src/components/Dropdown/Root/WelcomeBlock.tsx +0 -173
  121. package/src/components/Dropdown/SlotNumber.tsx +0 -131
  122. package/src/components/Dropdown/TestnetTopBanner.tsx +0 -32
  123. package/src/components/Dropdown/index.ts +0 -2
  124. package/src/components/index.ts +0 -1
@@ -1,69 +0,0 @@
1
- import React from "react"
2
- import { BlockProps, useStyletron } from "@mezo-org/mezo-clay"
3
- import { formatUnits } from "viem"
4
- import ListingItem from "../ListingItem"
5
- import { useTokensBalances } from "../../../hooks/useTokensBalances"
6
- import { useBorrowData } from "../../../hooks/useBorrowData"
7
- import AccountError from "./AccountError"
8
- import { CONVERSION_RATE_DECIMALS } from "../../../hooks/useAssetsConversionRates"
9
- import { usePassportContext } from "../../../hooks/usePassportContext"
10
-
11
- type AccountBalanceProps = Omit<BlockProps, "children">
12
-
13
- export default function AccountBalance(props: AccountBalanceProps) {
14
- const { overrides, ...restProps } = props
15
- const [, theme] = useStyletron()
16
- const { nativeBalanceRefetchInterval } = usePassportContext()
17
-
18
- const {
19
- data: tokensBalancesData,
20
- isError: isTokensBalancesError,
21
- isPending: isTokensBalancesDataPending,
22
- } = useTokensBalances({
23
- queryOptions: {
24
- staleTime: nativeBalanceRefetchInterval,
25
- refetchInterval: nativeBalanceRefetchInterval,
26
- },
27
- })
28
- const {
29
- data: borrowData,
30
- isError: isBorrowDataError,
31
- isPending: isBorrowDataPending,
32
- } = useBorrowData()
33
-
34
- if (isTokensBalancesDataPending || isBorrowDataPending) {
35
- return <ListingItem isLoading overrides={overrides} />
36
- }
37
-
38
- if (isTokensBalancesError || isBorrowDataError) {
39
- return (
40
- <AccountError
41
- padding={`${theme.sizing.scale500} ${theme.sizing.scale800}`}
42
- topic="account balance"
43
- overrides={overrides}
44
- />
45
- )
46
- }
47
-
48
- const totalBalanceInUsd = Object.values(tokensBalancesData).reduce(
49
- (acc, tokenBalance) => acc + tokenBalance.usd.value,
50
- 0n,
51
- )
52
-
53
- const totalBalanceNumber = Number(
54
- formatUnits(totalBalanceInUsd, CONVERSION_RATE_DECIMALS),
55
- )
56
-
57
- const totalDebtNumber = Number(borrowData.debtInUsd.formatted)
58
-
59
- return (
60
- <ListingItem
61
- label="Total assets"
62
- value={totalBalanceNumber}
63
- subLabel="Total liabilities"
64
- subValue={totalDebtNumber}
65
- overrides={overrides}
66
- {...restProps}
67
- />
68
- )
69
- }
@@ -1,53 +0,0 @@
1
- import React from "react"
2
- import { BitcoinCircle, BlockProps } from "@mezo-org/mezo-clay"
3
- import ListingItem from "../ListingItem"
4
- import { getAsset } from "../../../utils/assets"
5
- import { useBorrowData } from "../../../hooks/useBorrowData"
6
- import { useTokensBalances } from "../../../hooks/useTokensBalances"
7
- import AccountError from "./AccountError"
8
- import { usePassportContext } from "../../../hooks/usePassportContext"
9
-
10
- type AccountBTCListingProps = Omit<BlockProps, "children">
11
-
12
- export default function AccountBTCListing(props: AccountBTCListingProps) {
13
- const { nativeBalanceRefetchInterval } = usePassportContext()
14
-
15
- const {
16
- data: borrowData,
17
- isError: isBorrowDataError,
18
- isPending: isBorrowDataPending,
19
- } = useBorrowData()
20
-
21
- const {
22
- data: tokensBalancesData,
23
- isError: isTokensBalancesError,
24
- isPending: isTokensBalancesPending,
25
- } = useTokensBalances({
26
- queryOptions: {
27
- staleTime: nativeBalanceRefetchInterval,
28
- refetchInterval: nativeBalanceRefetchInterval,
29
- },
30
- })
31
-
32
- if (isTokensBalancesPending || isBorrowDataPending) {
33
- return <ListingItem isLoading />
34
- }
35
-
36
- if (isTokensBalancesError || isBorrowDataError) {
37
- return <AccountError topic="Bitcoin balance" />
38
- }
39
-
40
- const btcBalance = Number(tokensBalancesData.BTC.usd.formatted)
41
- const lockedCollateral = Number(borrowData.collateral.usd.formatted)
42
-
43
- return (
44
- <ListingItem
45
- icon={<BitcoinCircle />}
46
- label={getAsset("BTC").name}
47
- value={btcBalance}
48
- subLabel="Locked collateral"
49
- subValue={lockedCollateral}
50
- {...props}
51
- />
52
- )
53
- }
@@ -1,34 +0,0 @@
1
- import React from "react"
2
- import {
3
- BlockProps,
4
- LabelSmall,
5
- mergeOverrides,
6
- useStyletron,
7
- } from "@mezo-org/mezo-clay"
8
-
9
- type AccountErrorProps = {
10
- topic: string
11
- } & BlockProps
12
-
13
- export default function AccountError(props: AccountErrorProps) {
14
- const { topic, overrides, ...restProps } = props
15
-
16
- const [, theme] = useStyletron()
17
-
18
- return (
19
- <LabelSmall
20
- padding={`${theme.sizing.scale600} ${theme.sizing.scale800}`}
21
- color="negative"
22
- overrides={mergeOverrides(overrides, {
23
- Block: {
24
- style: {
25
- lineHeight: theme.sizing.scale700,
26
- },
27
- },
28
- })}
29
- {...restProps}
30
- >
31
- An error occured loading {topic}.
32
- </LabelSmall>
33
- )
34
- }
@@ -1,45 +0,0 @@
1
- import React from "react"
2
- import { BlockProps, MUsdCircle02 } from "@mezo-org/mezo-clay"
3
- import ListingItem from "../ListingItem"
4
- import { getAsset } from "../../../utils/assets"
5
- import { useBorrowData } from "../../../hooks/useBorrowData"
6
- import { useTokensBalances } from "../../../hooks/useTokensBalances"
7
- import AccountError from "./AccountError"
8
-
9
- export default function AccountMusdListing(
10
- props: Omit<BlockProps, "children">,
11
- ) {
12
- const {
13
- data: borrowData,
14
- isError: isBorrowDataError,
15
- isPending: isBorrowDataPending,
16
- } = useBorrowData()
17
-
18
- const {
19
- data: tokensBalancesData,
20
- isError: isTokensBalancesError,
21
- isPending: isTokensBalancesPending,
22
- } = useTokensBalances()
23
-
24
- if (isBorrowDataPending || isTokensBalancesPending) {
25
- return <ListingItem isLoading />
26
- }
27
-
28
- if (isBorrowDataError || isTokensBalancesError) {
29
- return <AccountError topic="MUSD balance" />
30
- }
31
-
32
- const musdBalance = Number(tokensBalancesData.MUSD.usd.formatted)
33
- const lockedCollateral = Number(borrowData.debtInUsd.formatted)
34
-
35
- return (
36
- <ListingItem
37
- icon={<MUsdCircle02 />}
38
- label={getAsset("MUSD").name}
39
- value={musdBalance}
40
- subLabel="Borrowed"
41
- subValue={lockedCollateral}
42
- {...props}
43
- />
44
- )
45
- }
@@ -1,85 +0,0 @@
1
- import React from "react"
2
- import {
3
- useStyletron,
4
- CoinsStacked02,
5
- mergeOverrides,
6
- BlockProps,
7
- } from "@mezo-org/mezo-clay"
8
- import { formatUnits } from "viem"
9
- import ListingItem from "../ListingItem"
10
- import { useTokensBalances } from "../../../hooks/useTokensBalances"
11
- import AccountError from "./AccountError"
12
- import { CONVERSION_RATE_DECIMALS } from "../../../hooks/useAssetsConversionRates"
13
-
14
- type AccountOtherAssetsProps = {
15
- onClick?: () => void
16
- } & Omit<BlockProps, "children">
17
-
18
- export default function AccountOtherAssets(props: AccountOtherAssetsProps) {
19
- const { onClick, overrides, ...restProps } = props
20
-
21
- const [, theme] = useStyletron()
22
-
23
- const {
24
- data: tokensBalancesData,
25
- isPending: isTokensBalancesPending,
26
- isError: isTokensBalancesError,
27
- } = useTokensBalances()
28
-
29
- if (isTokensBalancesPending) {
30
- return <ListingItem isLoading overrides={overrides} />
31
- }
32
-
33
- if (isTokensBalancesError) {
34
- return (
35
- <AccountError
36
- topic="other assets"
37
- paddingTop={theme.sizing.scale100}
38
- paddingBottom={theme.sizing.scale100}
39
- overrides={overrides}
40
- />
41
- )
42
- }
43
-
44
- const otherAssets = Object.values(tokensBalancesData)
45
- .filter((asset) => !["BTC", "MUSD"].includes(asset.symbol))
46
- .filter((asset) => asset.value > 0n)
47
-
48
- const assetsCount = otherAssets.length
49
- const totalAssetsInUsd = Number(
50
- formatUnits(
51
- otherAssets.reduce((total, asset) => total + asset.usd.value, 0n),
52
- CONVERSION_RATE_DECIMALS,
53
- ),
54
- )
55
-
56
- let label = "No other assets"
57
- if (assetsCount === 1) label = "1 more asset"
58
- if (assetsCount > 1) label = `${assetsCount} more assets`
59
-
60
- return (
61
- <ListingItem
62
- icon={<CoinsStacked02 color={theme.colors.contentPrimary} />}
63
- label={label}
64
- value={totalAssetsInUsd}
65
- overrides={mergeOverrides(
66
- {
67
- Block: {
68
- props: {
69
- $as: "button",
70
- onClick,
71
- },
72
- style: {
73
- borderWidth: 0,
74
- cursor: "pointer",
75
- backgroundColor: "transparent",
76
- minHeight: "56px",
77
- },
78
- },
79
- },
80
- overrides,
81
- )}
82
- {...restProps}
83
- />
84
- )
85
- }
@@ -1,77 +0,0 @@
1
- import { Block, Button, LogOut01, useStyletron } from "@mezo-org/mezo-clay"
2
- import React, { useCallback } from "react"
3
- import { useDisconnect } from "wagmi"
4
- import { useSignOut } from "../../../hooks"
5
- import WalletAddress from "./WalletAddress"
6
- import AccountBalance from "./AccountBalance"
7
- import WelcomeBlock from "./WelcomeBlock"
8
- import AccountAddressActions from "./AccountAddressActions"
9
- import AccountOtherAssets from "./AccountOtherAssets"
10
- import AccountBtcListing from "./AccountBtcListing"
11
- import AccountMusdListing from "./AccountMusdListing"
12
-
13
- type RootProps = {
14
- onSignOut?: () => void
15
- onOtherAssetsClick?: () => void
16
- }
17
-
18
- export default function Root(props: RootProps) {
19
- const { onSignOut, onOtherAssetsClick } = props
20
-
21
- const [, theme] = useStyletron()
22
-
23
- const { disconnect } = useDisconnect()
24
- const { signOut } = useSignOut()
25
-
26
- const handleLogOut = useCallback(() => {
27
- if (onSignOut) {
28
- onSignOut()
29
- return
30
- }
31
- signOut()
32
- disconnect()
33
- }, [signOut, disconnect, onSignOut])
34
-
35
- const overridesWithDivider = {
36
- Block: {
37
- style: {
38
- borderBottomWidth: "1px",
39
- borderBottomStyle: "solid",
40
- borderBottomColor: theme.colors.borderOpaque,
41
- },
42
- },
43
- }
44
-
45
- return (
46
- <Block display="inline-flex" flexDirection="column">
47
- <WelcomeBlock />
48
-
49
- <AccountAddressActions overrides={overridesWithDivider} />
50
-
51
- <WalletAddress overrides={overridesWithDivider} />
52
-
53
- <AccountBalance overrides={overridesWithDivider} />
54
-
55
- <AccountBtcListing />
56
-
57
- <AccountMusdListing />
58
-
59
- <AccountOtherAssets
60
- onClick={onOtherAssetsClick}
61
- overrides={overridesWithDivider}
62
- />
63
-
64
- <Block padding={theme.sizing.scale300}>
65
- <Button
66
- size="small"
67
- shape="pill"
68
- kind="tertiary"
69
- startEnhancer={<LogOut01 color="currentColor" size={16} />}
70
- onClick={handleLogOut}
71
- >
72
- Sign out
73
- </Button>
74
- </Block>
75
- </Block>
76
- )
77
- }
@@ -1,123 +0,0 @@
1
- import {
2
- BitcoinCircle,
3
- Block,
4
- BlockProps,
5
- EthCircle,
6
- LabelMedium,
7
- LabelXSmall,
8
- mergeOverrides,
9
- MonoLabelXSmall,
10
- useStyletron,
11
- } from "@mezo-org/mezo-clay"
12
- import React, { useState } from "react"
13
- import { useCopyToClipboard } from "usehooks-ts"
14
- import { usePassportContext } from "../../../hooks/usePassportContext"
15
- import { getAddressExplorerUrl, trimAddress } from "../../../utils/address"
16
- import { useWalletAccount } from "../../../hooks/useWalletAccount"
17
-
18
- export default function WalletAddress(props: BlockProps) {
19
- const { overrides, ...restProps } = props
20
- const { walletAddress, networkFamily } = useWalletAccount()
21
- const { environment = "mainnet" } = usePassportContext()
22
- const [, theme] = useStyletron()
23
- const [, copy] = useCopyToClipboard()
24
- const [isCopiedMessageVisible, setIsCopiedMessageVisible] = useState(false)
25
-
26
- const handleCopyAddress = () => {
27
- copy(walletAddress!)
28
- setIsCopiedMessageVisible(true)
29
-
30
- setTimeout(() => {
31
- setIsCopiedMessageVisible(false)
32
- }, 2000)
33
- }
34
-
35
- const blockExplorerUrl = getAddressExplorerUrl(
36
- walletAddress!,
37
- networkFamily,
38
- environment === "testnet",
39
- )
40
- const trimmedAddress = trimAddress(walletAddress!)
41
- const AccountIcon = networkFamily === "bitcoin" ? BitcoinCircle : EthCircle
42
-
43
- return (
44
- <Block
45
- as="button"
46
- onClick={handleCopyAddress}
47
- display="flex"
48
- alignItems="center"
49
- backgroundColor="transparent"
50
- padding={`${theme.sizing.scale800} ${theme.sizing.scale700}`}
51
- overrides={mergeOverrides(
52
- {
53
- Block: {
54
- style: {
55
- gap: theme.sizing.scale700,
56
- borderWidth: 0,
57
- cursor: "pointer",
58
- ":hover": {
59
- backgroundColor: theme.colors.backgroundTertiary,
60
- },
61
- },
62
- },
63
- },
64
- overrides,
65
- )}
66
- {...restProps}
67
- >
68
- <AccountIcon
69
- color={theme.colors.black}
70
- size={theme.sizing.scale800}
71
- overrides={{
72
- Svg: {
73
- style: {
74
- backgroundColor: theme.colors.black,
75
- overflow: "hidden",
76
- borderRadius: theme.borders.radius200,
77
- },
78
- },
79
- }}
80
- />
81
- <Block
82
- display="flex"
83
- flexDirection="column"
84
- alignItems="flex-start"
85
- overrides={{
86
- Block: {
87
- style: {
88
- gap: theme.sizing.scale100,
89
- },
90
- },
91
- }}
92
- >
93
- <LabelMedium>Connected Wallet</LabelMedium>
94
-
95
- {isCopiedMessageVisible ? (
96
- <LabelXSmall color={theme.colors.contentSecondary}>
97
- Copied address to clipboard
98
- </LabelXSmall>
99
- ) : (
100
- <Block
101
- as="a"
102
- color={theme.colors.contentSecondary}
103
- href={blockExplorerUrl}
104
- target="_blank"
105
- overrides={{
106
- Block: {
107
- style: {
108
- color: "inherit",
109
- textDecoration: "none",
110
- ":hover": {
111
- textDecoration: "underline",
112
- },
113
- },
114
- },
115
- }}
116
- >
117
- <MonoLabelXSmall>{trimmedAddress}</MonoLabelXSmall>
118
- </Block>
119
- )}
120
- </Block>
121
- </Block>
122
- )
123
- }
@@ -1,173 +0,0 @@
1
- import {
2
- Block,
3
- BlockProps,
4
- HeadingMedium,
5
- LabelLarge,
6
- Mats,
7
- mergeOverrides,
8
- Skeleton,
9
- useStyletron,
10
- } from "@mezo-org/mezo-clay"
11
- import React from "react"
12
- import DefaultAvatar from "../../../assets/DefaultAvatar"
13
- import { useGetCurrentAccount } from "../../../hooks"
14
- import { formatNumberToCompactString } from "../../../utils/numbers"
15
- import AccountError from "./AccountError"
16
- import { usePassportContext } from "../../../hooks/usePassportContext"
17
- import SlotNumber from "../SlotNumber"
18
-
19
- const DOT_DELIMITER_REGEX = /(?=\.)/
20
-
21
- function WelcomeBlockSkeleton() {
22
- const [, theme] = useStyletron()
23
-
24
- return (
25
- <Block
26
- display="flex"
27
- alignItems="center"
28
- padding={theme.sizing.scale600}
29
- paddingTop={theme.sizing.scale900}
30
- paddingBottom={theme.sizing.scale800}
31
- overrides={{
32
- Block: {
33
- style: {
34
- gap: theme.sizing.scale600,
35
- },
36
- },
37
- }}
38
- >
39
- <Skeleton
40
- animation
41
- width={theme.sizing.scale1200}
42
- height={theme.sizing.scale1200}
43
- overrides={{
44
- Root: {
45
- style: {
46
- borderRadius: "100%",
47
- },
48
- },
49
- }}
50
- />
51
-
52
- <Block
53
- display="flex"
54
- flexDirection="column"
55
- flex={1}
56
- overrides={{
57
- Block: {
58
- style: {
59
- gap: theme.sizing.scale100,
60
- },
61
- },
62
- }}
63
- >
64
- <Skeleton animation width="60%" height={theme.sizing.scale900} />
65
- <Skeleton animation width="40%" height={theme.sizing.scale800} />
66
- </Block>
67
- </Block>
68
- )
69
- }
70
-
71
- type WelcomeBlockProps = BlockProps
72
-
73
- export default function WelcomeBlock(props: WelcomeBlockProps) {
74
- const { overrides, ...restProps } = props
75
- const { accountDataRefetchInterval } = usePassportContext()
76
-
77
- const { data, isError, isPending } = useGetCurrentAccount({
78
- staleTime: accountDataRefetchInterval,
79
- refetchInterval: accountDataRefetchInterval,
80
- })
81
- const [, theme] = useStyletron()
82
-
83
- if (isError) {
84
- return (
85
- <AccountError
86
- padding={theme.sizing.scale600}
87
- paddingTop={theme.sizing.scale900}
88
- paddingBottom={theme.sizing.scale800}
89
- marginBottom={theme.sizing.scale300}
90
- topic="account information"
91
- />
92
- )
93
- }
94
-
95
- if (isPending) {
96
- return <WelcomeBlockSkeleton />
97
- }
98
-
99
- const [mezoId, mezoIdSuffix] = (data.mezoId ?? "").split(DOT_DELIMITER_REGEX)
100
-
101
- return (
102
- <Block
103
- display="flex"
104
- alignItems="center"
105
- paddingLeft={theme.sizing.scale600}
106
- paddingRight={theme.sizing.scale600}
107
- paddingTop={theme.sizing.scale900}
108
- paddingBottom={theme.sizing.scale800}
109
- overrides={mergeOverrides(overrides, {
110
- Block: {
111
- style: {
112
- gap: theme.sizing.scale600,
113
- },
114
- },
115
- })}
116
- {...restProps}
117
- >
118
- <Block
119
- as={DefaultAvatar}
120
- width={theme.sizing.scale1200}
121
- height={theme.sizing.scale1200}
122
- overrides={{
123
- Block: {
124
- style: {
125
- borderRadius: "100%",
126
- },
127
- },
128
- }}
129
- />
130
-
131
- <Block display="flex" flexDirection="column">
132
- {mezoId && mezoIdSuffix && (
133
- <HeadingMedium as="span">
134
- <Block as="span">{mezoId}</Block>
135
- <Block as="span" color={theme.colors.contentSecondary}>
136
- {mezoIdSuffix}
137
- </Block>
138
- </HeadingMedium>
139
- )}
140
-
141
- <Block
142
- display="flex"
143
- alignItems="center"
144
- overrides={{
145
- Block: {
146
- style: {
147
- gap: theme.sizing.scale100,
148
- },
149
- },
150
- }}
151
- >
152
- <Mats
153
- size={theme.sizing.scale600}
154
- overrides={{
155
- Svg: {
156
- style: {
157
- margin: theme.sizing.scale100, // To reduce gap
158
- },
159
- },
160
- }}
161
- />
162
-
163
- <LabelLarge color={theme.colors.contentPrimary}>
164
- <SlotNumber formatFunction={formatNumberToCompactString}>
165
- {data.totalMats}
166
- </SlotNumber>{" "}
167
- mats
168
- </LabelLarge>
169
- </Block>
170
- </Block>
171
- </Block>
172
- )
173
- }