diff --git a/src/components/Simulator/WalletHome/AddressPill.tsx b/src/components/Simulator/WalletHome/AddressPill.tsx
index bd8d77a4051..66bde434cbb 100644
--- a/src/components/Simulator/WalletHome/AddressPill.tsx
+++ b/src/components/Simulator/WalletHome/AddressPill.tsx
@@ -1,6 +1,7 @@
import React from "react"
import { MdContentCopy } from "react-icons/md"
-import { Flex, type FlexProps, Icon, Text } from "@chakra-ui/react"
+
+import { Flex, type FlexProps } from "@/components/ui/flex"
import { FAKE_DEMO_ADDRESS } from "../constants"
import { NotificationPopover } from "../NotificationPopover"
@@ -13,21 +14,11 @@ export const AddressPill = ({ ...btnProps }: AddressPillProps) => (
content="Share your address (public identifier) from your own wallet when finished here"
>
- {FAKE_DEMO_ADDRESS}
-
+ {FAKE_DEMO_ADDRESS}
+
)
diff --git a/src/components/Simulator/WalletHome/CategoryTabs.tsx b/src/components/Simulator/WalletHome/CategoryTabs.tsx
index 496134aef12..8b5634d1fa6 100644
--- a/src/components/Simulator/WalletHome/CategoryTabs.tsx
+++ b/src/components/Simulator/WalletHome/CategoryTabs.tsx
@@ -1,7 +1,7 @@
-import React from "react"
-import { Flex, type FlexProps, Text } from "@chakra-ui/react"
+import { Button } from "@/components/ui/buttons/Button"
+import { Flex, type FlexProps } from "@/components/ui/flex"
-import { Button } from "../../Buttons"
+import { cn } from "@/lib/utils/cn"
type CategoryTabsProps = FlexProps & {
categories: Array
@@ -12,31 +12,32 @@ export const CategoryTabs = ({
categories,
activeIndex = 0,
setActiveIndex,
+ className,
...flexProps
}: CategoryTabsProps) => (
-
- {categories.map((category, index) =>
- setActiveIndex ? (
+
+ {categories.map((category, index) => {
+ const isActiveIndex = activeIndex === index
+ const fontWeightClass = isActiveIndex && "font-bold"
+ return setActiveIndex ? (
) : (
-
+
{category}
-
+
)
- )}
+ })}
)
diff --git a/src/components/Simulator/WalletHome/NFTList.tsx b/src/components/Simulator/WalletHome/NFTList.tsx
index 29c072b4f4d..e9eff523ecc 100644
--- a/src/components/Simulator/WalletHome/NFTList.tsx
+++ b/src/components/Simulator/WalletHome/NFTList.tsx
@@ -1,7 +1,7 @@
-import React from "react"
-import { Box, Flex, type FlexProps, Text } from "@chakra-ui/react"
+import { TwImage as Image } from "@/components/Image"
+import { Flex, type FlexProps } from "@/components/ui/flex"
-import { Image } from "@/components/Image"
+import { cn } from "@/lib/utils/cn"
import type { NFT } from "./interfaces"
@@ -11,26 +11,21 @@ type NFTListProps = FlexProps & {
nfts: Array
}
export const NFTList = ({ nfts, ...flexProps }: NFTListProps) => {
- const size = useBreakpointValue({ base: 20, md: 24 })
+ const size = useBreakpointValue({
+ base: "max-w-20 max-h-20",
+ md: "max-w-24 max-h-24",
+ })
return (
-
+
{nfts.length ? (
nfts.map(({ title, image }) => (
-
-
-
- {title}
-
-
+
))
) : (
- No NFTs yet!
+ No NFTs yet!
)}
)
diff --git a/src/components/Simulator/WalletHome/SendReceiveButton.tsx b/src/components/Simulator/WalletHome/SendReceiveButton.tsx
index fdef8d9be05..947541cdba1 100644
--- a/src/components/Simulator/WalletHome/SendReceiveButton.tsx
+++ b/src/components/Simulator/WalletHome/SendReceiveButton.tsx
@@ -1,28 +1,25 @@
-import React from "react"
-import {
- type As,
- Box,
- Grid,
- Icon,
- Text,
- type TextProps,
-} from "@chakra-ui/react"
+import { type ReactNode } from "react"
+import type { IconType } from "react-icons/lib"
+
+import { Button } from "@/components/ui/buttons/Button"
+
+import { cn } from "@/lib/utils/cn"
-import { Button } from "../../Buttons"
import { ClickAnimation } from "../ClickAnimation"
import { PulseAnimation } from "../PulseAnimation"
-type SendReceiveButtonProps = Pick & {
- icon: As
+type SendReceiveButtonProps = {
+ icon: IconType
isHighlighted: boolean
isDisabled: boolean
onClick?: () => void
isAnimated?: boolean
+ children: ReactNode
}
export const SendReceiveButton = ({
children,
- icon,
+ icon: Icon,
isHighlighted,
isDisabled,
onClick,
@@ -30,51 +27,37 @@ export const SendReceiveButton = ({
}: SendReceiveButtonProps) => (
)
diff --git a/src/components/Simulator/WalletHome/SendReceiveButtons.tsx b/src/components/Simulator/WalletHome/SendReceiveButtons.tsx
index 210cbf74ae5..85421baef7b 100644
--- a/src/components/Simulator/WalletHome/SendReceiveButtons.tsx
+++ b/src/components/Simulator/WalletHome/SendReceiveButtons.tsx
@@ -1,6 +1,7 @@
import React from "react"
import { PiPaperPlaneRightFill } from "react-icons/pi"
-import { Flex } from "@chakra-ui/react"
+
+import { Flex } from "@/components/ui/flex"
import { QrCodeIcon } from "../icons"
import type { SimulatorNav } from "../interfaces"
@@ -26,7 +27,7 @@ export const SendReceiveButtons = ({
const highlightSend = !nav || !disableSend
const highlightReceive = !nav || !disableReceive
return (
-
+
diff --git a/src/components/Simulator/WalletHome/TokenBalanceItem.tsx b/src/components/Simulator/WalletHome/TokenBalanceItem.tsx
index 9b0ed1a945f..b95a3924c3f 100644
--- a/src/components/Simulator/WalletHome/TokenBalanceItem.tsx
+++ b/src/components/Simulator/WalletHome/TokenBalanceItem.tsx
@@ -1,17 +1,13 @@
-import React from "react"
-import { Box, Flex, type FlexProps, Text } from "@chakra-ui/react"
+import { Flex } from "@/components/ui/flex"
import { getMaxFractionDigitsUsd } from "../utils"
import { TokenBalance } from "./interfaces"
-type TokenBalanceItemProps = FlexProps & {
+type TokenBalanceItemProps = {
item: TokenBalance
}
-export const TokenBalanceItem = ({
- item,
- ...flexProps
-}: TokenBalanceItemProps) => {
+export const TokenBalanceItem = ({ item }: TokenBalanceItemProps) => {
const { name, ticker, amount, usdConversion, Icon } = item
const usdAmount = amount * usdConversion
const usdValue = Intl.NumberFormat("en-US", {
@@ -24,23 +20,15 @@ export const TokenBalanceItem = ({
maximumFractionDigits: 5,
}).format(amount)
return (
-
+
-
- {name}
-
-
- {usdValue}
-
+ {name}
+
+
{usdValue}
+
{tokenAmount} {ticker}
-
-
+
+
)
}
diff --git a/src/components/Simulator/WalletHome/TokenBalanceList.tsx b/src/components/Simulator/WalletHome/TokenBalanceList.tsx
index c8c095cbc3e..e473ccbebc9 100644
--- a/src/components/Simulator/WalletHome/TokenBalanceList.tsx
+++ b/src/components/Simulator/WalletHome/TokenBalanceList.tsx
@@ -1,18 +1,14 @@
-import React from "react"
-import { Flex, type FlexProps } from "@chakra-ui/react"
+import { Flex } from "@/components/ui/flex"
import { type TokenBalance } from "./interfaces"
import { TokenBalanceItem } from "./TokenBalanceItem"
-type TokenBalanceListProps = FlexProps & {
+type TokenBalanceListProps = {
tokenBalances: Array
}
-export const TokenBalanceList = ({
- tokenBalances,
- ...flexProps
-}: TokenBalanceListProps) => {
+export const TokenBalanceList = ({ tokenBalances }: TokenBalanceListProps) => {
return (
-
+
{tokenBalances.map((item) => (
))}
diff --git a/src/components/Simulator/WalletHome/WalletBalance.tsx b/src/components/Simulator/WalletHome/WalletBalance.tsx
index 511ceec0cab..b5031c88136 100644
--- a/src/components/Simulator/WalletHome/WalletBalance.tsx
+++ b/src/components/Simulator/WalletHome/WalletBalance.tsx
@@ -1,36 +1,28 @@
import React from "react"
-import { Box, type BoxProps, Flex, Text } from "@chakra-ui/react"
+
+import { Flex } from "@/components/ui/flex"
import { getMaxFractionDigitsUsd } from "../utils"
import { AddressPill } from "./AddressPill"
-type WalletBalanceProps = BoxProps & {
+type WalletBalanceProps = {
usdAmount?: number
}
-export const WalletBalance = ({
- usdAmount = 0,
- ...boxProps
-}: WalletBalanceProps) => (
-
-
- Your total
-
-
+export const WalletBalance = ({ usdAmount = 0 }: WalletBalanceProps) => (
+
+
Your total
+
{Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
notation: "compact",
maximumFractionDigits: getMaxFractionDigitsUsd(usdAmount),
}).format(usdAmount)}
-
-
+
+
-
+
)
diff --git a/src/components/Simulator/WalletHome/__stories__/WalletHome.stories.tsx b/src/components/Simulator/WalletHome/__stories__/WalletHome.stories.tsx
new file mode 100644
index 00000000000..ac4924e837b
--- /dev/null
+++ b/src/components/Simulator/WalletHome/__stories__/WalletHome.stories.tsx
@@ -0,0 +1,67 @@
+import type { Meta, StoryObj } from "@storybook/react"
+import { fn } from "@storybook/test"
+
+import { defaultTokenBalances } from "../../constants"
+import { Phone } from "../../Phone"
+import { Template } from "../../Template"
+import { WalletHome as Component } from ".."
+
+import NFTImage from "@/public/images/deep-panic.png"
+
+const meta = {
+ title: "Molecules / Display Content / Simulator / WalletHome",
+ component: Component,
+ parameters: {
+ layout: "fullscreen",
+ },
+ decorators: [
+ (Story) => (
+
+ ),
+ ],
+} satisfies Meta
+
+export default meta
+
+type Story = StoryObj
+
+export const Default: Story = {}
+
+export const ActiveButton: Story = {
+ args: {
+ isEnabled: [false, true],
+ nav: {
+ openPath: fn(),
+ progressStepper: fn(),
+ regressStepper: fn(),
+ step: 0,
+ totalSteps: 2,
+ },
+ },
+}
+
+export const NFTTab: Story = {
+ args: {
+ tokenBalances: defaultTokenBalances,
+ activeTabIndex: 1,
+ setActiveTabIndex: fn(),
+ nfts: [
+ {
+ title: "Cool art",
+ image: NFTImage,
+ },
+ ],
+ },
+}
+export const NFTTabEmpty: Story = {
+ args: {
+ ...NFTTab.args,
+ nfts: [],
+ },
+}
diff --git a/src/components/Simulator/WalletHome/index.tsx b/src/components/Simulator/WalletHome/index.tsx
index 2a81c72873e..1cd446c4b21 100644
--- a/src/components/Simulator/WalletHome/index.tsx
+++ b/src/components/Simulator/WalletHome/index.tsx
@@ -1,5 +1,6 @@
-import React, { type Dispatch, type SetStateAction } from "react"
-import { Flex } from "@chakra-ui/react"
+import { type Dispatch, type SetStateAction } from "react"
+
+import { Flex } from "@/components/ui/flex"
import { defaultTokenBalances } from "../constants"
import type { SimulatorNav } from "../interfaces"
@@ -35,34 +36,12 @@ export const WalletHome = ({
0
)
return (
-
-
+
+
-
+
(
-
-
-
-
-
- ),
- ],
-} satisfies Meta
-
-export default meta
-
-export const Phone: StoryObj = {
- render: () => (
-
-
-
Centered Child Content
-
-
- ),
-}
diff --git a/src/components/Simulator/screens/SendReceive/SendFromContacts.tsx b/src/components/Simulator/screens/SendReceive/SendFromContacts.tsx
index c1e3fc91f5f..49022ad1a7a 100644
--- a/src/components/Simulator/screens/SendReceive/SendFromContacts.tsx
+++ b/src/components/Simulator/screens/SendReceive/SendFromContacts.tsx
@@ -45,7 +45,7 @@ export const SendFromContacts = ({
{CONTACTS.map(({ name, lastAction }, i) => (