diff --git a/src/features/ui/components/modals/zap-split/zap-split-modal.tsx b/src/features/ui/components/modals/zap-split/zap-split-modal.tsx new file mode 100644 index 000000000..c61bdf392 --- /dev/null +++ b/src/features/ui/components/modals/zap-split/zap-split-modal.tsx @@ -0,0 +1,89 @@ +import { QRCodeCanvas } from 'qrcode.react'; +import React, { useEffect, useState } from 'react'; +import { FormattedMessage, defineMessages, useIntl } from 'react-intl'; + +import { zap } from 'soapbox/actions/interactions'; +import CopyableInput from 'soapbox/components/copyable-input'; +import { Modal, Button, Stack, HStack } from 'soapbox/components/ui'; +import ZapSplit from 'soapbox/features/zap/components/zap-split'; +import { useAppDispatch } from 'soapbox/hooks'; + +import type { Status as StatusEntity, Account as AccountEntity } from 'soapbox/types/entities'; + +const messages = defineMessages({ + zap_open_wallet: { id: 'zap.open_wallet', defaultMessage: 'Open Wallet' }, + zap_next: { id: 'zap.next', defaultMessage: 'Next' }, +}); + +interface IZapSplitModal { + account: AccountEntity; + status?: StatusEntity; + onClose:(type?: string) => void; + zapAmount: number; +} + +const ZapSplitModal: React.FC = ({ account, status, onClose, zapAmount = 50 }) => { + const dispatch = useAppDispatch(); + const intl = useIntl(); + const hasZapSplit = true; + const [invoice, setInvoice] = useState(null); + + + const onClickClose = () => { + onClose('ZAP_SPLIT'); + }; + + const renderTitle = () => { + return ; + }; + + const renderTitleQr = () => { + return ; + }; + + const handleSubmit = async () => { + const zapComment = ''; + const invoice = await dispatch(zap(account, status, zapAmount * 1000, zapComment)); + + if (!invoice) { + return; + } + + setInvoice(invoice); + }; + + useEffect(() => { + handleSubmit(); + }, []); + + + return ( + +
+ + + {invoice &&
+ +

+ {renderTitleQr()} +

+ +
+ +
+ + +
} +
+
+ ); +}; + +export default ZapSplitModal;