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} - - +
+ +

{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) => (