Skip to content

Commit 1152b3f

Browse files
committed
open modal for testing
1 parent 614c59d commit 1152b3f

File tree

4 files changed

+75
-1
lines changed

4 files changed

+75
-1
lines changed

examples/react/src/components/Connected.tsx

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import React, { type ComponentProps, useEffect } from 'react'
2424
import { encodeFunctionData, formatUnits, parseAbi, toHex } from 'viem'
2525
import { useAccount, useChainId, usePublicClient, useSendTransaction, useWalletClient, useWriteContract } from 'wagmi'
2626

27+
import { CustomCheckout } from './CustomCheckout'
28+
2729
import { sponsoredContractAddresses } from '../config'
2830
import { messageToSign } from '../constants'
2931
import { ERC_1155_SALE_CONTRACT } from '../constants/erc1155-sale-contract'
@@ -35,8 +37,8 @@ const searchParams = new URLSearchParams(location.search)
3537
const isDebugMode = searchParams.has('debug')
3638

3739
export const Connected = () => {
40+
const [isOpenCustomCheckout, setIsOpenCustomCheckout] = React.useState(false)
3841
const { setOpenConnectModal } = useOpenConnectModal()
39-
4042
const { address } = useAccount()
4143
const { openSwapModal } = useSwapModal()
4244
const { setOpenWalletModal } = useOpenWalletModal()
@@ -633,6 +635,11 @@ export const Connected = () => {
633635
description="Set orderbook order id, token contract address and token id to test checkout (on Polygon)"
634636
onClick={onClickCheckout}
635637
/>
638+
<CardButton
639+
title="Custom Checkout"
640+
description="Hook for creating custom checkout UIs"
641+
onClick={() => setIsOpenCustomCheckout(true)}
642+
/>
636643
</>
637644
)}
638645
<CardButton
@@ -808,6 +815,23 @@ export const Connected = () => {
808815
</Modal>
809816
)}
810817
</AnimatePresence>
818+
<AnimatePresence>
819+
{isOpenCustomCheckout && (
820+
<Modal
821+
contentProps={{
822+
style: {
823+
maxWidth: '400px',
824+
height: 'auto',
825+
...getModalPositionCss('center')
826+
}
827+
}}
828+
scroll={false}
829+
onClose={() => setIsOpenCustomCheckout(false)}
830+
>
831+
<CustomCheckout />
832+
</Modal>
833+
)}
834+
</AnimatePresence>
811835
</>
812836
)
813837
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { Text, Button, Spinner } from '@0xsequence/design-system'
2+
import { useCheckoutUI } from '@0xsequence/checkout'
3+
4+
export const CustomCheckout = () => {
5+
const { orderSummary, creditCardPayment, cryptoPayment } = useCheckoutUI()
6+
7+
console.log('orderSummary', orderSummary)
8+
console.log('creditCardPayment', creditCardPayment)
9+
console.log('cryptoPayment', cryptoPayment)
10+
11+
return (
12+
<div className="flex pt-16 pb-8 px-6 gap-2 flex-col">
13+
<Text color="primary">Custom Checkout</Text>
14+
</div>
15+
)
16+
}
17+
18+
export default CustomCheckout

packages/checkout/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export { useTransferFundsModal } from './hooks/useTransferFundsModal'
99
export { useCheckoutWhitelistStatus } from './hooks/useCheckoutWhitelistStatus'
1010
export { useSwapModal } from './hooks/useSwapModal'
1111
export { useERC1155SaleContractCheckout, useERC1155SaleContractPaymentModal } from './hooks/useERC1155SaleContractCheckout'
12+
export { useCheckoutUI } from './hooks/useCheckoutUI'
1213

1314
export { type CheckoutSettings } from './contexts/CheckoutModal'
1415
export { type AddFundsSettings } from './contexts/AddFundsModal'

packages/connect/src/styles.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,9 @@ export const styles = String.raw`
302302
.my-4 {
303303
margin-block: calc(var(--spacing) * 4);
304304
}
305+
.mt-0 {
306+
margin-top: calc(var(--spacing) * 0);
307+
}
305308
.mt-0\.5 {
306309
margin-top: calc(var(--spacing) * 0.5);
307310
}
@@ -383,6 +386,9 @@ export const styles = String.raw`
383386
.inline-flex {
384387
display: inline-flex;
385388
}
389+
.table {
390+
display: table;
391+
}
386392
.aspect-square {
387393
aspect-ratio: 1 / 1;
388394
}
@@ -476,6 +482,9 @@ export const styles = String.raw`
476482
.min-h-full {
477483
min-height: 100%;
478484
}
485+
.w-1 {
486+
width: calc(var(--spacing) * 1);
487+
}
479488
.w-1\/2 {
480489
width: calc(1/2 * 100%);
481490
}
@@ -551,6 +560,9 @@ export const styles = String.raw`
551560
.w-screen {
552561
width: 100vw;
553562
}
563+
.max-w-1 {
564+
max-width: calc(var(--spacing) * 1);
565+
}
554566
.max-w-1\/2 {
555567
max-width: calc(1/2 * 100%);
556568
}
@@ -575,12 +587,21 @@ export const styles = String.raw`
575587
.min-w-full {
576588
min-width: 100%;
577589
}
590+
.flex-shrink {
591+
flex-shrink: 1;
592+
}
578593
.shrink-0 {
579594
flex-shrink: 0;
580595
}
596+
.flex-grow {
597+
flex-grow: 1;
598+
}
581599
.grow {
582600
flex-grow: 1;
583601
}
602+
.border-collapse {
603+
border-collapse: collapse;
604+
}
584605
.origin-top {
585606
transform-origin: top;
586607
}
@@ -922,6 +943,9 @@ export const styles = String.raw`
922943
.pt-0 {
923944
padding-top: calc(var(--spacing) * 0);
924945
}
946+
.pt-1 {
947+
padding-top: calc(var(--spacing) * 1);
948+
}
925949
.pt-1\.5 {
926950
padding-top: calc(var(--spacing) * 1.5);
927951
}
@@ -1191,6 +1215,9 @@ export const styles = String.raw`
11911215
.ring-border-normal {
11921216
--tw-ring-color: var(--seq-color-border-normal);
11931217
}
1218+
.ring-white {
1219+
--tw-ring-color: var(--color-white);
1220+
}
11941221
.ring-white\/10 {
11951222
--tw-ring-color: color-mix(in oklab, var(--color-white) 10%, transparent);
11961223
}
@@ -1226,6 +1253,10 @@ export const styles = String.raw`
12261253
-webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
12271254
backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
12281255
}
1256+
.backdrop-filter {
1257+
-webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
1258+
backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
1259+
}
12291260
.transition {
12301261
transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter;
12311262
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));

0 commit comments

Comments
 (0)