Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI: Initiate Minting step #22

Merged
merged 29 commits into from
Feb 21, 2024
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
5e37a22
Restyle `InitiateMinting` step component
kpyszkowski Jan 9, 2024
54b0d14
Merge branch 'main' into ui/initiate-minting-step
kpyszkowski Jan 15, 2024
8c0a464
Merge branch 'main' into ui/initiate-minting-step
kpyszkowski Jan 25, 2024
33fc74c
Extract Badge into separate variant component
kpyszkowski Jan 25, 2024
8df3bcc
Restyle TransactionModal components
kpyszkowski Jan 25, 2024
fc95f89
Add `Toast` component
kpyszkowski Jan 29, 2024
0fa0b6d
Adjust `Toast` component
kpyszkowski Jan 29, 2024
4470f97
Apply minor `Toast` component adjustments
kpyszkowski Jan 30, 2024
a2f9c2f
Add custom icon prop for `Toast` component
kpyszkowski Jan 30, 2024
f375aae
Remove console log
kpyszkowski Feb 13, 2024
5a34940
Remove `TbtcMintingConfirmationModal`
kpyszkowski Feb 13, 2024
b8c4689
Fix token balance value
kpyszkowski Feb 13, 2024
eaf3dd2
Merge branch 'main' into ui/initiate-minting-step
kpyszkowski Feb 13, 2024
e47b828
Rename properties
kpyszkowski Feb 13, 2024
70f914f
Update `MintingTransactionDetails` items labels
kpyszkowski Feb 13, 2024
cde3533
Update props names
kpyszkowski Feb 13, 2024
72ae3dd
Remove accidentially added import
kpyszkowski Feb 13, 2024
ca0583d
Fix file after merge
kpyszkowski Feb 13, 2024
eea3164
Fix `Alert` border-radius values
kpyszkowski Feb 13, 2024
84b0980
Merge branch 'main' into ui/initiate-minting-step
kpyszkowski Feb 15, 2024
9edd93f
Merge branch 'main' into ui/initiate-minting-step
michalsmiarowski Feb 19, 2024
8b10c60
Remove reduntant props as suggested
kpyszkowski Feb 19, 2024
be0cee9
Merge branch 'main' into ui/initiate-minting-step
kpyszkowski Feb 20, 2024
fbe9d15
Add file accidentialy removed while merging
kpyszkowski Feb 20, 2024
068fb84
Add accidentialy removed prop
kpyszkowski Feb 20, 2024
33962c7
Resolve `validateDOMNesting` error
kpyszkowski Feb 20, 2024
8605bdc
Refactor `TransactionDetailsItem` styles
kpyszkowski Feb 20, 2024
6af81dd
Apply minor style adjustments
kpyszkowski Feb 20, 2024
8604a7e
Update `onPreviousStepClick` callback
kpyszkowski Feb 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions src/components/LabeledBadge/LabeledBadge.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { Badge, BadgeProps, Flex, Icon, Text } from "@chakra-ui/react"
import { FC } from "react"
import { IconType } from "react-icons"

interface LabeledBadgeProps extends BadgeProps {
label: string
icon?: IconType
}

const LabeledBadge: FC<LabeledBadgeProps> = ({
label,
icon,
children,
...restProps
}) => {
return (
<Flex
as={Badge}
align="center"
color="hsl(0, 0%, 53%)"
fontSize="xs"
lineHeight={1}
fontWeight="medium"
p={2}
pr={3}
{...restProps}
>
<Icon as={icon} mr={2} w={3.5} h={3.5} />
{label}&nbsp;
<Text as="span" color="hsl(26, 96%, 65%)" textTransform="lowercase">
{children}
</Text>
</Flex>
)
}

export default LabeledBadge
1 change: 1 addition & 0 deletions src/components/LabeledBadge/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default as LabeledBadge } from "./LabeledBadge"
38 changes: 9 additions & 29 deletions src/components/Modal/SelectWalletModal/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -84,34 +84,14 @@ const SelectWalletModal: FC<BaseModalProps> = () => {
setWalletToConnect(walletType)
}

return (
<>
<ModalHeader
as={Flex}
align="center"
justify="space-between"
p={6}
mb={4}
>
<Text as="h2" fontSize="xl" lineHeight={6} fontWeight="medium">
Connect a Wallet
</Text>
<ModalCloseButton position="relative" inset={0} />
</ModalHeader>

{walletToConnect === null ? (
<InitialWalletSelection
walletOptions={walletOptions}
onSelect={onClick}
/>
) : (
<ConnectWallet
walletType={walletToConnect}
goBack={goBack}
onClose={closeModal}
/>
)}
</>
return walletToConnect === null ? (
<InitialWalletSelection walletOptions={walletOptions} onSelect={onClick} />
) : (
<ConnectWallet
walletType={walletToConnect}
goBack={goBack}
onClose={closeModal}
/>
)
}

Expand All @@ -136,4 +116,4 @@ const ConnectWallet: FC<{
}
}

export default withBaseModal(SelectWalletModal)
export default withBaseModal(SelectWalletModal, "Connect a Wallet")
123 changes: 0 additions & 123 deletions src/components/Modal/TbtcMintingConfirmationModal/index.tsx

This file was deleted.

148 changes: 58 additions & 90 deletions src/components/Modal/TransactionModal/TransactionFailed.tsx
Original file line number Diff line number Diff line change
@@ -1,27 +1,25 @@
import { FC } from "react"
import {
Alert,
AlertDescription,
AlertIcon,
AlertTitle,
Box,
Button,
HStack,
Stack,
ModalBody,
ModalFooter,
ModalHeader,
useDisclosure,
VStack,
Button,
Icon,
} from "@chakra-ui/react"
import TransactionError from "../../../static/icons/TransactionError"
import { BodySm } from "@threshold-network/components"
import { ExternalHref } from "../../../enums"
import { BaseModalProps } from "../../../types"
import ViewInBlockExplorer from "../../ViewInBlockExplorer"
import { ExplorerDataType } from "../../../utils/createEtherscanLink"
import withBaseModal from "../withBaseModal"
import Link from "../../Link"
import ModalCloseButton from "../ModalCloseButton"
import {
HiOutlinePlus as PlusIcon,
HiOutlineMinus as MinusIcon,
} from "react-icons/hi"

interface TransactionFailedProps extends BaseModalProps {
transactionHash?: string
Expand All @@ -32,98 +30,68 @@ interface TransactionFailedProps extends BaseModalProps {
const TransactionFailed: FC<TransactionFailedProps> = ({
error,
isExpandableError,
closeModal,
transactionHash,
}) => {
const { isOpen, onToggle } = useDisclosure()

const errorTitle = "Error"

return (
<>
<ModalHeader>Error</ModalHeader>
<ModalCloseButton />
<ModalBody>
<Box mb={6}>
<Alert
status="error"
mb={4}
zIndex={999}
height={isOpen ? "280px" : undefined}
flexDirection="column"
overflowY="auto"
css={{
"&::-webkit-scrollbar": {
width: "4px",
marginRight: "4px",
},
"&::-webkit-scrollbar-track": {
width: "6px",
},
"&::-webkit-scrollbar-thumb": {
background: "red",
borderRadius: "24px",
},
}}
<ModalBody p={0}>
<VStack spacing={0}>
<VStack
align="flex-start"
alignSelf="stretch"
spacing={4}
p={6}
pt={0}
>
<HStack alignSelf="flex-start" mb={isOpen ? 6 : 0}>
<Alert status="error" alignSelf="stretch">
<AlertIcon />
<AlertTitle display="flex">
{isExpandableError ? (
<Stack>
<BodySm wordBreak="break-word">{errorTitle}</BodySm>
<BodySm
onClick={onToggle}
ml={4}
textDecoration="underline"
cursor="pointer"
minW="80px"
>
Show {isOpen ? "Less" : "More"}
</BodySm>
</Stack>
) : (
errorTitle
)}
</AlertTitle>
</HStack>
{isOpen && (
<AlertDescription maxWidth="100%">
<BodySm mb={8}>{error}</BodySm>
<Link
isExternal
href={ExternalHref.thresholdDiscord}
fontWeight="bold"
>
Get help on discord
</Link>
</AlertDescription>
)}
</Alert>
{!isOpen && (
<Box borderRadius="md" bg="gray.50" pt={12} pb={8} mb={8}>
<HStack position="relative" justify="center" mb={8}>
<TransactionError boxSize="120px" zIndex={0} />
</HStack>
<AlertTitle display="flex">Transaction error occured</AlertTitle>
</Alert>
{isExpandableError ? (
<Button
variant="outline"
size="sm"
borderWidth={0}
onClick={onToggle}
leftIcon={<Icon as={isOpen ? MinusIcon : PlusIcon} />}
>
Show {isOpen ? "less" : "more"}
</Button>
) : null}
</VStack>
{isExpandableError && isOpen ? (
<Box p={6} pb={0} borderTop="1px solid" borderColor="inherit">
<Box
as="pre"
bg="hsl(0, 0%, 12%)"
color="hsla(0, 0%, 100%, 80%)"
p={4}
whiteSpace="pre-wrap"
fontFamily="monospace"
maxH="xs"
overflowY="scroll"
>
{error}
</Box>
</Box>
)}
</Box>
{transactionHash && (
<BodySm>
<ViewInBlockExplorer
id={transactionHash}
type={ExplorerDataType.TRANSACTION}
text="View"
/>
transaction on Etherscan
</BodySm>
)}
) : null}
</VStack>
</ModalBody>
<ModalFooter>
<Button onClick={closeModal}>Dismiss</Button>
<ModalFooter p={6}>
<BodySm>
Get help on&nbsp;
<Link
isExternal
href={ExternalHref.thresholdDiscord}
color="brand.100"
>
Discord
</Link>
</BodySm>
</ModalFooter>
</>
)
}

export default withBaseModal(TransactionFailed)
export default withBaseModal(TransactionFailed, "Error")
Loading
Loading