@daimo/pay
Version:
Seamless crypto payments. Onboard users from any chain, any coin into your app with one click.
47 lines (44 loc) • 2.55 kB
JavaScript
import { jsxs, jsx } from 'react/jsx-runtime';
import { ROUTES } from '../../../constants/routes.js';
import { usePayContext } from '../../../hooks/usePayContext.js';
import { PageContent, ModalContent, ModalH1 } from '../../Common/Modal/styles.js';
import { DaimoPayOrderMode } from '@daimo/pay-common';
import { useDaimoPay } from '../../../hooks/useDaimoPay.js';
import { OptionsList } from '../../Common/OptionsList/index.js';
import { OrderHeader } from '../../Common/OrderHeader/index.js';
import SelectAnotherMethodButton from '../../Common/SelectAnotherMethodButton/index.js';
const SelectDepositAddressChain = () => {
const { setRoute, paymentState } = usePayContext();
const pay = useDaimoPay();
const { order } = pay;
const { isDepositFlow, setSelectedDepositAddressOption, depositAddressOptions, } = paymentState;
return (jsxs(PageContent, { children: [jsx(OrderHeader, { minified: true }), !depositAddressOptions.loading &&
depositAddressOptions.options?.length === 0 && (jsxs(ModalContent, { style: {
display: "flex",
alignItems: "center",
justifyContent: "center",
paddingTop: 16,
paddingBottom: 16,
}, children: [jsx(ModalH1, { children: "Chains unavailable." }), jsx(SelectAnotherMethodButton, {})] })), jsx(OptionsList, { requiredSkeletons: 4, isLoading: depositAddressOptions.loading, options: depositAddressOptions.options?.map((option) => {
return {
id: option.id,
title: option.id,
icons: [option.logoURI],
disabled: option.minimumUsd > 0 &&
order?.mode === DaimoPayOrderMode.HYDRATED &&
order.usdValue < option.minimumUsd,
onClick: () => {
setSelectedDepositAddressOption(option);
const meta = { event: "click-option", option: option.id };
if (isDepositFlow) {
setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT, meta);
}
else {
setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, meta);
}
},
};
}) ?? [] })] }));
};
export { SelectDepositAddressChain as default };
//# sourceMappingURL=index.js.map