From 6009fbdbd7b19c5b4ab7db73661e216d101296c1 Mon Sep 17 00:00:00 2001 From: "P. Reis" Date: Wed, 29 May 2024 21:37:26 -0300 Subject: [PATCH] feat: create ZapInvoiceModal and use it --- src/features/ui/components/modal-root.tsx | 2 + .../ui/components/modals/zap-invoice.tsx | 46 +++++++++++++++++++ src/features/ui/util/async-components.ts | 1 + .../zap/components/zap-pay-request-form.tsx | 3 +- 4 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 src/features/ui/components/modals/zap-invoice.tsx diff --git a/src/features/ui/components/modal-root.tsx b/src/features/ui/components/modal-root.tsx index 3f0743df2..3bda6fd3e 100644 --- a/src/features/ui/components/modal-root.tsx +++ b/src/features/ui/components/modal-root.tsx @@ -43,6 +43,7 @@ import { VideoModal, EditRuleModal, ZapPayRequestModal, + ZapInvoiceModal, } from 'soapbox/features/ui/util/async-components'; import ModalLoading from './modal-loading'; @@ -89,6 +90,7 @@ const MODAL_COMPONENTS: Record> = { 'SELECT_BOOKMARK_FOLDER': SelectBookmarkFolderModal, 'UNAUTHORIZED': UnauthorizedModal, 'VIDEO': VideoModal, + 'ZAP_INVOICE': ZapInvoiceModal, 'ZAP_PAY_REQUEST': ZapPayRequestModal, }; diff --git a/src/features/ui/components/modals/zap-invoice.tsx b/src/features/ui/components/modals/zap-invoice.tsx new file mode 100644 index 000000000..962f0ce1c --- /dev/null +++ b/src/features/ui/components/modals/zap-invoice.tsx @@ -0,0 +1,46 @@ +import { QRCodeCanvas } from 'qrcode.react'; +import React from 'react'; +import { FormattedMessage, defineMessages, useIntl } from 'react-intl'; + +import { closeModal } from 'soapbox/actions/modals'; +import CopyableInput from 'soapbox/components/copyable-input'; +import { Modal, Button } from 'soapbox/components/ui'; +import { useAppDispatch } from 'soapbox/hooks'; + +import type { Account as AccountEntity } from 'soapbox/types/entities'; + +const messages = defineMessages({ + zap_open_wallet: { id: 'zap.open_wallet', defaultMessage: 'Open Wallet' }, +}); + +interface IZapInvoice{ + account: AccountEntity; + invoice: string; + onClose:(type?: string) => void; +} + +const ZapInvoiceModal: React.FC = ({ account, invoice, onClose }) => { + const intl = useIntl(); + const dispatch = useAppDispatch(); + + const onClickClose = () => { + onClose('ZAP_INVOICE'); + dispatch(closeModal('ZAP_PAY_REQUEST')); + }; + + const renderTitle = () => { + return ; + }; + + return ( + + + + +