diff --git a/src/components/claim/ClaimModal.tsx b/src/components/claim/ClaimModal.tsx index 6bf00c533..718a93b0b 100644 --- a/src/components/claim/ClaimModal.tsx +++ b/src/components/claim/ClaimModal.tsx @@ -12,7 +12,7 @@ import { useActiveWeb3React } from '../../hooks/web3' import { useModalOpen, useToggleSelfClaimModal } from '../../state/application/hooks' import { ApplicationModal } from '../../state/application/reducer' import { useClaimCallback, useUserClaimData, useUserUnclaimedAmount } from 'state/claim/hooks' -import { useUserHasSubmittedClaim } from '../../state/transactions/hooks' +import { useUserHasSubmittedClaim } from 'state/transactions/hooks' import { CloseIcon, CustomLightSpinner, ExternalLink, TYPE, UniTokenAnimated } from '../../theme' import { ExplorerDataType, getExplorerLink } from '../../utils/getExplorerLink' import { ButtonPrimary } from '../Button' diff --git a/src/custom/state/claim/hooks/index.ts b/src/custom/state/claim/hooks/index.ts index f3f7feb2e..036cf6960 100644 --- a/src/custom/state/claim/hooks/index.ts +++ b/src/custom/state/claim/hooks/index.ts @@ -257,7 +257,7 @@ export function useUserClaims(account: Account): UserClaims | null { const createMockTx = (data: number[]) => ({ hash: '0x' + Math.round(Math.random() * 10).toString() + 'AxAFjAhG89G89AfnLK3CCxAfnLKQffQ782G89AfnLK3CCxxx123FF', summary: `Claimed ${Math.random() * 3337} vCOW`, - claim: { recipient: '0xAdbfSdkjf87asdbgkxf283asf787123d' }, + claim: { recipient: '0x97EC4fcD5F78cA6f6E4E1EAC6c0Ec8421bA518B7' }, data, // add the claim indices to state }) diff --git a/src/custom/state/transactions/hooks.ts b/src/custom/state/transactions/hooks.ts new file mode 100644 index 000000000..c0c578b16 --- /dev/null +++ b/src/custom/state/transactions/hooks.ts @@ -0,0 +1,22 @@ +import { useMemo } from 'react' +import { useAllClaimingTransactions } from 'state/enhancedTransactions/hooks' +import { EnhancedTransactionDetails } from 'state/enhancedTransactions/reducer' + +export * from '@src/state/transactions/hooks' + +// watch for submissions to claim +// return null if not done loading, return undefined if not found +export function useUserHasSubmittedClaim(account?: string): { + claimSubmitted: boolean + claimTxn: EnhancedTransactionDetails | undefined +} { + const pendingClaims = useAllClaimingTransactions() + const claimTxn = useMemo( + () => + // find one that is both the user's claim, AND not mined + pendingClaims.find((claim) => claim.claim?.recipient === account), + [account, pendingClaims] + ) + + return { claimSubmitted: !!claimTxn, claimTxn } +}