diff --git a/.eslintrc.cjs b/.eslintrc.cjs index d6c9537..92d403a 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -11,7 +11,7 @@ module.exports = { plugins: ['react-refresh'], rules: { 'react-refresh/only-export-components': [ - 'warn', + 'off', { allowConstantExport: true }, ], }, diff --git a/src/components/Chat/TipTap.tsx b/src/components/Chat/TipTap.tsx index a420581..450c01c 100644 --- a/src/components/Chat/TipTap.tsx +++ b/src/components/Chat/TipTap.tsx @@ -470,7 +470,12 @@ export default ({ }, [enableMentions]) return ( -
+
{ + const pollingInterval = 30000; + const startTime = Date.now(); + + const sleep = (ms) => new Promise((res) => setTimeout(res, ms)); + + while (Date.now() - startTime < timeoutMs) { + + const rewardShares = await getRewardShares(myAddress); + const findRewardShare = rewardShares?.find( + (item) => + item?.recipient === myAddress && item?.mintingAccount === myAddress + ); + + if (findRewardShare) { + return true; // Exit early if found + } + + + await sleep(pollingInterval); // Wait before the next poll + } + + throw new Error("Timeout waiting for reward share confirmation"); + }; + const startMinting = async () => { try { setIsLoading(true); @@ -355,12 +383,20 @@ export const Minting = ({ addMintingAccount(privateRewardShare); } else { await createRewardShare(accountInfo?.publicKey, myAddress); + setShowWaitDialog(true) + await waitUntilRewardShareIsConfirmed() + await showNext({ + message: '' + }) const privateRewardShare = await getRewardSharePrivateKey( accountInfo?.publicKey ); + setShowWaitDialog(false) addMintingAccount(privateRewardShare); + } } catch (error) { + setShowWaitDialog(false) setInfo({ type: "error", message: error?.message || "Unable to start minting", @@ -724,63 +760,7 @@ export const Minting = ({ )} - {txList?.filter( - (item) => - !item?.done && - (item?.type === "remove-rewardShare" || - item?.type === "add-rewardShare") - )?.length > 0 && ( - <> - - Ongoing transactions - - - {txList - ?.filter( - (item) => - !item.done && - (item?.type === "remove-rewardShare" || - item?.type === "add-rewardShare") - ) - ?.map((txItem) => ( - - {txItem?.type === "remove-rewardShare" && ( - Reward share being removed - )} - {txItem?.type === "add-rewardShare" && ( - Reward share being created - )} - - Recipient: {handleNames(txItem?.recipient)} - - - - - ))} - - - - )} {!isPartOfMintingGroup && ( )} +{showWaitDialog && ( + + + {isShowNext ? "Confirmed" : "Please Wait"} + + + {!isShowNext && ( + + Confirming creation of rewardshare on chain. Please be patient, this could take up to 90 seconds. + + )} + {isShowNext && ( + + Rewardshare confirmed. Please click Next. + + )} + + + + + + + + + + )} +