@ape.swap/bonds-sdk 5.1.5 → 5.1.7-test.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/components/BondFilters/BondFilters.js +2 -15
- package/dist/components/BondFilters/BondFilters.js.map +1 -1
- package/dist/components/ChainOptionList/ChainOptionsButtons.js +3 -16
- package/dist/components/ChainOptionList/ChainOptionsButtons.js.map +1 -1
- package/dist/components/ChainOptionList/ChainOptionsList.js +4 -16
- package/dist/components/ChainOptionList/ChainOptionsList.js.map +1 -1
- package/dist/components/CircularProgress/index.js +0 -14
- package/dist/components/CircularProgress/index.js.map +1 -1
- package/dist/components/ConnectButton/AppKitButton.js +0 -14
- package/dist/components/ConnectButton/AppKitButton.js.map +1 -1
- package/dist/components/ConnectButton/RainbowKitButton.js +0 -14
- package/dist/components/ConnectButton/RainbowKitButton.js.map +1 -1
- package/dist/components/ConnectButton/index.js +0 -14
- package/dist/components/ConnectButton/index.js.map +1 -1
- package/dist/components/ConnectSolanaWalletButton/ConnectSolanaWalletButton.js +3 -16
- package/dist/components/ConnectSolanaWalletButton/ConnectSolanaWalletButton.js.map +1 -1
- package/dist/components/ConnectoToVmBanners/ConnectToEvmBanner.js +1 -14
- package/dist/components/ConnectoToVmBanners/ConnectToEvmBanner.js.map +1 -1
- package/dist/components/ConnectoToVmBanners/ConnectToSolanaBanner.js +2 -15
- package/dist/components/ConnectoToVmBanners/ConnectToSolanaBanner.js.map +1 -1
- package/dist/components/CustomClaimModals/AbondModal.js +1 -13
- package/dist/components/CustomClaimModals/AbondModal.js.map +1 -1
- package/dist/components/CustomClaimModals/OabondModal.js +1 -13
- package/dist/components/CustomClaimModals/OabondModal.js.map +1 -1
- package/dist/components/CustomClaimModals/PmusdModal.js +1 -14
- package/dist/components/CustomClaimModals/PmusdModal.js.map +1 -1
- package/dist/components/FavIcons/AddFavToken.js +0 -12
- package/dist/components/FavIcons/AddFavToken.js.map +1 -1
- package/dist/components/FavIcons/FavFilter.js +1 -15
- package/dist/components/FavIcons/FavFilter.js.map +1 -1
- package/dist/components/LoadingSpinner/index.js +0 -14
- package/dist/components/LoadingSpinner/index.js.map +1 -1
- package/dist/components/MenuSelect/MenuSelect.js +1 -13
- package/dist/components/MenuSelect/MenuSelect.js.map +1 -1
- package/dist/components/MenuSelect/RecommendationSelector.js +0 -14
- package/dist/components/MenuSelect/RecommendationSelector.js.map +1 -1
- package/dist/components/NetworkFilter/index.js +4 -15
- package/dist/components/NetworkFilter/index.js.map +1 -1
- package/dist/components/PlaceholderMonkey/index.js +1 -14
- package/dist/components/PlaceholderMonkey/index.js.map +1 -1
- package/dist/components/ProgressBar/ProgressBarWrapper.js +2 -11
- package/dist/components/ProgressBar/ProgressBarWrapper.js.map +1 -1
- package/dist/components/ProgressiveImage/index.js +0 -12
- package/dist/components/ProgressiveImage/index.js.map +1 -1
- package/dist/components/SlippageModal/index.js +3 -15
- package/dist/components/SlippageModal/index.js.map +1 -1
- package/dist/components/StepBubble/index.js +2 -14
- package/dist/components/StepBubble/index.js.map +1 -1
- package/dist/components/Toast/index.js +4 -13
- package/dist/components/Toast/index.js.map +1 -1
- package/dist/components/TokenInfoAndName/index.js +4 -16
- package/dist/components/TokenInfoAndName/index.js.map +1 -1
- package/dist/components/TokenSelectorModal/TokenRow.js +1 -14
- package/dist/components/TokenSelectorModal/TokenRow.js.map +1 -1
- package/dist/components/TokenSelectorModal/index.d.ts +1 -2
- package/dist/components/TokenSelectorModal/index.js +3 -15
- package/dist/components/TokenSelectorModal/index.js.map +1 -1
- package/dist/components/TokenSelectorPanel/index.js +5 -17
- package/dist/components/TokenSelectorPanel/index.js.map +1 -1
- package/dist/components/Tooltip/ButtonsRow.js +2 -15
- package/dist/components/Tooltip/ButtonsRow.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +0 -13
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/YouTooltip/YouTooltip.js +0 -14
- package/dist/components/YouTooltip/YouTooltip.js.map +1 -1
- package/dist/components/uikit-sdk/LoadingDots/index.js +0 -14
- package/dist/components/uikit-sdk/LoadingDots/index.js.map +1 -1
- package/dist/components/uikit-sdk/Modal/ModalHeader.js +0 -2
- package/dist/components/uikit-sdk/Modal/ModalHeader.js.map +1 -1
- package/dist/components/uikit-sdk/Toggle/index.js +1 -1
- package/dist/components/uikit-sdk/Toggle/index.js.map +1 -1
- package/dist/components/uikit-sdk/TokenImage/index.js +2 -13
- package/dist/components/uikit-sdk/TokenImage/index.js.map +1 -1
- package/dist/config/abi/launchBond_v2_4_1.json.js +2 -2
- package/dist/constants/solanaConstants.js +5 -5
- package/dist/constants/solanaConstants.js.map +1 -1
- package/dist/contexts/ModalContext.js +0 -12
- package/dist/contexts/ModalContext.js.map +1 -1
- package/dist/contexts/Popups.js +0 -14
- package/dist/contexts/Popups.js.map +1 -1
- package/dist/state/bonds/useUserBondsPreTGE.js +3 -3
- package/dist/state/bonds/utils.js +2 -2
- package/dist/utils/bondPriceHelpers.d.ts +14 -0
- package/dist/utils/bondPriceHelpers.js +36 -0
- package/dist/utils/bondPriceHelpers.js.map +1 -0
- package/dist/utils/displayHelpers.js +1 -1
- package/dist/utils/displayHelpers.js.map +1 -1
- package/dist/views/Bonds/Bonds.js +2 -15
- package/dist/views/Bonds/Bonds.js.map +1 -1
- package/dist/views/Bonds/components/BondRows/BondRow.js +4 -16
- package/dist/views/Bonds/components/BondRows/BondRow.js.map +1 -1
- package/dist/views/Bonds/components/BondRows/ChainTitle.js +3 -15
- package/dist/views/Bonds/components/BondRows/ChainTitle.js.map +1 -1
- package/dist/views/Bonds/components/BondRows/SoldOutRows.js +1 -13
- package/dist/views/Bonds/components/BondRows/SoldOutRows.js.map +1 -1
- package/dist/views/Bonds/components/BondsMenu/BondsMenu.js +1 -14
- package/dist/views/Bonds/components/BondsMenu/BondsMenu.js.map +1 -1
- package/dist/views/Bonds/components/BonusComponents/BonusComponent.js +5 -17
- package/dist/views/Bonds/components/BonusComponents/BonusComponent.js.map +1 -1
- package/dist/views/Bonds/components/BonusComponents/BonusTable.js +1 -15
- package/dist/views/Bonds/components/BonusComponents/BonusTable.js.map +1 -1
- package/dist/views/Bonds/components/BuyAgainRow/index.js +0 -12
- package/dist/views/Bonds/components/BuyAgainRow/index.js.map +1 -1
- package/dist/views/Bonds/components/ChainBanner/ChainBanner.js +1 -14
- package/dist/views/Bonds/components/ChainBanner/ChainBanner.js.map +1 -1
- package/dist/views/Bonds/components/HotBondCards/HotBondCard.js +5 -17
- package/dist/views/Bonds/components/HotBondCards/HotBondCard.js.map +1 -1
- package/dist/views/Bonds/components/HotBondCards/index.js +3 -16
- package/dist/views/Bonds/components/HotBondCards/index.js.map +1 -1
- package/dist/views/Bonds/components/LoadingSkeleton/LoadingSkeleton.js +1 -12
- package/dist/views/Bonds/components/LoadingSkeleton/LoadingSkeleton.js.map +1 -1
- package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.js +0 -14
- package/dist/views/Bonds/components/RecommendationCards/SmallRecommendationCard.js.map +1 -1
- package/dist/views/Bonds/components/RecommendationCards/index.js +1 -14
- package/dist/views/Bonds/components/RecommendationCards/index.js.map +1 -1
- package/dist/views/Bonds/utils.d.ts +1 -14
- package/dist/views/Bonds/utils.js +2 -32
- package/dist/views/Bonds/utils.js.map +1 -1
- package/dist/views/BuyBond/BuyBondModal.js +0 -13
- package/dist/views/BuyBond/BuyBondModal.js.map +1 -1
- package/dist/views/BuyBond/BuyComponent.js +5 -16
- package/dist/views/BuyBond/BuyComponent.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentPreTGE.js +9 -18
- package/dist/views/BuyBond/BuyComponentPreTGE.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentSolana.js +28 -32
- package/dist/views/BuyBond/BuyComponentSolana.js.map +1 -1
- package/dist/views/BuyBond/ParticipationSuccessful.js +4 -15
- package/dist/views/BuyBond/ParticipationSuccessful.js.map +1 -1
- package/dist/views/BuyBond/components/BondCards/BondCards.js +4 -16
- package/dist/views/BuyBond/components/BondCards/BondCards.js.map +1 -1
- package/dist/views/BuyBond/components/BondCards/BondCardsPreTGE.js +3 -16
- package/dist/views/BuyBond/components/BondCards/BondCardsPreTGE.js.map +1 -1
- package/dist/views/BuyBond/components/BondModalHeader.js +4 -17
- package/dist/views/BuyBond/components/BondModalHeader.js.map +1 -1
- package/dist/views/BuyBond/components/BondModalMinTierHeader.js +2 -15
- package/dist/views/BuyBond/components/BondModalMinTierHeader.js.map +1 -1
- package/dist/views/BuyBond/components/Estimations.js +5 -18
- package/dist/views/BuyBond/components/Estimations.js.map +1 -1
- package/dist/views/BuyBond/components/ExpandedViewButton.js +1 -15
- package/dist/views/BuyBond/components/ExpandedViewButton.js.map +1 -1
- package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js +4 -15
- package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js.map +1 -1
- package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js +2 -14
- package/dist/views/BuyBond/components/NewRateModal/NewRateModal.js.map +1 -1
- package/dist/views/BuyBond/components/NoBonusModal/NoBonusModal.js +1 -12
- package/dist/views/BuyBond/components/NoBonusModal/NoBonusModal.js.map +1 -1
- package/dist/views/BuyBond/components/ProjectDescription.js +0 -12
- package/dist/views/BuyBond/components/ProjectDescription.js.map +1 -1
- package/dist/views/FullBondsView/FullBondsView.d.ts +0 -4
- package/dist/views/FullBondsView/FullBondsView.js +3 -21
- package/dist/views/FullBondsView/FullBondsView.js.map +1 -1
- package/dist/views/LifiModal/LifiModal.js +1 -13
- package/dist/views/LifiModal/LifiModal.js.map +1 -1
- package/dist/views/ProjectView/ProjectView.js +0 -13
- package/dist/views/ProjectView/ProjectView.js.map +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.js +0 -14
- package/dist/views/ProjectView/components/BondLeaderboard/components/SalesTable.js.map +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.js +0 -14
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopSaleCard.js.map +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopThreeSalesCards.js +0 -14
- package/dist/views/ProjectView/components/BondLeaderboard/components/TopThreeSalesCards.js.map +1 -1
- package/dist/views/ProjectView/components/BondLeaderboard/index.js +1 -15
- package/dist/views/ProjectView/components/BondLeaderboard/index.js.map +1 -1
- package/dist/views/ProjectView/components/BondStats/index.js +0 -12
- package/dist/views/ProjectView/components/BondStats/index.js.map +1 -1
- package/dist/views/ProjectView/components/NavPanel/index.js +1 -15
- package/dist/views/ProjectView/components/NavPanel/index.js.map +1 -1
- package/dist/views/ProjectView/components/PriceChart/index.js +2 -15
- package/dist/views/ProjectView/components/PriceChart/index.js.map +1 -1
- package/dist/views/ProjectView/components/ProjectInfo/index.js +0 -14
- package/dist/views/ProjectView/components/ProjectInfo/index.js.map +1 -1
- package/dist/views/ProjectView/components/RecommendationCards/index.js +1 -14
- package/dist/views/ProjectView/components/RecommendationCards/index.js.map +1 -1
- package/dist/views/SingleBond/SingleBond.js +1 -13
- package/dist/views/SingleBond/SingleBond.js.map +1 -1
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js +1 -14
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js.map +1 -1
- package/dist/views/TransactionModal/TransactionModal.js +3 -15
- package/dist/views/TransactionModal/TransactionModal.js.map +1 -1
- package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js +2 -13
- package/dist/views/YourBonds/components/ClaimAll/ClaimAllModal.js.map +1 -1
- package/dist/views/YourBonds/components/ClaimAll/index.js +0 -14
- package/dist/views/YourBonds/components/ClaimAll/index.js.map +1 -1
- package/dist/views/YourBonds/components/UserBondRow/PreTGEActions.js +3 -16
- package/dist/views/YourBonds/components/UserBondRow/PreTGEActions.js.map +1 -1
- package/dist/views/YourBonds/components/UserBondRow/UserBondRow.js +1 -12
- package/dist/views/YourBonds/components/UserBondRow/UserBondRow.js.map +1 -1
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowPreTGE.js +1 -13
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowPreTGE.js.map +1 -1
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowSolana.js +7 -17
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowSolana.js.map +1 -1
- package/dist/views/YourBonds/components/YourBondsMenu/YourBondsMenu.js +0 -13
- package/dist/views/YourBonds/components/YourBondsMenu/YourBondsMenu.js.map +1 -1
- package/dist/views/YourBondsModal/YourBondsModal.js +6 -16
- package/dist/views/YourBondsModal/YourBondsModal.js.map +1 -1
- package/dist/views/YourBondsModal/components/Actions/Actions.js +0 -13
- package/dist/views/YourBondsModal/components/Actions/Actions.js.map +1 -1
- package/dist/views/YourBondsModal/components/Actions/ActionsSolana.js +6 -17
- package/dist/views/YourBondsModal/components/Actions/ActionsSolana.js.map +1 -1
- package/dist/views/YourBondsModal/components/LinkShare/LinkShare.js +1 -13
- package/dist/views/YourBondsModal/components/LinkShare/LinkShare.js.map +1 -1
- package/dist/views/YourBondsModal/components/NFTImage/NFTImage.js +4 -13
- package/dist/views/YourBondsModal/components/NFTImage/NFTImage.js.map +1 -1
- package/dist/views/YourBondsModal/components/Recommendations/CardRecommendation.js +3 -16
- package/dist/views/YourBondsModal/components/Recommendations/CardRecommendation.js.map +1 -1
- package/dist/views/YourBondsModal/components/Recommendations/RecSkeleton.js +0 -12
- package/dist/views/YourBondsModal/components/Recommendations/RecSkeleton.js.map +1 -1
- package/dist/views/YourBondsModal/components/Recommendations/Recommendations.js +2 -15
- package/dist/views/YourBondsModal/components/Recommendations/Recommendations.js.map +1 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferAction.js +0 -13
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferAction.js.map +1 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSolana.js +1 -14
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSolana.js.map +1 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/index.js +2 -12
- package/dist/views/YourBondsModal/components/TransferBondModal/index.js.map +1 -1
- package/dist/views/YourBondsModal/components/YourBondModalHeader/YourBondModalHeader.js +6 -16
- package/dist/views/YourBondsModal/components/YourBondModalHeader/YourBondModalHeader.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/uikit-sdk/Button/index.d.ts +0 -2
- package/dist/components/uikit-sdk/Input/index.d.ts +0 -2
- package/dist/components/uikit-sdk/Select/index.d.ts +0 -2
- package/dist/components/uikit-sdk/Tag/index.d.ts +0 -1
- package/dist/components/uikit-sdk/index.d.ts +0 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YourBondsModal.js","sources":["../../../src/views/YourBondsModal/YourBondsModal.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { UserBill } from '../../types/yourbonds'\nimport TokenImage from '../../components/uikit-sdk/TokenImage'\nimport { Button, Flex, Modal, Svg, Text, TooltipBubble } from '../../components/uikit-sdk'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport { UserBillTooltipText } from '../../config/constants/tooltips'\nimport Recommendations from './components/Recommendations/Recommendations'\nimport {\n claimable,\n claimableUSD,\n claimed,\n claimedUSD,\n getPendingVestingString,\n getPercentageVested,\n getTimeLeftForFullyVested,\n pending,\n pendingUSD,\n} from '../../utils/displayHelpers'\nimport { getTimePeriods } from '../../utils/getTimePeriods'\nimport SafeHTMLComponent from '../../components/SafeHTMLComponent'\nimport ProgressBar from '../../components/ProgressBar/ProgressBar'\nimport ProgressBarWrapper from '../../components/ProgressBar/ProgressBarWrapper'\nimport NFTImage from './components/NFTImage/NFTImage'\nimport YourBondModalHeader from './components/YourBondModalHeader/YourBondModalHeader'\nimport Actions from './components/Actions/Actions'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport ActionsSolana from './components/Actions/ActionsSolana'\n\nconst YourBondsModal = ({\n userBill,\n lostProfit,\n onDismiss,\n}: {\n userBill?: UserBill\n lostProfit?: string\n onDismiss?: () => void\n}) => {\n // State\n const [showNFTImg, setShowNFTImg] = useState(false)\n\n // Static Data\n const depositUSD = userBill?.nftData?.data?.dollarValue\n const payout = userBill?.nftData?.data?.payout\n const payoutTokenPrice = parseFloat(userBill?.bond?.payoutTokenPrice ?? '0')\n const payoutUSD = payout && payoutTokenPrice ? payout * payoutTokenPrice : 0\n const payoutSymbol = userBill?.bond?.showcaseTokenName ?? userBill?.bond?.earnToken.symbol\n const payoutTokenSymbol = payoutSymbol === 'AIX' && userBill?.bond?.chainId === ChainId.SOL ? 'SOLAIX' : payoutSymbol\n\n // Cliff display info:\n const vestingCliff = userBill?.bond?.vestingCliff\n const currentTime = Math.round(new Date().getTime() / 1000)\n const vestingStartTimestamp = parseInt(userBill?.vestingStartTimestamp ?? '0')\n const isPendingCliff = vestingCliff ? currentTime - vestingStartTimestamp < vestingCliff : false\n const cliffCountdown = getTimePeriods(vestingStartTimestamp + (vestingCliff ?? 0) - currentTime, true)\n\n return (\n <Modal\n sx={{\n width: '480px',\n overflowY: 'unset !important',\n background: showNFTImg ? 'transparent !important' : 'white2',\n p: '0px',\n top: '56%',\n }}\n >\n <Flex\n sx={{\n flexDirection: 'column',\n borderRadius: 'normal',\n position: 'relative',\n background: showNFTImg ? 'transparent !important' : 'white2',\n p: '20px',\n }}\n >\n <NFTImage userBill={userBill} showNFTImg={showNFTImg} setShowNFTImg={setShowNFTImg} />\n\n {/* Modal Content */}\n\n {!showNFTImg && (\n <Flex sx={{ flexDirection: 'column' }}>\n <YourBondModalHeader userBill={userBill} onDismiss={onDismiss} />\n <Flex sx={{ mt: '10px', flexDirection: 'column', gap: '10px' }}>\n <Flex sx={{ width: '100%', gap: '15px', position: 'relative' }}>\n <Flex\n sx={{\n background: 'white3',\n borderRadius: 'normal',\n justifyContent: 'space-between',\n p: '10px',\n width: '50%',\n alignItems: 'center',\n fontSize: '14px',\n }}\n >\n <Flex>Deposit</Flex>\n <Flex>${formatNumberSI(depositUSD)}</Flex>\n </Flex>\n <Flex\n sx={{ position: 'absolute', top: '50%', left: '50%', transform: 'translateY(-50%) translateX(-50%)' }}\n >\n <Svg icon=\"arrow\" direction=\"right\" width={'5px'} />\n </Flex>\n <Flex\n sx={{\n background: 'white3',\n borderRadius: 'normal',\n justifyContent: 'space-between',\n p: '10px',\n width: '50%',\n alignItems: 'center',\n fontSize: '14px',\n }}\n >\n <Flex>Bond Value</Flex>\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <TokenImage symbol={payoutTokenSymbol} size={22} />\n <Flex sx={{ flexDirection: 'column', fontSize: '14px', lineHeight: '16px' }}>\n <Flex sx={{ justifyContent: 'center' }}>{formatNumberSI(payout ?? '0')}</Flex>\n <Flex sx={{ fontSize: '10px', fontWeight: 400, opacity: 0.6, justifyContent: 'center' }}>\n (${formatNumberSI(payoutUSD)})\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n {lostProfit && (\n <Flex\n sx={{\n background: 'white3',\n borderRadius: 'normal',\n width: '100%',\n p: '10px',\n justifyContent: 'space-between',\n }}\n >\n <Flex sx={{ width: '20%' }}>\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"mythical\"\n style={{ width: '90px', height: '90px' }}\n />\n </Flex>\n <Flex sx={{ width: '75%', flexDirection: 'column', gap: '3px' }}>\n <Flex>\n You missed a <Flex sx={{ color: 'success', px: '3px' }}>${lostProfit}</Flex> bonus\n </Flex>\n <Flex sx={{ fontSize: '12px', lineHeight: '16px', fontWeight: 400 }}>\n Holding an Ape Tier would’ve gotten you an extra 5% bonus on this purchase and all future ones.\n </Flex>\n <Button\n variant=\"secondary\"\n sx={{ width: '100%', fontSize: '14px', height: '30px', fontWeight: 600 }}\n onClick={() => window.open('https://ape.bond/true-yield', '_blank')}\n >\n Upgrade Your Tier\n </Button>\n </Flex>\n </Flex>\n )}\n <Flex\n sx={{\n flexDirection: 'column',\n fontSize: '12px',\n fontWeight: 400,\n }}\n >\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white3',\n borderRadius: '10px 10px 0px 0px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Vesting Progress</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{UserBillTooltipText.FullyVested}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n {isPendingCliff ? (\n <>\n Claiming starts in{' '}\n {`${cliffCountdown.days !== 0 ? `${cliffCountdown.days} days` : cliffCountdown.hours !== 0 ? `${cliffCountdown.hours} hours` : `${cliffCountdown.minutes} mins`}`}\n </>\n ) : (\n <ProgressBarWrapper\n title={''}\n value={<ProgressBar value={getPercentageVested(userBill)} />}\n style={{\n width: '100px',\n flexDirection: 'column',\n alignItems: 'center',\n }}\n showTooltip={true}\n toolTip={\n getTimeLeftForFullyVested(userBill) > 0\n ? `Fully vested in ${getPendingVestingString(userBill)}.`\n : `Fully Vested.`\n }\n />\n )}\n </Flex>\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white4',\n height: '26px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Pending</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{UserBillTooltipText.Pending}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={payoutTokenSymbol} size={18} />\n <Text sx={{ fontSize: '12px', fontWeight: 700, ml: '10px' }}>\n {formatNumberSI(pending(userBill), 4)}\n </Text>\n <Text\n sx={{\n fontSize: ['10px', '10px', '10px', '12px'],\n fontWeight: 400,\n ml: '10px',\n opacity: 0.6,\n }}\n >\n (${formatNumberSI(pendingUSD(userBill))})\n </Text>\n </Flex>\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white3',\n height: '26px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Claimable</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{UserBillTooltipText.Claimable}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={payoutTokenSymbol} size={18} />\n <Text sx={{ fontSize: '12px', fontWeight: 700, ml: '10px' }}>\n {formatNumberSI(claimable(userBill), 4)}\n </Text>\n <Text\n sx={{\n fontSize: ['10px', '10px', '10px', '12px'],\n fontWeight: 400,\n ml: '10px',\n opacity: 0.6,\n }}\n >\n (${formatNumberSI(claimableUSD(userBill))})\n </Text>\n </Flex>\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white4',\n height: '26px',\n borderRadius: '0px 0px 10px 10px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Claimed</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{UserBillTooltipText.Claimed}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={payoutTokenSymbol} size={18} />\n <Text sx={{ fontSize: '12px', fontWeight: 700, ml: '10px' }}>\n {formatNumberSI(claimed(userBill), 4)}\n </Text>\n <Text\n sx={{\n fontSize: ['10px', '10px', '10px', '12px'],\n fontWeight: 400,\n ml: '10px',\n opacity: 0.6,\n }}\n >\n (${formatNumberSI(claimedUSD(userBill))})\n </Text>\n </Flex>\n </Flex>\n </Flex>\n {userBill?.bond?.warningCard && (\n <Flex\n sx={{\n width: '100%',\n background: '#DE62F366',\n justifyContent: 'center',\n borderRadius: 'normal',\n }}\n >\n <Text sx={{ fontSize: '12px', fontWeight: 400, p: '4px 10px', lineHeight: '16px' }}>\n <SafeHTMLComponent html={userBill?.bond?.warningCard} />\n </Text>\n </Flex>\n )}\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n gap: ['10px', '10px', '10px', '15px'],\n height: '40px',\n }}\n >\n {userBill?.bond?.chainId === ChainId.SOL ? (\n <ActionsSolana userBill={userBill} />\n ) : (\n <Actions userBill={userBill} />\n )}\n </Flex>\n {!lostProfit && <Recommendations billAddress={userBill?.address} />}\n </Flex>\n </Flex>\n )}\n </Flex>\n </Modal>\n )\n}\n\nexport default YourBondsModal\n"],"names":["_jsx","_jsxs","NFTImage","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YourBondsModal.js","sources":["../../../src/views/YourBondsModal/YourBondsModal.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { UserBill } from '../../types/yourbonds'\nimport TokenImage from '../../components/uikit-sdk/TokenImage'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport { UserBillTooltipText } from '../../config/constants/tooltips'\nimport Recommendations from './components/Recommendations/Recommendations'\nimport {\n claimable,\n claimableUSD,\n claimed,\n claimedUSD,\n getPendingVestingString,\n getPercentageVested,\n getTimeLeftForFullyVested,\n pending,\n pendingUSD,\n} from '../../utils/displayHelpers'\nimport { getTimePeriods } from '../../utils/getTimePeriods'\nimport SafeHTMLComponent from '../../components/SafeHTMLComponent'\nimport ProgressBar from '../../components/ProgressBar/ProgressBar'\nimport ProgressBarWrapper from '../../components/ProgressBar/ProgressBarWrapper'\nimport NFTImage from './components/NFTImage/NFTImage'\nimport YourBondModalHeader from './components/YourBondModalHeader/YourBondModalHeader'\nimport Actions from './components/Actions/Actions'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport ActionsSolana from './components/Actions/ActionsSolana'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Svg from '../../components/uikit-sdk/Svg'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport TooltipBubble from '../../components/uikit-sdk/TooltipBubble'\nimport Text from '../../components/uikit-sdk/Text'\n\nconst YourBondsModal = ({\n userBill,\n lostProfit,\n onDismiss,\n}: {\n userBill?: UserBill\n lostProfit?: string\n onDismiss?: () => void\n}) => {\n // State\n const [showNFTImg, setShowNFTImg] = useState(false)\n\n // Static Data\n const depositUSD = userBill?.nftData?.data?.dollarValue\n const payout = userBill?.nftData?.data?.payout\n const payoutTokenPrice = parseFloat(userBill?.bond?.payoutTokenPrice ?? '0')\n const payoutUSD = payout && payoutTokenPrice ? payout * payoutTokenPrice : 0\n const payoutSymbol = userBill?.bond?.showcaseTokenName ?? userBill?.bond?.earnToken.symbol\n const payoutTokenSymbol = payoutSymbol === 'AIX' && userBill?.bond?.chainId === ChainId.SOL ? 'SOLAIX' : payoutSymbol\n\n // Cliff display info:\n const vestingCliff = userBill?.bond?.vestingCliff\n const currentTime = Math.round(new Date().getTime() / 1000)\n const vestingStartTimestamp = parseInt(userBill?.vestingStartTimestamp ?? '0')\n const isPendingCliff = vestingCliff ? currentTime - vestingStartTimestamp < vestingCliff : false\n const cliffCountdown = getTimePeriods(vestingStartTimestamp + (vestingCliff ?? 0) - currentTime, true)\n\n return (\n <Modal\n sx={{\n width: '480px',\n overflowY: 'unset !important',\n background: showNFTImg ? 'transparent !important' : 'white2',\n p: '0px',\n top: '56%',\n }}\n >\n <Flex\n sx={{\n flexDirection: 'column',\n borderRadius: 'normal',\n position: 'relative',\n background: showNFTImg ? 'transparent !important' : 'white2',\n p: '20px',\n }}\n >\n <NFTImage userBill={userBill} showNFTImg={showNFTImg} setShowNFTImg={setShowNFTImg} />\n\n {/* Modal Content */}\n\n {!showNFTImg && (\n <Flex sx={{ flexDirection: 'column' }}>\n <YourBondModalHeader userBill={userBill} onDismiss={onDismiss} />\n <Flex sx={{ mt: '10px', flexDirection: 'column', gap: '10px' }}>\n <Flex sx={{ width: '100%', gap: '15px', position: 'relative' }}>\n <Flex\n sx={{\n background: 'white3',\n borderRadius: 'normal',\n justifyContent: 'space-between',\n p: '10px',\n width: '50%',\n alignItems: 'center',\n fontSize: '14px',\n }}\n >\n <Flex>Deposit</Flex>\n <Flex>${formatNumberSI(depositUSD)}</Flex>\n </Flex>\n <Flex\n sx={{ position: 'absolute', top: '50%', left: '50%', transform: 'translateY(-50%) translateX(-50%)' }}\n >\n <Svg icon=\"arrow\" direction=\"right\" width={'5px'} />\n </Flex>\n <Flex\n sx={{\n background: 'white3',\n borderRadius: 'normal',\n justifyContent: 'space-between',\n p: '10px',\n width: '50%',\n alignItems: 'center',\n fontSize: '14px',\n }}\n >\n <Flex>Bond Value</Flex>\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <TokenImage symbol={payoutTokenSymbol} size={22} />\n <Flex sx={{ flexDirection: 'column', fontSize: '14px', lineHeight: '16px' }}>\n <Flex sx={{ justifyContent: 'center' }}>{formatNumberSI(payout ?? '0')}</Flex>\n <Flex sx={{ fontSize: '10px', fontWeight: 400, opacity: 0.6, justifyContent: 'center' }}>\n (${formatNumberSI(payoutUSD)})\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n {lostProfit && (\n <Flex\n sx={{\n background: 'white3',\n borderRadius: 'normal',\n width: '100%',\n p: '10px',\n justifyContent: 'space-between',\n }}\n >\n <Flex sx={{ width: '20%' }}>\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"mythical\"\n style={{ width: '90px', height: '90px' }}\n />\n </Flex>\n <Flex sx={{ width: '75%', flexDirection: 'column', gap: '3px' }}>\n <Flex>\n You missed a <Flex sx={{ color: 'success', px: '3px' }}>${lostProfit}</Flex> bonus\n </Flex>\n <Flex sx={{ fontSize: '12px', lineHeight: '16px', fontWeight: 400 }}>\n Holding an Ape Tier would’ve gotten you an extra 5% bonus on this purchase and all future ones.\n </Flex>\n <Button\n variant=\"secondary\"\n sx={{ width: '100%', fontSize: '14px', height: '30px', fontWeight: 600 }}\n onClick={() => window.open('https://ape.bond/true-yield', '_blank')}\n >\n Upgrade Your Tier\n </Button>\n </Flex>\n </Flex>\n )}\n <Flex\n sx={{\n flexDirection: 'column',\n fontSize: '12px',\n fontWeight: 400,\n }}\n >\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white3',\n borderRadius: '10px 10px 0px 0px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Vesting Progress</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{UserBillTooltipText.FullyVested}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n {isPendingCliff ? (\n <>\n Claiming starts in{' '}\n {`${cliffCountdown.days !== 0 ? `${cliffCountdown.days} days` : cliffCountdown.hours !== 0 ? `${cliffCountdown.hours} hours` : `${cliffCountdown.minutes} mins`}`}\n </>\n ) : (\n <ProgressBarWrapper\n title={''}\n value={<ProgressBar value={getPercentageVested(userBill)} />}\n style={{\n width: '100px',\n flexDirection: 'column',\n alignItems: 'center',\n }}\n showTooltip={true}\n toolTip={\n getTimeLeftForFullyVested(userBill) > 0\n ? `Fully vested in ${getPendingVestingString(userBill)}.`\n : `Fully Vested.`\n }\n />\n )}\n </Flex>\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white4',\n height: '26px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Pending</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{UserBillTooltipText.Pending}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={payoutTokenSymbol} size={18} />\n <Text sx={{ fontSize: '12px', fontWeight: 700, ml: '10px' }}>\n {formatNumberSI(pending(userBill), 4)}\n </Text>\n <Text\n sx={{\n fontSize: ['10px', '10px', '10px', '12px'],\n fontWeight: 400,\n ml: '10px',\n opacity: 0.6,\n }}\n >\n (${formatNumberSI(pendingUSD(userBill))})\n </Text>\n </Flex>\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white3',\n height: '26px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Claimable</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{UserBillTooltipText.Claimable}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={payoutTokenSymbol} size={18} />\n <Text sx={{ fontSize: '12px', fontWeight: 700, ml: '10px' }}>\n {formatNumberSI(claimable(userBill), 4)}\n </Text>\n <Text\n sx={{\n fontSize: ['10px', '10px', '10px', '12px'],\n fontWeight: 400,\n ml: '10px',\n opacity: 0.6,\n }}\n >\n (${formatNumberSI(claimableUSD(userBill))})\n </Text>\n </Flex>\n </Flex>\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: '4px 10px',\n background: 'white4',\n height: '26px',\n borderRadius: '0px 0px 10px 10px',\n }}\n >\n <Flex sx={{ alignItems: 'center', gap: '5px' }}>\n <Flex sx={{ opacity: 0.6 }}>Claimed</Flex>\n <TooltipBubble\n className=\"tooltip-bubble\"\n body={<Flex>{UserBillTooltipText.Claimed}</Flex>}\n width=\"230px\"\n placement=\"bottomLeft\"\n transformTip=\"translate(-5%, 0%)\"\n >\n <Flex className=\"block-header icon\">\n <Svg icon=\"questionCircle\" width=\"12px\" />\n </Flex>\n </TooltipBubble>\n </Flex>\n <Flex sx={{ alignItems: 'center' }}>\n <TokenImage symbol={payoutTokenSymbol} size={18} />\n <Text sx={{ fontSize: '12px', fontWeight: 700, ml: '10px' }}>\n {formatNumberSI(claimed(userBill), 4)}\n </Text>\n <Text\n sx={{\n fontSize: ['10px', '10px', '10px', '12px'],\n fontWeight: 400,\n ml: '10px',\n opacity: 0.6,\n }}\n >\n (${formatNumberSI(claimedUSD(userBill))})\n </Text>\n </Flex>\n </Flex>\n </Flex>\n {userBill?.bond?.warningCard && (\n <Flex\n sx={{\n width: '100%',\n background: '#DE62F366',\n justifyContent: 'center',\n borderRadius: 'normal',\n }}\n >\n <Text sx={{ fontSize: '12px', fontWeight: 400, p: '4px 10px', lineHeight: '16px' }}>\n <SafeHTMLComponent html={userBill?.bond?.warningCard} />\n </Text>\n </Flex>\n )}\n <Flex\n sx={{\n width: '100%',\n justifyContent: 'space-between',\n gap: ['10px', '10px', '10px', '15px'],\n height: '40px',\n }}\n >\n {userBill?.bond?.chainId === ChainId.SOL ? (\n <ActionsSolana userBill={userBill} />\n ) : (\n <Actions userBill={userBill} />\n )}\n </Flex>\n {!lostProfit && <Recommendations billAddress={userBill?.address} />}\n </Flex>\n </Flex>\n )}\n </Flex>\n </Modal>\n )\n}\n\nexport default YourBondsModal\n"],"names":["_jsx","_jsxs","NFTImage","_Fragment"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,cAAc,GAAG,CAAC,EACtB,QAAQ,EACR,UAAU,EACV,SAAS,GAKV,KAAI;;IAEH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;;IAGnD,MAAM,UAAU,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW;IACvD,MAAM,MAAM,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM;AAC9C,IAAA,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,IAAI,GAAG,CAAC;AAC5E,IAAA,MAAM,SAAS,GAAG,MAAM,IAAI,gBAAgB,GAAG,MAAM,GAAG,gBAAgB,GAAG,CAAC;AAC5E,IAAA,MAAM,YAAY,GAAG,QAAQ,EAAE,IAAI,EAAE,iBAAiB,IAAI,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM;IAC1F,MAAM,iBAAiB,GAAG,YAAY,KAAK,KAAK,IAAI,QAAQ,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,GAAG,QAAQ,GAAG,YAAY;;AAGrH,IAAA,MAAM,YAAY,GAAG,QAAQ,EAAE,IAAI,EAAE,YAAY;AACjD,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IAC3D,MAAM,qBAAqB,GAAG,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,IAAI,GAAG,CAAC;AAC9E,IAAA,MAAM,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,qBAAqB,GAAG,YAAY,GAAG,KAAK;AAChG,IAAA,MAAM,cAAc,GAAG,cAAc,CAAC,qBAAqB,IAAI,YAAY,IAAI,CAAC,CAAC,GAAG,WAAW,EAAE,IAAI,CAAC;AAEtG,IAAA,QACEA,GAAA,CAAC,KAAK,EAAA,EACJ,EAAE,EAAE;AACF,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,SAAS,EAAE,kBAAkB;YAC7B,UAAU,EAAE,UAAU,GAAG,wBAAwB,GAAG,QAAQ;AAC5D,YAAA,CAAC,EAAE,KAAK;AACR,YAAA,GAAG,EAAE,KAAK;AACX,SAAA,EAAA,QAAA,EAEDC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,gBAAA,aAAa,EAAE,QAAQ;AACvB,gBAAA,YAAY,EAAE,QAAQ;AACtB,gBAAA,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,UAAU,GAAG,wBAAwB,GAAG,QAAQ;AAC5D,gBAAA,CAAC,EAAE,MAAM;AACV,aAAA,EAAA,QAAA,EAAA,CAEDD,IAACE,QAAQ,EAAA,EAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,GAAI,EAIrF,CAAC,UAAU,KACVD,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACnCD,GAAA,CAAC,mBAAmB,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAA,CAAI,EACjEC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,aAC5DA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAA,QAAA,EAAA,CAC5DA,KAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,YAAY,EAAE,QAAQ;AACtB,gDAAA,cAAc,EAAE,eAAe;AAC/B,gDAAA,CAAC,EAAE,MAAM;AACT,gDAAA,KAAK,EAAE,KAAK;AACZ,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,QAAQ,EAAE,MAAM;6CACjB,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAAe,EACpBC,IAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAG,cAAc,CAAC,UAAU,CAAC,CAAA,EAAA,CAAQ,CAAA,EAAA,CACrC,EACPD,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,mCAAmC,EAAE,EAAA,QAAA,EAErGA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAC,KAAK,EAAE,KAAK,EAAA,CAAI,EAAA,CAC/C,EACPC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,YAAY,EAAE,QAAQ;AACtB,gDAAA,cAAc,EAAE,eAAe;AAC/B,gDAAA,CAAC,EAAE,MAAM;AACT,gDAAA,KAAK,EAAE,KAAK;AACZ,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,QAAQ,EAAE,MAAM;6CACjB,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,YAAA,EAAA,CAAkB,EACvBC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAC5CD,IAAC,UAAU,EAAA,EAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAA,CAAI,EACnDC,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CACzED,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAG,cAAc,CAAC,MAAM,IAAI,GAAG,CAAC,EAAA,CAAQ,EAC9EC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAAA,IAAA,EAClF,cAAc,CAAC,SAAS,CAAC,SACvB,CAAA,EAAA,CACF,CAAA,EAAA,CACF,CAAA,EAAA,CACF,CAAA,EAAA,CACF,EACN,UAAU,KACTA,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,wCAAA,UAAU,EAAE,QAAQ;AACpB,wCAAA,YAAY,EAAE,QAAQ;AACtB,wCAAA,KAAK,EAAE,MAAM;AACb,wCAAA,CAAC,EAAE,MAAM;AACT,wCAAA,cAAc,EAAE,eAAe;AAChC,qCAAA,EAAA,QAAA,EAAA,CAEDD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAA,QAAA,EACxBA,GAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,CAAA,2CAAA,CAA6C,EAClD,GAAG,EAAC,UAAU,EACd,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAA,CACxC,GACG,EACPC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAC7DA,IAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,CAAA,eAAA,EACUA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAAA,GAAA,EAAI,UAAU,CAAA,EAAA,CAAQ,EAAA,QAAA,CAAA,EAAA,CACvE,EACPD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,sGAAA,EAAA,CAE5D,EACPA,GAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,WAAW,EACnB,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EACxE,OAAO,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,QAAQ,CAAC,EAAA,QAAA,EAAA,mBAAA,EAAA,CAG5D,CAAA,EAAA,CACJ,CAAA,EAAA,CACF,CACR,EACDC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,wCAAA,aAAa,EAAE,QAAQ;AACvB,wCAAA,QAAQ,EAAE,MAAM;AAChB,wCAAA,UAAU,EAAE,GAAG;AAChB,qCAAA,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,gDAAA,KAAK,EAAE,MAAM;AACb,gDAAA,cAAc,EAAE,eAAe;AAC/B,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,CAAC,EAAE,UAAU;AACb,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,YAAY,EAAE,mBAAmB;AAClC,6CAAA,EAAA,QAAA,EAAA,CAEDA,KAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAC5CD,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,iCAAyB,EACnDA,GAAA,CAAC,aAAa,EAAA,EACZ,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAEA,IAAC,IAAI,EAAA,EAAA,QAAA,EAAE,mBAAmB,CAAC,WAAW,EAAA,CAAQ,EACpD,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,YAAY,EACtB,YAAY,EAAC,oBAAoB,EAAA,QAAA,EAEjCA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,mBAAmB,YACjCA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,MAAM,EAAA,CAAG,EAAA,CACrC,GACO,CAAA,EAAA,CACX,EACPA,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,YAC/B,cAAc,IACbC,IAAA,CAAAE,QAAA,EAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,EACqB,GAAG,EACrB,CAAA,EAAG,cAAc,CAAC,IAAI,KAAK,CAAC,GAAG,CAAA,EAAG,cAAc,CAAC,IAAI,CAAA,KAAA,CAAO,GAAG,cAAc,CAAC,KAAK,KAAK,CAAC,GAAG,CAAA,EAAG,cAAc,CAAC,KAAK,CAAA,MAAA,CAAQ,GAAG,GAAG,cAAc,CAAC,OAAO,CAAA,KAAA,CAAO,EAAE,CAAA,EAAA,CAChK,KAEHH,GAAA,CAAC,kBAAkB,EAAA,EACjB,KAAK,EAAE,EAAE,EACT,KAAK,EAAEA,IAAC,WAAW,EAAA,EAAC,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAA,CAAI,EAC5D,KAAK,EAAE;AACL,4DAAA,KAAK,EAAE,OAAO;AACd,4DAAA,aAAa,EAAE,QAAQ;AACvB,4DAAA,UAAU,EAAE,QAAQ;yDACrB,EACD,WAAW,EAAE,IAAI,EACjB,OAAO,EACL,yBAAyB,CAAC,QAAQ,CAAC,GAAG;AACpC,8DAAE,CAAA,gBAAA,EAAmB,uBAAuB,CAAC,QAAQ,CAAC,CAAA,CAAA;8DACpD,CAAA,aAAA,CAAe,EAAA,CAErB,CACH,EAAA,CACI,CAAA,EAAA,CACF,EACPC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,gDAAA,KAAK,EAAE,MAAM;AACb,gDAAA,cAAc,EAAE,eAAe;AAC/B,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,CAAC,EAAE,UAAU;AACb,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,MAAM,EAAE,MAAM;AACf,6CAAA,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAC5CD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,SAAA,EAAA,CAAgB,EAC1CA,GAAA,CAAC,aAAa,IACZ,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAEA,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAE,mBAAmB,CAAC,OAAO,EAAA,CAAQ,EAChD,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,YAAY,EACtB,YAAY,EAAC,oBAAoB,YAEjCA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAA,QAAA,EACjCA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,MAAM,EAAA,CAAG,EAAA,CACrC,EAAA,CACO,CAAA,EAAA,CACX,EACPC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAChCD,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,GAAI,EACnDA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EACxD,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAA,CAChC,EACPC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;gEACF,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC1C,gEAAA,UAAU,EAAE,GAAG;AACf,gEAAA,EAAE,EAAE,MAAM;AACV,gEAAA,OAAO,EAAE,GAAG;AACb,6DAAA,EAAA,QAAA,EAAA,CAAA,IAAA,EAEE,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAA,GAAA,CAAA,EAAA,CAClC,CAAA,EAAA,CACF,IACF,EACPA,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,gDAAA,KAAK,EAAE,MAAM;AACb,gDAAA,cAAc,EAAE,eAAe;AAC/B,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,CAAC,EAAE,UAAU;AACb,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,MAAM,EAAE,MAAM;AACf,6CAAA,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAC5CD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,WAAA,EAAA,CAAkB,EAC5CA,GAAA,CAAC,aAAa,IACZ,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAEA,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAE,mBAAmB,CAAC,SAAS,EAAA,CAAQ,EAClD,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,YAAY,EACtB,YAAY,EAAC,oBAAoB,YAEjCA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAA,QAAA,EACjCA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,MAAM,EAAA,CAAG,EAAA,CACrC,EAAA,CACO,CAAA,EAAA,CACX,EACPC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAChCD,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,GAAI,EACnDA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EACxD,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAA,CAClC,EACPC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;gEACF,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC1C,gEAAA,UAAU,EAAE,GAAG;AACf,gEAAA,EAAE,EAAE,MAAM;AACV,gEAAA,OAAO,EAAE,GAAG;AACb,6DAAA,EAAA,QAAA,EAAA,CAAA,IAAA,EAEE,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAA,GAAA,CAAA,EAAA,CACpC,CAAA,EAAA,CACF,IACF,EACPA,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,gDAAA,KAAK,EAAE,MAAM;AACb,gDAAA,cAAc,EAAE,eAAe;AAC/B,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,CAAC,EAAE,UAAU;AACb,gDAAA,UAAU,EAAE,QAAQ;AACpB,gDAAA,MAAM,EAAE,MAAM;AACd,gDAAA,YAAY,EAAE,mBAAmB;AAClC,6CAAA,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CAC5CD,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,SAAA,EAAA,CAAgB,EAC1CA,GAAA,CAAC,aAAa,IACZ,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAEA,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAE,mBAAmB,CAAC,OAAO,EAAA,CAAQ,EAChD,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,YAAY,EACtB,YAAY,EAAC,oBAAoB,YAEjCA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAA,QAAA,EACjCA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,MAAM,EAAA,CAAG,EAAA,CACrC,EAAA,CACO,CAAA,EAAA,CACX,EACPC,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAChCD,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,GAAI,EACnDA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAA,QAAA,EACxD,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAA,CAChC,EACPC,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;gEACF,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC1C,gEAAA,UAAU,EAAE,GAAG;AACf,gEAAA,EAAE,EAAE,MAAM;AACV,gEAAA,OAAO,EAAE,GAAG;6DACb,EAAA,QAAA,EAAA,CAAA,IAAA,EAEE,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAA,GAAA,CAAA,EAAA,CAClC,CAAA,EAAA,CACF,CAAA,EAAA,CACF,CAAA,EAAA,CACF,EACN,QAAQ,EAAE,IAAI,EAAE,WAAW,KAC1BD,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,wCAAA,KAAK,EAAE,MAAM;AACb,wCAAA,UAAU,EAAE,WAAW;AACvB,wCAAA,cAAc,EAAE,QAAQ;AACxB,wCAAA,YAAY,EAAE,QAAQ;AACvB,qCAAA,EAAA,QAAA,EAEDA,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,EAAA,QAAA,EAChFA,IAAC,iBAAiB,EAAA,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAA,CAAI,EAAA,CACnD,GACF,CACR,EACDA,IAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,wCAAA,KAAK,EAAE,MAAM;AACb,wCAAA,cAAc,EAAE,eAAe;wCAC/B,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AACrC,wCAAA,MAAM,EAAE,MAAM;qCACf,EAAA,QAAA,EAEA,QAAQ,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,IACtCA,GAAA,CAAC,aAAa,EAAA,EAAC,QAAQ,EAAE,QAAQ,GAAI,KAErCA,GAAA,CAAC,OAAO,EAAA,EAAC,QAAQ,EAAE,QAAQ,EAAA,CAAI,CAChC,GACI,EACN,CAAC,UAAU,IAAIA,GAAA,CAAC,eAAe,IAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAA,CAAI,CAAA,EAAA,CAC9D,CAAA,EAAA,CACF,CACR,CAAA,EAAA,CACI,EAAA,CACD;AAEZ;;;;"}
|
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'theme-ui/jsx-runtime';
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
|
-
import '../../../../components/uikit-sdk/Svg/types.js';
|
|
4
|
-
import 'theme-ui';
|
|
5
|
-
import '../../../../components/uikit-sdk/Text/types.js';
|
|
6
|
-
import '../../../../components/uikit-sdk/Checkbox/types.js';
|
|
7
|
-
import '../../../../components/uikit-sdk/Skeleton/types.js';
|
|
8
|
-
import '../../../../components/uikit-sdk/Skeleton/styles.js';
|
|
9
|
-
import '../../../../components/uikit-sdk/TooltipBubble/index.js';
|
|
10
|
-
import 'framer-motion';
|
|
11
3
|
import Button from '../../../../components/uikit-sdk/Button/Button.js';
|
|
12
|
-
import '../../../../components/uikit-sdk/Button/types.js';
|
|
13
|
-
import '../../../../contexts/ModalContext.js';
|
|
14
|
-
import '../../../FullBondsView/FullBondsView.js';
|
|
15
|
-
import '../../../../components/uikit-sdk/Select/types.js';
|
|
16
|
-
import '../../../../utils/campaignStyles.js';
|
|
17
4
|
import { claimable } from '../../../../utils/displayHelpers.js';
|
|
18
5
|
import { useSwitchChain, useChainId, useWriteContract } from 'wagmi';
|
|
19
6
|
import { useMonitorTx } from '../../../../hooks/useMonitorTx.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actions.js","sources":["../../../../../src/views/YourBondsModal/components/Actions/Actions.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport { Button } from '../../../../components/uikit-sdk'\nimport { claimable } from '../../../../utils/displayHelpers'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { useChainId, useSwitchChain, useWriteContract } from 'wagmi'\nimport { useMonitorTx } from '../../../../hooks/useMonitorTx'\nimport useBondsData from '../../../../state/bonds/useBondsData'\nimport BOND_ABI from '../../../../config/abi/BOND_2_4_0.json'\nimport track from '../../../../utils/track'\nimport { remove0xPrefix } from '../../../../utils/remove0xPrefix'\nimport { reportError } from '../../../../utils/reportError'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport useEVMAccount from '../../../../hooks/accounts/useEVMAccount'\nimport { usePopups } from '../../../../state/popups/usePopups'\nimport useUserBonds from '../../../../state/bonds/useUserBonds'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport useModal from '../../../../hooks/useModal'\nimport { AbondModal, OabondModal, PmusdModal } from '../../../../components/CustomClaimModals'\n\nconst Actions = ({ userBill }: { userBill?: UserBill }) => {\n // Hooks\n const { switchChainAsync } = useSwitchChain()\n const { data: liveBonds } = useBondsData()\n const SDKConfig = useSDKConfig()\n const chainId = useChainId()\n const { writeContractAsync } = useWriteContract()\n const { address: account } = useEVMAccount()\n const { addToastError } = usePopups()\n const { refetch: refetchUserBonds } = useUserBonds()\n\n // State\n const [claimTxHash, setClaimTxHash] = useState<string | null>(null)\n const [loadingTx, setLoadingTx] = useState(false)\n const { isLoading, isSuccess: isConfirmed } = useMonitorTx(claimTxHash, userBill?.bond?.chainId)\n\n // Static Data\n const load = loadingTx || (isLoading && !isConfirmed)\n const similarLiveBond = liveBonds?.find(\n (bond) =>\n !bond?.soldOut &&\n !bond?.hide &&\n bond?.earnToken?.symbol?.toLowerCase() === userBill?.bond?.earnToken?.symbol?.toLowerCase(),\n )\n const canPurchaseAgain = !!similarLiveBond\n const vestingCliff = userBill?.bond?.vestingCliff\n const currentTime = Math.round(new Date().getTime() / 1000)\n const purchaseTimestamp = parseInt(userBill?.vestingStartTimestamp ?? '0')\n const isPendingCliff = vestingCliff ? currentTime - purchaseTimestamp < vestingCliff : false\n const cliffCountdown = getTimePeriods(purchaseTimestamp + (vestingCliff ?? 0) - currentTime, true)\n\n const handleClaim = async (billId?: string, billAddress?: string) => {\n const address: `0x${string}` = billAddress as `0x${string}`\n try {\n setLoadingTx(true)\n const tx = await writeContractAsync({\n address: address,\n abi: BOND_ABI,\n functionName: 'redeem',\n args: [billId],\n chain: chainId as any,\n account: account,\n }).catch()\n\n if (tx) {\n setClaimTxHash(tx)\n track({\n event: 'bond',\n chain: userBill?.bond?.chainId,\n data: {\n cat: 'claim',\n bondType: userBill?.bond?.billType,\n address: remove0xPrefix(userBill?.bond?.contractAddress?.[userBill?.bond?.chainId]),\n earnToken: userBill?.bond?.earnToken.symbol,\n },\n })\n }\n setLoadingTx(false)\n } catch (error: any) {\n console.error('Claim Failed:', error)\n setLoadingTx(false)\n addToastError(error.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'redeem', userBill, error },\n chainId,\n account,\n })\n }\n }\n\n // Modals\n const [openAbondModal] = useModal(<AbondModal />, true, false, 'abondModal')\n const [openOabondModal] = useModal(<OabondModal />, true, false, 'oAbondModal')\n const [openPmusdModal] = useModal(<PmusdModal />, true, false, 'pmUSDModal')\n\n useEffect(() => {\n if (isConfirmed) {\n refetchUserBonds()\n if (userBill?.bond?.earnToken.symbol.toLowerCase() === 'abond') {\n openAbondModal()\n }\n if (userBill?.bond?.earnToken.symbol.toLowerCase() === 'oabond') {\n openOabondModal()\n }\n if (userBill?.bond?.earnToken.symbol.toLowerCase() === 'pmusd') {\n openPmusdModal()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [isConfirmed])\n\n return (\n <>\n <Button\n variant=\"secondary\"\n disabled={claimable(userBill) === 0 || load || !userBill || isPendingCliff}\n load={load}\n onClick={(event) => {\n event.stopPropagation()\n if (chainId !== userBill?.bond?.chainId) {\n switchChainAsync({ chainId: userBill?.bond?.chainId! })\n .then(() => {\n handleClaim(userBill?.id, userBill?.address)\n })\n .catch()\n } else {\n handleClaim(userBill?.id, userBill?.address)\n }\n }}\n sx={{ fontSize: '14px', width: '100%' }}\n >\n {isPendingCliff\n ? `Claimable in ${cliffCountdown.days !== 0 ? `${cliffCountdown.days} days` : cliffCountdown.hours !== 0 ? `${cliffCountdown.hours} hours` : `${cliffCountdown.minutes} mins`}`\n : 'Claim'}\n </Button>\n <Button\n sx={{ fontSize: '14px', width: '100%' }}\n onClick={() =>\n canPurchaseAgain\n ? (window.location.href = `https://ape.bond/bonds?bondAddress=${similarLiveBond.contractAddress[similarLiveBond.chainId]}&bondChain=${similarLiveBond.chainId}`)\n : null\n }\n disabled={!canPurchaseAgain}\n >\n {canPurchaseAgain ? 'Buy again' : 'sold out'}\n </Button>\n </>\n )\n}\n\nexport default Actions\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Actions.js","sources":["../../../../../src/views/YourBondsModal/components/Actions/Actions.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport { claimable } from '../../../../utils/displayHelpers'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { useChainId, useSwitchChain, useWriteContract } from 'wagmi'\nimport { useMonitorTx } from '../../../../hooks/useMonitorTx'\nimport useBondsData from '../../../../state/bonds/useBondsData'\nimport BOND_ABI from '../../../../config/abi/BOND_2_4_0.json'\nimport track from '../../../../utils/track'\nimport { remove0xPrefix } from '../../../../utils/remove0xPrefix'\nimport { reportError } from '../../../../utils/reportError'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport useEVMAccount from '../../../../hooks/accounts/useEVMAccount'\nimport { usePopups } from '../../../../state/popups/usePopups'\nimport useUserBonds from '../../../../state/bonds/useUserBonds'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport useModal from '../../../../hooks/useModal'\nimport { AbondModal, OabondModal, PmusdModal } from '../../../../components/CustomClaimModals'\n\nconst Actions = ({ userBill }: { userBill?: UserBill }) => {\n // Hooks\n const { switchChainAsync } = useSwitchChain()\n const { data: liveBonds } = useBondsData()\n const SDKConfig = useSDKConfig()\n const chainId = useChainId()\n const { writeContractAsync } = useWriteContract()\n const { address: account } = useEVMAccount()\n const { addToastError } = usePopups()\n const { refetch: refetchUserBonds } = useUserBonds()\n\n // State\n const [claimTxHash, setClaimTxHash] = useState<string | null>(null)\n const [loadingTx, setLoadingTx] = useState(false)\n const { isLoading, isSuccess: isConfirmed } = useMonitorTx(claimTxHash, userBill?.bond?.chainId)\n\n // Static Data\n const load = loadingTx || (isLoading && !isConfirmed)\n const similarLiveBond = liveBonds?.find(\n (bond) =>\n !bond?.soldOut &&\n !bond?.hide &&\n bond?.earnToken?.symbol?.toLowerCase() === userBill?.bond?.earnToken?.symbol?.toLowerCase(),\n )\n const canPurchaseAgain = !!similarLiveBond\n const vestingCliff = userBill?.bond?.vestingCliff\n const currentTime = Math.round(new Date().getTime() / 1000)\n const purchaseTimestamp = parseInt(userBill?.vestingStartTimestamp ?? '0')\n const isPendingCliff = vestingCliff ? currentTime - purchaseTimestamp < vestingCliff : false\n const cliffCountdown = getTimePeriods(purchaseTimestamp + (vestingCliff ?? 0) - currentTime, true)\n\n const handleClaim = async (billId?: string, billAddress?: string) => {\n const address: `0x${string}` = billAddress as `0x${string}`\n try {\n setLoadingTx(true)\n const tx = await writeContractAsync({\n address: address,\n abi: BOND_ABI,\n functionName: 'redeem',\n args: [billId],\n chain: chainId as any,\n account: account,\n }).catch()\n\n if (tx) {\n setClaimTxHash(tx)\n track({\n event: 'bond',\n chain: userBill?.bond?.chainId,\n data: {\n cat: 'claim',\n bondType: userBill?.bond?.billType,\n address: remove0xPrefix(userBill?.bond?.contractAddress?.[userBill?.bond?.chainId]),\n earnToken: userBill?.bond?.earnToken.symbol,\n },\n })\n }\n setLoadingTx(false)\n } catch (error: any) {\n console.error('Claim Failed:', error)\n setLoadingTx(false)\n addToastError(error.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'redeem', userBill, error },\n chainId,\n account,\n })\n }\n }\n\n // Modals\n const [openAbondModal] = useModal(<AbondModal />, true, false, 'abondModal')\n const [openOabondModal] = useModal(<OabondModal />, true, false, 'oAbondModal')\n const [openPmusdModal] = useModal(<PmusdModal />, true, false, 'pmUSDModal')\n\n useEffect(() => {\n if (isConfirmed) {\n refetchUserBonds()\n if (userBill?.bond?.earnToken.symbol.toLowerCase() === 'abond') {\n openAbondModal()\n }\n if (userBill?.bond?.earnToken.symbol.toLowerCase() === 'oabond') {\n openOabondModal()\n }\n if (userBill?.bond?.earnToken.symbol.toLowerCase() === 'pmusd') {\n openPmusdModal()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [isConfirmed])\n\n return (\n <>\n <Button\n variant=\"secondary\"\n disabled={claimable(userBill) === 0 || load || !userBill || isPendingCliff}\n load={load}\n onClick={(event) => {\n event.stopPropagation()\n if (chainId !== userBill?.bond?.chainId) {\n switchChainAsync({ chainId: userBill?.bond?.chainId! })\n .then(() => {\n handleClaim(userBill?.id, userBill?.address)\n })\n .catch()\n } else {\n handleClaim(userBill?.id, userBill?.address)\n }\n }}\n sx={{ fontSize: '14px', width: '100%' }}\n >\n {isPendingCliff\n ? `Claimable in ${cliffCountdown.days !== 0 ? `${cliffCountdown.days} days` : cliffCountdown.hours !== 0 ? `${cliffCountdown.hours} hours` : `${cliffCountdown.minutes} mins`}`\n : 'Claim'}\n </Button>\n <Button\n sx={{ fontSize: '14px', width: '100%' }}\n onClick={() =>\n canPurchaseAgain\n ? (window.location.href = `https://ape.bond/bonds?bondAddress=${similarLiveBond.contractAddress[similarLiveBond.chainId]}&bondChain=${similarLiveBond.chainId}`)\n : null\n }\n disabled={!canPurchaseAgain}\n >\n {canPurchaseAgain ? 'Buy again' : 'sold out'}\n </Button>\n </>\n )\n}\n\nexport default Actions\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
@@ -1,25 +1,11 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'theme-ui/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
|
-
import '../../../../components/uikit-sdk/Svg/types.js';
|
|
4
|
-
import 'theme-ui';
|
|
5
|
-
import '../../../../components/uikit-sdk/Text/types.js';
|
|
6
|
-
import '../../../../components/uikit-sdk/Checkbox/types.js';
|
|
7
|
-
import '../../../../components/uikit-sdk/Skeleton/types.js';
|
|
8
|
-
import '../../../../components/uikit-sdk/Skeleton/styles.js';
|
|
9
|
-
import '../../../../components/uikit-sdk/TooltipBubble/index.js';
|
|
10
|
-
import 'framer-motion';
|
|
11
|
-
import Button from '../../../../components/uikit-sdk/Button/Button.js';
|
|
12
|
-
import '../../../../components/uikit-sdk/Button/types.js';
|
|
13
|
-
import '../../../../contexts/ModalContext.js';
|
|
14
|
-
import '../../../FullBondsView/FullBondsView.js';
|
|
15
|
-
import '../../../../components/uikit-sdk/Select/types.js';
|
|
16
|
-
import '../../../../utils/campaignStyles.js';
|
|
17
3
|
import { claimable } from '../../../../utils/displayHelpers.js';
|
|
18
4
|
import useSOLAccount from '../../../../hooks/accounts/useSOLAccount.js';
|
|
19
5
|
import { getTimePeriods } from '../../../../utils/getTimePeriods.js';
|
|
20
6
|
import { Connection, PublicKey, TransactionInstruction, Transaction } from '@solana/web3.js';
|
|
21
7
|
import { ASSOCIATED_TOKEN_PROGRAM_ID } from '@solana/spl-token';
|
|
22
|
-
import { PROGRAM_ID,
|
|
8
|
+
import { PROGRAM_ID, CLAIM_DISCRIMINATOR } from '../../../../constants/solanaConstants.js';
|
|
23
9
|
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
24
10
|
import { getRPC } from '../../../../config/constants/networks.js';
|
|
25
11
|
import useUserBonds from '../../../../state/bonds/useUserBonds.js';
|
|
@@ -29,6 +15,7 @@ import useBondsData from '../../../../state/bonds/useBondsData.js';
|
|
|
29
15
|
import { derivePda } from '../../../../utils/derivePda.js';
|
|
30
16
|
import { reportError } from '../../../../utils/reportError.js';
|
|
31
17
|
import { getTokenProgramForMint, getAtaWithCreateInstruction } from '../../../../utils/solanaAtaHelper.js';
|
|
18
|
+
import Button from '../../../../components/uikit-sdk/Button/Button.js';
|
|
32
19
|
|
|
33
20
|
const ActionsSolana = ({ userBill }) => {
|
|
34
21
|
// Hooks
|
|
@@ -70,8 +57,8 @@ const ActionsSolana = ({ userBill }) => {
|
|
|
70
57
|
const [bondPda] = PublicKey.findProgramAddressSync([new TextEncoder().encode('bond'), bondIssuancePda.toBuffer(), nftMint.toBuffer()], PROGRAM_ID);
|
|
71
58
|
// Get user payout ATA and creation instruction if needed
|
|
72
59
|
const { address: userPayoutAta, createInstruction: createAtaIx } = await getAtaWithCreateInstruction(connection, payoutMint, accountSolana);
|
|
73
|
-
//
|
|
74
|
-
const
|
|
60
|
+
// Treasury ATA (standard associated token account for bond issuance PDA)
|
|
61
|
+
const { address: treasuryAta, createInstruction: createTreasuryAtaIx } = await getAtaWithCreateInstruction(connection, payoutMint, bondIssuancePda, accountSolana);
|
|
75
62
|
// Build keys list
|
|
76
63
|
const keys = [
|
|
77
64
|
{ pubkey: bondPda, isSigner: false, isWritable: true },
|
|
@@ -96,6 +83,8 @@ const ActionsSolana = ({ userBill }) => {
|
|
|
96
83
|
});
|
|
97
84
|
// Build Transaction - include ATA creation if needed
|
|
98
85
|
const transaction = new Transaction();
|
|
86
|
+
if (createTreasuryAtaIx)
|
|
87
|
+
transaction.add(createTreasuryAtaIx);
|
|
99
88
|
if (createAtaIx)
|
|
100
89
|
transaction.add(createAtaIx);
|
|
101
90
|
transaction.add(claimInstruction);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionsSolana.js","sources":["../../../../../src/views/YourBondsModal/components/Actions/ActionsSolana.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Button } from '../../../../components/uikit-sdk'\nimport { claimable } from '../../../../utils/displayHelpers'\nimport { UserBill } from '../../../../types/yourbonds'\nimport useSOLAccount from '../../../../hooks/accounts/useSOLAccount'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport { Connection, PublicKey, Transaction, TransactionInstruction } from '@solana/web3.js'\nimport { ASSOCIATED_TOKEN_PROGRAM_ID } from '@solana/spl-token'\nimport {\n CLAIM_DISCRIMINATOR,\n COMMON_CONST_SEED,\n COMMON_PDA_PROGRAM,\n PROGRAM_ID,\n} from '../../../../constants/solanaConstants'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { getRPC } from '../../../../config/constants/networks'\nimport useUserBonds from '../../../../state/bonds/useUserBonds'\nimport { usePopups } from '../../../../state/popups/usePopups'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport useBondsData from '../../../../state/bonds/useBondsData'\nimport { derivePda } from '../../../../utils/derivePda'\nimport { reportError } from '../../../../utils/reportError'\nimport { getAtaWithCreateInstruction, getTokenProgramForMint } from '../../../../utils/solanaAtaHelper'\n\nconst ActionsSolana = ({ userBill }: { userBill?: UserBill }) => {\n // Hooks\n const SDKConfig = useSDKConfig()\n const { publicKey: accountSolana, signTransaction } = useSOLAccount()\n const { refetch } = useUserBonds()\n const { addToastError, addToastSuccess } = usePopups()\n const { data: liveBonds } = useBondsData()\n\n // State\n const [loadingTx, setLoadingTx] = useState(false)\n\n // Static Data\n const similarLiveBond = liveBonds?.find(\n (bond) =>\n !bond?.soldOut &&\n !bond?.hide &&\n bond?.earnToken?.symbol?.toLowerCase() === userBill?.bond?.earnToken?.symbol?.toLowerCase(),\n )\n const canPurchaseAgain = !!similarLiveBond\n const connection = new Connection(getRPC(ChainId.SOL), 'confirmed')\n const vestingCliff = userBill?.bond?.vestingCliff\n const currentTime = Math.round(new Date().getTime() / 1000)\n const purchaseTimestamp = parseInt(userBill?.vestingStartTimestamp ?? '0')\n const isPendingCliff = vestingCliff ? currentTime - purchaseTimestamp < vestingCliff : false\n const cliffCountdown = getTimePeriods(purchaseTimestamp + (vestingCliff ?? 0) - currentTime, true)\n\n const handleClaim = async () => {\n // Early return guard - prevent double execution\n if (loadingTx || !accountSolana || !userBill) return\n\n try {\n setLoadingTx(true)\n const earnTokenAddress = userBill?.bond?.earnToken?.address?.[userBill?.bond?.chainId]\n const contractAddress = userBill?.bond?.contractAddress?.[userBill?.bond?.chainId]\n\n if (!earnTokenAddress || !userBill.asset || !contractAddress) return\n\n const payoutMint = new PublicKey(earnTokenAddress)\n const bondIssuancePda = new PublicKey(contractAddress)\n const bondPricingPda = derivePda('bond_pricing', bondIssuancePda, PROGRAM_ID)\n const nftMint = new PublicKey(userBill.asset)\n\n // Detect token program for payout mint (supports Token-2022)\n const payoutTokenProgram = await getTokenProgramForMint(connection, payoutMint)\n\n const [bondTermPda] = PublicKey.findProgramAddressSync(\n [new TextEncoder().encode('bond_term'), bondIssuancePda.toBuffer()],\n PROGRAM_ID,\n )\n\n const [bondPda] = PublicKey.findProgramAddressSync(\n [new TextEncoder().encode('bond'), bondIssuancePda.toBuffer(), nftMint.toBuffer()],\n PROGRAM_ID,\n )\n\n // Get user payout ATA and creation instruction if needed\n const { address: userPayoutAta, createInstruction: createAtaIx } = await getAtaWithCreateInstruction(\n connection,\n payoutMint,\n accountSolana,\n )\n\n // treasury_ata = PDA\n const [treasuryAta] = PublicKey.findProgramAddressSync(\n [bondIssuancePda.toBuffer(), COMMON_CONST_SEED, payoutMint.toBuffer()],\n COMMON_PDA_PROGRAM,\n )\n\n // Build keys list\n const keys = [\n { pubkey: bondPda as PublicKey, isSigner: false, isWritable: true },\n { pubkey: bondTermPda as PublicKey, isSigner: false, isWritable: false },\n { pubkey: bondIssuancePda as PublicKey, isSigner: false, isWritable: false },\n { pubkey: bondPricingPda as PublicKey, isSigner: false, isWritable: true },\n { pubkey: accountSolana as PublicKey, isSigner: true, isWritable: true }, // user\n { pubkey: nftMint as PublicKey, isSigner: false, isWritable: true },\n { pubkey: userPayoutAta as PublicKey, isSigner: false, isWritable: true },\n { pubkey: treasuryAta, isSigner: false, isWritable: true },\n { pubkey: payoutMint, isSigner: false, isWritable: false }, // payout_mint\n { pubkey: payoutTokenProgram, isSigner: false, isWritable: false }, // token_program (dynamic)\n { pubkey: ASSOCIATED_TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: new PublicKey('CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d'), isSigner: false, isWritable: false }, // mplCoreProgram\n { pubkey: PROGRAM_ID, isSigner: false, isWritable: false }, // passing programId is the same as passing null\n ]\n\n // Build Claim Instruction (no args → just discriminator)\n const claimInstruction = new TransactionInstruction({\n keys,\n programId: PROGRAM_ID,\n data: CLAIM_DISCRIMINATOR,\n })\n\n // Build Transaction - include ATA creation if needed\n const transaction = new Transaction()\n if (createAtaIx) transaction.add(createAtaIx)\n transaction.add(claimInstruction)\n transaction.feePayer = accountSolana\n\n // Get fresh blockhash right before signing\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('finalized')\n transaction.recentBlockhash = blockhash\n\n if (!signTransaction) return\n const signedTx = await signTransaction(transaction)\n\n // Send with better error handling\n const txHash = await connection.sendRawTransaction(signedTx.serialize(), {\n skipPreflight: false,\n preflightCommitment: 'finalized',\n maxRetries: 0, // Don't auto-retry to avoid duplicates\n })\n\n await connection.confirmTransaction(\n {\n signature: txHash,\n blockhash,\n lastValidBlockHeight,\n },\n 'confirmed',\n )\n\n const txStatus = await connection.getSignatureStatus(txHash, { searchTransactionHistory: true })\n if (txStatus?.value?.confirmationStatus === 'confirmed' || txStatus?.value?.confirmationStatus === 'finalized') {\n console.log('Tx confirmed on-chain, refetching bonds')\n refetch()\n addToastSuccess(txHash, ChainId.SOL)\n }\n } catch (error: any) {\n console.error('Claim failed:', error)\n\n // Better error messaging for duplicate transactions\n if (error?.message?.includes('already been processed')) {\n addToastError('Transaction already processed. Please wait and try again.')\n } else {\n addToastError(error?.message ?? 'Unknown error')\n }\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n account: accountSolana?.toBase58(),\n chainId: ChainId.SOL,\n extraInfo: { type: 'claim', userBill, error },\n })\n } finally {\n setLoadingTx(false)\n }\n }\n\n return (\n <>\n <Button\n variant=\"secondary\"\n disabled={claimable(userBill) === 0 || loadingTx || !userBill || isPendingCliff}\n load={loadingTx}\n onClick={(event) => {\n event.stopPropagation()\n if (!loadingTx) handleClaim()\n }}\n sx={{ fontSize: '14px', width: '100%' }}\n >\n {isPendingCliff\n ? `Claimable in ${cliffCountdown.days !== 0 ? `${cliffCountdown.days} days` : cliffCountdown.hours !== 0 ? `${cliffCountdown.hours} hours` : `${cliffCountdown.minutes} mins`}`\n : 'Claim'}\n </Button>\n <Button\n sx={{ fontSize: '14px', width: '100%' }}\n onClick={() =>\n canPurchaseAgain\n ? (window.location.href = `https://ape.bond/bonds?bondAddress=${similarLiveBond.contractAddress[similarLiveBond.chainId]}&bondChain=${similarLiveBond.chainId}`)\n : null\n }\n disabled={!canPurchaseAgain}\n >\n {canPurchaseAgain ? 'Buy again' : 'sold out'}\n </Button>\n </>\n )\n}\n\nexport default ActionsSolana\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ActionsSolana.js","sources":["../../../../../src/views/YourBondsModal/components/Actions/ActionsSolana.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { claimable } from '../../../../utils/displayHelpers'\nimport { UserBill } from '../../../../types/yourbonds'\nimport useSOLAccount from '../../../../hooks/accounts/useSOLAccount'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport { Connection, PublicKey, Transaction, TransactionInstruction } from '@solana/web3.js'\nimport { ASSOCIATED_TOKEN_PROGRAM_ID } from '@solana/spl-token'\nimport { CLAIM_DISCRIMINATOR, PROGRAM_ID } from '../../../../constants/solanaConstants'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { getRPC } from '../../../../config/constants/networks'\nimport useUserBonds from '../../../../state/bonds/useUserBonds'\nimport { usePopups } from '../../../../state/popups/usePopups'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport useBondsData from '../../../../state/bonds/useBondsData'\nimport { derivePda } from '../../../../utils/derivePda'\nimport { reportError } from '../../../../utils/reportError'\nimport { getAtaWithCreateInstruction, getTokenProgramForMint } from '../../../../utils/solanaAtaHelper'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\n\nconst ActionsSolana = ({ userBill }: { userBill?: UserBill }) => {\n // Hooks\n const SDKConfig = useSDKConfig()\n const { publicKey: accountSolana, signTransaction } = useSOLAccount()\n const { refetch } = useUserBonds()\n const { addToastError, addToastSuccess } = usePopups()\n const { data: liveBonds } = useBondsData()\n\n // State\n const [loadingTx, setLoadingTx] = useState(false)\n\n // Static Data\n const similarLiveBond = liveBonds?.find(\n (bond) =>\n !bond?.soldOut &&\n !bond?.hide &&\n bond?.earnToken?.symbol?.toLowerCase() === userBill?.bond?.earnToken?.symbol?.toLowerCase(),\n )\n const canPurchaseAgain = !!similarLiveBond\n const connection = new Connection(getRPC(ChainId.SOL), 'confirmed')\n const vestingCliff = userBill?.bond?.vestingCliff\n const currentTime = Math.round(new Date().getTime() / 1000)\n const purchaseTimestamp = parseInt(userBill?.vestingStartTimestamp ?? '0')\n const isPendingCliff = vestingCliff ? currentTime - purchaseTimestamp < vestingCliff : false\n const cliffCountdown = getTimePeriods(purchaseTimestamp + (vestingCliff ?? 0) - currentTime, true)\n\n const handleClaim = async () => {\n // Early return guard - prevent double execution\n if (loadingTx || !accountSolana || !userBill) return\n\n try {\n setLoadingTx(true)\n const earnTokenAddress = userBill?.bond?.earnToken?.address?.[userBill?.bond?.chainId]\n const contractAddress = userBill?.bond?.contractAddress?.[userBill?.bond?.chainId]\n\n if (!earnTokenAddress || !userBill.asset || !contractAddress) return\n\n const payoutMint = new PublicKey(earnTokenAddress)\n const bondIssuancePda = new PublicKey(contractAddress)\n const bondPricingPda = derivePda('bond_pricing', bondIssuancePda, PROGRAM_ID)\n const nftMint = new PublicKey(userBill.asset)\n\n // Detect token program for payout mint (supports Token-2022)\n const payoutTokenProgram = await getTokenProgramForMint(connection, payoutMint)\n\n const [bondTermPda] = PublicKey.findProgramAddressSync(\n [new TextEncoder().encode('bond_term'), bondIssuancePda.toBuffer()],\n PROGRAM_ID,\n )\n\n const [bondPda] = PublicKey.findProgramAddressSync(\n [new TextEncoder().encode('bond'), bondIssuancePda.toBuffer(), nftMint.toBuffer()],\n PROGRAM_ID,\n )\n\n // Get user payout ATA and creation instruction if needed\n const { address: userPayoutAta, createInstruction: createAtaIx } = await getAtaWithCreateInstruction(\n connection,\n payoutMint,\n accountSolana,\n )\n\n // Treasury ATA (standard associated token account for bond issuance PDA)\n const { address: treasuryAta, createInstruction: createTreasuryAtaIx } = await getAtaWithCreateInstruction(\n connection,\n payoutMint,\n bondIssuancePda,\n accountSolana,\n )\n\n // Build keys list\n const keys = [\n { pubkey: bondPda as PublicKey, isSigner: false, isWritable: true },\n { pubkey: bondTermPda as PublicKey, isSigner: false, isWritable: false },\n { pubkey: bondIssuancePda as PublicKey, isSigner: false, isWritable: false },\n { pubkey: bondPricingPda as PublicKey, isSigner: false, isWritable: true },\n { pubkey: accountSolana as PublicKey, isSigner: true, isWritable: true }, // user\n { pubkey: nftMint as PublicKey, isSigner: false, isWritable: true },\n { pubkey: userPayoutAta as PublicKey, isSigner: false, isWritable: true },\n { pubkey: treasuryAta, isSigner: false, isWritable: true },\n { pubkey: payoutMint, isSigner: false, isWritable: false }, // payout_mint\n { pubkey: payoutTokenProgram, isSigner: false, isWritable: false }, // token_program (dynamic)\n { pubkey: ASSOCIATED_TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: new PublicKey('CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d'), isSigner: false, isWritable: false }, // mplCoreProgram\n { pubkey: PROGRAM_ID, isSigner: false, isWritable: false }, // passing programId is the same as passing null\n ]\n\n // Build Claim Instruction (no args → just discriminator)\n const claimInstruction = new TransactionInstruction({\n keys,\n programId: PROGRAM_ID,\n data: CLAIM_DISCRIMINATOR,\n })\n\n // Build Transaction - include ATA creation if needed\n const transaction = new Transaction()\n if (createTreasuryAtaIx) transaction.add(createTreasuryAtaIx)\n if (createAtaIx) transaction.add(createAtaIx)\n transaction.add(claimInstruction)\n transaction.feePayer = accountSolana\n\n // Get fresh blockhash right before signing\n const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('finalized')\n transaction.recentBlockhash = blockhash\n\n if (!signTransaction) return\n const signedTx = await signTransaction(transaction)\n\n // Send with better error handling\n const txHash = await connection.sendRawTransaction(signedTx.serialize(), {\n skipPreflight: false,\n preflightCommitment: 'finalized',\n maxRetries: 0, // Don't auto-retry to avoid duplicates\n })\n\n await connection.confirmTransaction(\n {\n signature: txHash,\n blockhash,\n lastValidBlockHeight,\n },\n 'confirmed',\n )\n\n const txStatus = await connection.getSignatureStatus(txHash, { searchTransactionHistory: true })\n if (txStatus?.value?.confirmationStatus === 'confirmed' || txStatus?.value?.confirmationStatus === 'finalized') {\n console.log('Tx confirmed on-chain, refetching bonds')\n refetch()\n addToastSuccess(txHash, ChainId.SOL)\n }\n } catch (error: any) {\n console.error('Claim failed:', error)\n\n // Better error messaging for duplicate transactions\n if (error?.message?.includes('already been processed')) {\n addToastError('Transaction already processed. Please wait and try again.')\n } else {\n addToastError(error?.message ?? 'Unknown error')\n }\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n account: accountSolana?.toBase58(),\n chainId: ChainId.SOL,\n extraInfo: { type: 'claim', userBill, error },\n })\n } finally {\n setLoadingTx(false)\n }\n }\n\n return (\n <>\n <Button\n variant=\"secondary\"\n disabled={claimable(userBill) === 0 || loadingTx || !userBill || isPendingCliff}\n load={loadingTx}\n onClick={(event) => {\n event.stopPropagation()\n if (!loadingTx) handleClaim()\n }}\n sx={{ fontSize: '14px', width: '100%' }}\n >\n {isPendingCliff\n ? `Claimable in ${cliffCountdown.days !== 0 ? `${cliffCountdown.days} days` : cliffCountdown.hours !== 0 ? `${cliffCountdown.hours} hours` : `${cliffCountdown.minutes} mins`}`\n : 'Claim'}\n </Button>\n <Button\n sx={{ fontSize: '14px', width: '100%' }}\n onClick={() =>\n canPurchaseAgain\n ? (window.location.href = `https://ape.bond/bonds?bondAddress=${similarLiveBond.contractAddress[similarLiveBond.chainId]}&bondChain=${similarLiveBond.chainId}`)\n : null\n }\n disabled={!canPurchaseAgain}\n >\n {canPurchaseAgain ? 'Buy again' : 'sold out'}\n </Button>\n </>\n )\n}\n\nexport default ActionsSolana\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
|
|
@@ -1,20 +1,8 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'theme-ui/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { Spinner } from 'theme-ui';
|
|
4
|
-
import Svg from '../../../../components/uikit-sdk/Svg/index.js';
|
|
5
4
|
import Flex from '../../../../components/uikit-sdk/Flex/index.js';
|
|
6
|
-
import '../../../../components/uikit-sdk/
|
|
7
|
-
import '../../../../components/uikit-sdk/Checkbox/types.js';
|
|
8
|
-
import '../../../../components/uikit-sdk/Skeleton/types.js';
|
|
9
|
-
import '../../../../components/uikit-sdk/Skeleton/styles.js';
|
|
10
|
-
import '../../../../components/uikit-sdk/TooltipBubble/index.js';
|
|
11
|
-
import 'framer-motion';
|
|
12
|
-
import '../../../../components/uikit-sdk/Button/types.js';
|
|
13
|
-
import '../../../../components/uikit-sdk/Svg/types.js';
|
|
14
|
-
import '../../../../contexts/ModalContext.js';
|
|
15
|
-
import '../../../FullBondsView/FullBondsView.js';
|
|
16
|
-
import '../../../../components/uikit-sdk/Select/types.js';
|
|
17
|
-
import '../../../../utils/campaignStyles.js';
|
|
5
|
+
import Svg from '../../../../components/uikit-sdk/Svg/index.js';
|
|
18
6
|
import { useURLByEnvironment } from '../../../../state/useSDKConfig.js';
|
|
19
7
|
import { generateImageFromTemplate } from './utils.js';
|
|
20
8
|
import track from '../../../../utils/track.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkShare.js","sources":["../../../../../src/views/YourBondsModal/components/LinkShare/LinkShare.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { Spinner } from 'theme-ui'\nimport
|
|
1
|
+
{"version":3,"file":"LinkShare.js","sources":["../../../../../src/views/YourBondsModal/components/LinkShare/LinkShare.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { Spinner } from 'theme-ui'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport { useURLByEnvironment } from '../../../../state/useSDKConfig'\nimport { UserBill, UserBillNftData } from '../../../../types/yourbonds'\nimport { generateImageFromTemplate } from './utils'\nimport track from '../../../../utils/track'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\nconst LinkShare = ({ userBill }: { userBill: UserBill | undefined }) => {\n // State\n const [isLoading, setIsLoading] = useState<boolean[]>([false, false])\n\n // Static data\n const bondNFTData: UserBillNftData | undefined = userBill?.nftData\n const chainId = userBill?.bond?.chainId\n // Hooks\n const mainUrl = useURLByEnvironment('mainUrl')\n const apiUrl = useURLByEnvironment('apiV2') ?? ''\n const bondAddress =\n userBill?.bond?.chainId === ChainId.SOL ? bondNFTData?.contractAddress : bondNFTData?.data?.billNftAddress\n const shareUrl = `${mainUrl}/bond-nft?bondAddress=${bondAddress}%26bondChain=${bondNFTData?.chainId}%26tokenId=${userBill?.id}%26af=${bondNFTData?.data?.createdAddressOwner}`\n const text = `I've filled my bags with $${userBill?.bond?.earnToken.symbol} at a discount, thanks to Bonds-only on @apebond! Check it out: `\n const handleShare = async (url: string, social: string) => {\n if (isLoading[0] || isLoading[1]) {\n console.log('something is off')\n return\n }\n track({\n event: 'referral',\n chain: chainId,\n data: {\n cat: `${social.toUpperCase()} Share Bond`,\n bond: bondNFTData?.data?.payoutTokenData.symbol,\n },\n })\n setIsLoading(social === 'x' ? [true, false] : [false, true])\n await generateImageFromTemplate(bondNFTData, url, apiUrl)\n setIsLoading([false, false])\n }\n\n return (\n <Flex\n sx={{\n background: ['white3', 'white3', 'white3', 'white4'],\n borderRadius: 'normal',\n justifyContent: 'center',\n alignItems: 'center',\n p: '2px 10px 2px 5px',\n fontWeight: 600,\n fontSize: '12px',\n height: '22px',\n cursor: 'pointer',\n '&:hover': {\n background: 'white5',\n },\n }}\n onClick={() => handleShare(`https://twitter.com/intent/tweet?text=${text}&url=${shareUrl}`, 'x')}\n >\n <Flex>{isLoading[0] ? <Spinner size={16} /> : <Svg icon=\"twitter\" width={20} />}</Flex>\n <Flex>SHARE</Flex>\n </Flex>\n )\n}\n\nexport default LinkShare\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;AAUA,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAsC,KAAI;;AAErE,IAAA,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;;AAGrE,IAAA,MAAM,WAAW,GAAgC,QAAQ,EAAE,OAAO;AAClE,IAAA,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,EAAE,OAAO;;AAEvC,IAAA,MAAM,OAAO,GAAG,mBAAmB,CAAC,SAAS,CAAC;IAC9C,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE;IACjD,MAAM,WAAW,GACf,QAAQ,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,GAAG,WAAW,EAAE,eAAe,GAAG,WAAW,EAAE,IAAI,EAAE,cAAc;IAC5G,MAAM,QAAQ,GAAG,CAAA,EAAG,OAAO,yBAAyB,WAAW,CAAA,aAAA,EAAgB,WAAW,EAAE,OAAO,cAAc,QAAQ,EAAE,EAAE,CAAA,MAAA,EAAS,WAAW,EAAE,IAAI,EAAE,mBAAmB,CAAA,CAAE;IAC9K,MAAM,IAAI,GAAG,CAAA,0BAAA,EAA6B,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAA,gEAAA,CAAkE;IAC5I,MAAM,WAAW,GAAG,OAAO,GAAW,EAAE,MAAc,KAAI;QACxD,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;AAChC,YAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC/B;QACF;AACA,QAAA,KAAK,CAAC;AACJ,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,IAAI,EAAE;AACJ,gBAAA,GAAG,EAAE,CAAA,EAAG,MAAM,CAAC,WAAW,EAAE,CAAA,WAAA,CAAa;AACzC,gBAAA,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM;AAChD,aAAA;AACF,SAAA,CAAC;QACF,YAAY,CAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAgB,CAAC;QAC5D,MAAM,yBAAyB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC;AACzD,QAAA,YAAY,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9B,IAAA,CAAC;AAED,IAAA,QACEA,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;YACF,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACpD,YAAA,YAAY,EAAE,QAAQ;AACtB,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,CAAC,EAAE,kBAAkB;AACrB,YAAA,UAAU,EAAE,GAAG;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,SAAS,EAAE;AACT,gBAAA,UAAU,EAAE,QAAQ;AACrB,aAAA;SACF,EACD,OAAO,EAAE,MAAM,WAAW,CAAC,CAAA,sCAAA,EAAyC,IAAI,CAAA,KAAA,EAAQ,QAAQ,CAAA,CAAE,EAAE,GAAG,CAAC,EAAA,QAAA,EAAA,CAEhGC,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAE,SAAS,CAAC,CAAC,CAAC,GAAGA,GAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GAAGA,GAAA,CAAC,GAAG,EAAA,EAAC,IAAI,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,EAAA,CAAI,EAAA,CAAQ,EACvFA,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,OAAA,EAAA,CAAa,CAAA,EAAA,CACb;AAEX;;;;"}
|
|
@@ -1,22 +1,13 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'theme-ui/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
|
-
import Svg from '../../../../components/uikit-sdk/Svg/index.js';
|
|
4
|
-
import Flex from '../../../../components/uikit-sdk/Flex/index.js';
|
|
5
|
-
import Text from '../../../../components/uikit-sdk/Text/index.js';
|
|
6
|
-
import '../../../../components/uikit-sdk/Checkbox/types.js';
|
|
7
|
-
import Skeleton from '../../../../components/uikit-sdk/Skeleton/index.js';
|
|
8
|
-
import '../../../../components/uikit-sdk/TooltipBubble/index.js';
|
|
9
|
-
import 'theme-ui';
|
|
10
3
|
import { useAnimation, AnimatePresence, motion } from 'framer-motion';
|
|
11
|
-
import '../../../../components/uikit-sdk/Button/types.js';
|
|
12
|
-
import '../../../../components/uikit-sdk/Svg/types.js';
|
|
13
|
-
import '../../../../contexts/ModalContext.js';
|
|
14
|
-
import '../../../FullBondsView/FullBondsView.js';
|
|
15
|
-
import '../../../../components/uikit-sdk/Select/types.js';
|
|
16
|
-
import '../../../../utils/campaignStyles.js';
|
|
17
4
|
import LinkShare from '../LinkShare/LinkShare.js';
|
|
18
5
|
import { useIsMobile } from '../../../../hooks/useIsMobile.js';
|
|
19
6
|
import ProgressiveImage from '../../../../components/ProgressiveImage/index.js';
|
|
7
|
+
import Flex from '../../../../components/uikit-sdk/Flex/index.js';
|
|
8
|
+
import Svg from '../../../../components/uikit-sdk/Svg/index.js';
|
|
9
|
+
import Text from '../../../../components/uikit-sdk/Text/index.js';
|
|
10
|
+
import Skeleton from '../../../../components/uikit-sdk/Skeleton/index.js';
|
|
20
11
|
|
|
21
12
|
const NftImage = ({ userBill, showNFTImg, setShowNFTImg, }) => {
|
|
22
13
|
// Hooks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NFTImage.js","sources":["../../../../../src/views/YourBondsModal/components/NFTImage/NFTImage.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { Flex, Skeleton, Svg, Text } from '../../../../components/uikit-sdk'\nimport { AnimatePresence, motion, useAnimation } from 'framer-motion'\nimport LinkShare from '../LinkShare/LinkShare'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { useIsMobile } from '../../../../hooks/useIsMobile'\nimport ProgressiveImage from '../../../../components/ProgressiveImage'\n\nconst NftImage = ({\n userBill,\n showNFTImg,\n setShowNFTImg,\n}: {\n userBill?: UserBill\n showNFTImg: boolean\n setShowNFTImg: (value: boolean) => void\n}) => {\n // Hooks\n const controls = useAnimation()\n const isMobile = useIsMobile()\n\n // State\n const [isOpenTraits, setIsOpenTraits] = useState<boolean>(false)\n\n //Static Data\n const bondNFTData = userBill?.nftData\n const BILL_ATTRIBUTES = ['The Legend', 'The Location', 'The Moment', 'The Trend', 'The Innovation']\n const attributes = bondNFTData?.attributes?.filter((attrib) => BILL_ATTRIBUTES.includes(attrib.trait_type))\n\n const openAnimation = () => {\n controls.start({\n scale: isMobile ? [1, 2] : [1, 3],\n zIndex: 1000,\n transition: { duration: 0.2 },\n })\n }\n\n const closeAnimation = () => {\n controls.start({\n scale: isMobile ? [2, 1] : [2, 1],\n zIndex: -1,\n transition: { duration: 0.3 },\n })\n setShowNFTImg(false)\n setIsOpenTraits(false)\n }\n return (\n <>\n <AnimatePresence>\n {showNFTImg && (\n <motion.div\n animate={{ opacity: 1 }}\n transition={{ duration: 1, delay: 0.3 }}\n sx={{\n position: 'absolute',\n display: ['flex'],\n top: ['-180px', '-180px', '-240px'],\n right: ['50%', '50%', '50%', '-13%'],\n transform: ['translateX(50%)', 'translateX(50%)', 'translateX(50%)', 'unset'],\n opacity: 0,\n zIndex: 5000,\n }}\n >\n <LinkShare userBill={userBill} />\n </motion.div>\n )}\n </AnimatePresence>\n <AnimatePresence>\n {bondNFTData?.image && (\n <motion.div\n animate={controls}\n onClick={() => {\n if (showNFTImg) {\n closeAnimation()\n } else {\n openAnimation()\n }\n }}\n onAnimationStart={() => {\n setShowNFTImg(true)\n }}\n sx={{\n display: 'flex',\n zIndex: -1,\n position: showNFTImg ? 'fixed' : 'absolute',\n bottom: 'calc(100% - 10px)',\n left: '25%',\n width: '50%',\n aspectRatio: '1 / 0.56',\n cursor: 'pointer',\n borderRadius: 'normal',\n flexDirection: 'column',\n '&: hover': {\n zIndex: [1000, 1000, 1000, '1000 !important'],\n },\n }}\n >\n <Flex\n sx={{\n display: showNFTImg ? 'none' : 'flex',\n position: 'absolute',\n zIndex: 121,\n width: '100%',\n height: '100%',\n opacity: 0,\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 700,\n borderRadius: 'normal',\n '&: hover': {\n zIndex: 1000,\n opacity: 0.8,\n background: 'linear-gradient(90deg, rgba(49, 46, 122, 0.70) 0%, rgba(92, 79, 174, 0.70) 100%)',\n backdropFilter: ' blur(2px)',\n },\n }}\n >\n View NFT {'>'}\n </Flex>\n {showNFTImg && (\n <Flex\n sx={{\n position: 'absolute',\n top: '5px',\n right: '5px',\n background: 'grey',\n opacity: 0.9,\n p: '2px',\n borderRadius: '50%',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <Flex sx={{ width: '6px' }}>\n <Svg icon=\"close\" />\n </Flex>\n </Flex>\n )}\n <ProgressiveImage src={`${bondNFTData?.image}`} blurSrc={`https://ape.bond/images/bills/bluredNFT.png`} />\n {showNFTImg && (\n <Flex\n sx={{\n position: 'absolute',\n bottom: ['calc(-35% + 1px)', 'calc(-35% + 1px)', 'calc(-26% + 1px)'],\n width: '100%',\n justifyContent: 'center',\n }}\n >\n <Flex\n sx={{\n flexDirection: 'column',\n width: '100%',\n minWidth: '250px',\n pb: '10px',\n alignItems: 'center',\n transform: [\n 'scale(0.5) translateY(-50%)',\n 'scale(0.5) translateY(-50%)',\n 'scale(0.5) translateY(-50%)',\n 'scale(0.4) translateY(-75%)',\n ],\n }}\n >\n <Flex\n sx={{\n justifyContent: 'space-between',\n height: '24px',\n backgroundColor: 'white3',\n px: '15px',\n width: '100%',\n borderRadius: `${isOpenTraits ? '6px 6px 0px 0px' : 'normal'}`,\n }}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation()\n setIsOpenTraits(!isOpenTraits)\n }}\n >\n <Flex sx={{ gap: '10px', alignItems: 'center' }}>\n <Svg icon=\"tag\" direction=\"down\" />\n <Text sx={{ fontSize: '12px', fontWeight: 400, color: 'text', opacity: '0.6' }}>Traits</Text>\n </Flex>\n <Svg icon=\"caret\" direction={isOpenTraits ? 'up' : 'down'} />\n </Flex>\n <AnimatePresence>\n {isOpenTraits && (\n <motion.div\n initial={{ height: 0 }}\n animate={{ height: 'fit-content' }}\n transition={{ opacity: { duration: 0.2 } }}\n exit={{ height: 0 }}\n sx={{\n overflow: 'hidden',\n width: '100%',\n position: 'absolute',\n top: '24px',\n borderRadius: '0 0 10px 10px',\n }}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation()\n setIsOpenTraits(!isOpenTraits)\n }}\n >\n <Flex sx={{ flexDirection: 'column' }}>\n {attributes\n ? attributes.map((a, index) => (\n <Flex\n key={`${a.value}-${index}`}\n sx={{ background: 'white4', width: '100%', padding: '2px 8px', height: '22px' }}\n >\n <Text sx={{ fontSize: '10px', fontWeight: 500, mr: '3px' }}>{a?.trait_type} -</Text>\n <Text sx={{ fontSize: '10px', fontWeight: 500 }}>{a?.value}</Text>\n </Flex>\n ))\n : BILL_ATTRIBUTES.map((attrib, index) => {\n return (\n <Flex\n key={`${attrib}-${index}`}\n sx={{ background: 'white4', width: '100%', padding: '2px 8px', height: '22px' }}\n >\n <Text sx={{ fontSize: '10px', fontWeight: 500 }}>{attrib}</Text>\n <Skeleton width=\"150px\" />\n </Flex>\n )\n })}\n </Flex>\n </motion.div>\n )}\n </AnimatePresence>\n </Flex>\n </Flex>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </>\n )\n}\n\nexport default NftImage\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NFTImage.js","sources":["../../../../../src/views/YourBondsModal/components/NFTImage/NFTImage.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport { AnimatePresence, motion, useAnimation } from 'framer-motion'\nimport LinkShare from '../LinkShare/LinkShare'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { useIsMobile } from '../../../../hooks/useIsMobile'\nimport ProgressiveImage from '../../../../components/ProgressiveImage'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Svg from '../../../../components/uikit-sdk/Svg'\nimport Text from '../../../../components/uikit-sdk/Text'\nimport Skeleton from '../../../../components/uikit-sdk/Skeleton'\n\nconst NftImage = ({\n userBill,\n showNFTImg,\n setShowNFTImg,\n}: {\n userBill?: UserBill\n showNFTImg: boolean\n setShowNFTImg: (value: boolean) => void\n}) => {\n // Hooks\n const controls = useAnimation()\n const isMobile = useIsMobile()\n\n // State\n const [isOpenTraits, setIsOpenTraits] = useState<boolean>(false)\n\n //Static Data\n const bondNFTData = userBill?.nftData\n const BILL_ATTRIBUTES = ['The Legend', 'The Location', 'The Moment', 'The Trend', 'The Innovation']\n const attributes = bondNFTData?.attributes?.filter((attrib) => BILL_ATTRIBUTES.includes(attrib.trait_type))\n\n const openAnimation = () => {\n controls.start({\n scale: isMobile ? [1, 2] : [1, 3],\n zIndex: 1000,\n transition: { duration: 0.2 },\n })\n }\n\n const closeAnimation = () => {\n controls.start({\n scale: isMobile ? [2, 1] : [2, 1],\n zIndex: -1,\n transition: { duration: 0.3 },\n })\n setShowNFTImg(false)\n setIsOpenTraits(false)\n }\n return (\n <>\n <AnimatePresence>\n {showNFTImg && (\n <motion.div\n animate={{ opacity: 1 }}\n transition={{ duration: 1, delay: 0.3 }}\n sx={{\n position: 'absolute',\n display: ['flex'],\n top: ['-180px', '-180px', '-240px'],\n right: ['50%', '50%', '50%', '-13%'],\n transform: ['translateX(50%)', 'translateX(50%)', 'translateX(50%)', 'unset'],\n opacity: 0,\n zIndex: 5000,\n }}\n >\n <LinkShare userBill={userBill} />\n </motion.div>\n )}\n </AnimatePresence>\n <AnimatePresence>\n {bondNFTData?.image && (\n <motion.div\n animate={controls}\n onClick={() => {\n if (showNFTImg) {\n closeAnimation()\n } else {\n openAnimation()\n }\n }}\n onAnimationStart={() => {\n setShowNFTImg(true)\n }}\n sx={{\n display: 'flex',\n zIndex: -1,\n position: showNFTImg ? 'fixed' : 'absolute',\n bottom: 'calc(100% - 10px)',\n left: '25%',\n width: '50%',\n aspectRatio: '1 / 0.56',\n cursor: 'pointer',\n borderRadius: 'normal',\n flexDirection: 'column',\n '&: hover': {\n zIndex: [1000, 1000, 1000, '1000 !important'],\n },\n }}\n >\n <Flex\n sx={{\n display: showNFTImg ? 'none' : 'flex',\n position: 'absolute',\n zIndex: 121,\n width: '100%',\n height: '100%',\n opacity: 0,\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 700,\n borderRadius: 'normal',\n '&: hover': {\n zIndex: 1000,\n opacity: 0.8,\n background: 'linear-gradient(90deg, rgba(49, 46, 122, 0.70) 0%, rgba(92, 79, 174, 0.70) 100%)',\n backdropFilter: ' blur(2px)',\n },\n }}\n >\n View NFT {'>'}\n </Flex>\n {showNFTImg && (\n <Flex\n sx={{\n position: 'absolute',\n top: '5px',\n right: '5px',\n background: 'grey',\n opacity: 0.9,\n p: '2px',\n borderRadius: '50%',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <Flex sx={{ width: '6px' }}>\n <Svg icon=\"close\" />\n </Flex>\n </Flex>\n )}\n <ProgressiveImage src={`${bondNFTData?.image}`} blurSrc={`https://ape.bond/images/bills/bluredNFT.png`} />\n {showNFTImg && (\n <Flex\n sx={{\n position: 'absolute',\n bottom: ['calc(-35% + 1px)', 'calc(-35% + 1px)', 'calc(-26% + 1px)'],\n width: '100%',\n justifyContent: 'center',\n }}\n >\n <Flex\n sx={{\n flexDirection: 'column',\n width: '100%',\n minWidth: '250px',\n pb: '10px',\n alignItems: 'center',\n transform: [\n 'scale(0.5) translateY(-50%)',\n 'scale(0.5) translateY(-50%)',\n 'scale(0.5) translateY(-50%)',\n 'scale(0.4) translateY(-75%)',\n ],\n }}\n >\n <Flex\n sx={{\n justifyContent: 'space-between',\n height: '24px',\n backgroundColor: 'white3',\n px: '15px',\n width: '100%',\n borderRadius: `${isOpenTraits ? '6px 6px 0px 0px' : 'normal'}`,\n }}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation()\n setIsOpenTraits(!isOpenTraits)\n }}\n >\n <Flex sx={{ gap: '10px', alignItems: 'center' }}>\n <Svg icon=\"tag\" direction=\"down\" />\n <Text sx={{ fontSize: '12px', fontWeight: 400, color: 'text', opacity: '0.6' }}>Traits</Text>\n </Flex>\n <Svg icon=\"caret\" direction={isOpenTraits ? 'up' : 'down'} />\n </Flex>\n <AnimatePresence>\n {isOpenTraits && (\n <motion.div\n initial={{ height: 0 }}\n animate={{ height: 'fit-content' }}\n transition={{ opacity: { duration: 0.2 } }}\n exit={{ height: 0 }}\n sx={{\n overflow: 'hidden',\n width: '100%',\n position: 'absolute',\n top: '24px',\n borderRadius: '0 0 10px 10px',\n }}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation()\n setIsOpenTraits(!isOpenTraits)\n }}\n >\n <Flex sx={{ flexDirection: 'column' }}>\n {attributes\n ? attributes.map((a, index) => (\n <Flex\n key={`${a.value}-${index}`}\n sx={{ background: 'white4', width: '100%', padding: '2px 8px', height: '22px' }}\n >\n <Text sx={{ fontSize: '10px', fontWeight: 500, mr: '3px' }}>{a?.trait_type} -</Text>\n <Text sx={{ fontSize: '10px', fontWeight: 500 }}>{a?.value}</Text>\n </Flex>\n ))\n : BILL_ATTRIBUTES.map((attrib, index) => {\n return (\n <Flex\n key={`${attrib}-${index}`}\n sx={{ background: 'white4', width: '100%', padding: '2px 8px', height: '22px' }}\n >\n <Text sx={{ fontSize: '10px', fontWeight: 500 }}>{attrib}</Text>\n <Skeleton width=\"150px\" />\n </Flex>\n )\n })}\n </Flex>\n </motion.div>\n )}\n </AnimatePresence>\n </Flex>\n </Flex>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </>\n )\n}\n\nexport default NftImage\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
|
|
@@ -1,22 +1,9 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'theme-ui/jsx-runtime';
|
|
2
|
-
import '../../../../components/uikit-sdk/Svg/types.js';
|
|
3
|
-
import Flex from '../../../../components/uikit-sdk/Flex/index.js';
|
|
4
|
-
import Text from '../../../../components/uikit-sdk/Text/index.js';
|
|
5
|
-
import '../../../../components/uikit-sdk/Checkbox/types.js';
|
|
6
|
-
import 'theme-ui';
|
|
7
|
-
import '../../../../components/uikit-sdk/Skeleton/types.js';
|
|
8
|
-
import '../../../../components/uikit-sdk/Skeleton/styles.js';
|
|
9
|
-
import '../../../../components/uikit-sdk/TooltipBubble/index.js';
|
|
10
|
-
import 'react';
|
|
11
|
-
import 'framer-motion';
|
|
12
|
-
import Button from '../../../../components/uikit-sdk/Button/Button.js';
|
|
13
|
-
import '../../../../components/uikit-sdk/Button/types.js';
|
|
14
|
-
import '../../../../contexts/ModalContext.js';
|
|
15
|
-
import '../../../FullBondsView/FullBondsView.js';
|
|
16
|
-
import '../../../../components/uikit-sdk/Select/types.js';
|
|
17
|
-
import '../../../../utils/campaignStyles.js';
|
|
18
2
|
import TokenImage from '../../../../components/uikit-sdk/TokenImage/index.js';
|
|
19
3
|
import { getVestingTermsString } from '../../../../utils/displayHelpers.js';
|
|
4
|
+
import Flex from '../../../../components/uikit-sdk/Flex/index.js';
|
|
5
|
+
import Button from '../../../../components/uikit-sdk/Button/Button.js';
|
|
6
|
+
import Text from '../../../../components/uikit-sdk/Text/index.js';
|
|
20
7
|
|
|
21
8
|
const CardRecommendation = ({ cardIndex, bond, handleBuyBondClick, }) => {
|
|
22
9
|
return (jsxs(Flex, { sx: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardRecommendation.js","sources":["../../../../../src/views/YourBondsModal/components/Recommendations/CardRecommendation.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"CardRecommendation.js","sources":["../../../../../src/views/YourBondsModal/components/Recommendations/CardRecommendation.tsx"],"sourcesContent":["import TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport { BondRecommendation } from '../../../../state/recommendations/useGetBondRecommendations'\nimport { getVestingTermsString } from '../../../../utils/displayHelpers'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport Text from '../../../../components/uikit-sdk/Text'\n\nconst CardRecommendation = ({\n cardIndex,\n bond,\n handleBuyBondClick,\n}: {\n cardIndex: number\n bond: BondRecommendation\n handleBuyBondClick: (chain: number, bondAddress: string, cardIndex: number) => void\n}) => {\n return (\n <Flex\n sx={{\n flexDirection: 'column',\n width: ['100%', '100%', '100%', '50%'],\n gap: '10px',\n background: 'white3',\n p: '10px',\n borderRadius: '10px',\n }}\n >\n <Flex\n sx={{\n flexDirection: 'column',\n width: '100%',\n borderRadius: '10px',\n justifyContent: 'space-between',\n gap: '14px',\n }}\n >\n <Flex sx={{ alignItems: 'center', justifyContent: 'space-between', gap: '10px' }}>\n <Flex sx={{ gap: '5px', justifyContent: 'center', alignItems: 'center' }}>\n <TokenImage symbol={bond.payoutTokenName} chain={bond.chainId} size={25} />\n <Text sx={{ fontSize: '14px' }}>{bond.payoutTokenName}</Text>\n <Text sx={{ fontSize: '14px', fontWeight: 400, opacity: 0.6 }}>{getVestingTermsString(bond as any)}</Text>\n </Flex>\n <Flex sx={{ flexDirection: 'column', gap: '1px', alignItems: 'end' }}>\n <Text sx={{ color: 'success', fontSize: '12px', fontWeight: 700 }}>{bond.bonus.toFixed(2)}%</Text>\n </Flex>\n </Flex>\n </Flex>\n <Button\n onClick={() => handleBuyBondClick(bond.chainId, bond.billAddress, cardIndex)}\n sx={{ width: '100%', lineHeight: '20px', height: '30px', fontSize: '14px' }}\n >\n Buy\n </Button>\n </Flex>\n )\n}\n\nexport default CardRecommendation\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAOA,MAAM,kBAAkB,GAAG,CAAC,EAC1B,SAAS,EACT,IAAI,EACJ,kBAAkB,GAKnB,KAAI;AACH,IAAA,QACEA,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,YAAA,aAAa,EAAE,QAAQ;YACvB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;AACtC,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,CAAC,EAAE,MAAM;AACT,YAAA,YAAY,EAAE,MAAM;AACrB,SAAA,EAAA,QAAA,EAAA,CAEDC,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,oBAAA,aAAa,EAAE,QAAQ;AACvB,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,YAAY,EAAE,MAAM;AACpB,oBAAA,cAAc,EAAE,eAAe;AAC/B,oBAAA,GAAG,EAAE,MAAM;iBACZ,EAAA,QAAA,EAEDD,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAC9EA,KAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,aACtEC,GAAA,CAAC,UAAU,IAAC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAI,EAC3EA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAA,QAAA,EAAG,IAAI,CAAC,eAAe,GAAQ,EAC7DA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAA,QAAA,EAAG,qBAAqB,CAAC,IAAW,CAAC,GAAQ,CAAA,EAAA,CACrG,EACPA,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAClED,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAA,QAAA,EAAA,CAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAA,CAC7F,CAAA,EAAA,CACF,GACF,EACPC,GAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAE,MAAM,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,EAC5E,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,KAAA,EAAA,CAGpE,CAAA,EAAA,CACJ;AAEX;;;;"}
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'theme-ui/jsx-runtime';
|
|
2
|
-
import '../../../../components/uikit-sdk/Svg/types.js';
|
|
3
2
|
import Flex from '../../../../components/uikit-sdk/Flex/index.js';
|
|
4
|
-
import 'theme-ui';
|
|
5
|
-
import '../../../../components/uikit-sdk/Text/types.js';
|
|
6
|
-
import '../../../../components/uikit-sdk/Checkbox/types.js';
|
|
7
3
|
import Skeleton from '../../../../components/uikit-sdk/Skeleton/index.js';
|
|
8
|
-
import '../../../../components/uikit-sdk/TooltipBubble/index.js';
|
|
9
|
-
import 'react';
|
|
10
|
-
import 'framer-motion';
|
|
11
|
-
import '../../../../components/uikit-sdk/Button/types.js';
|
|
12
|
-
import '../../../../contexts/ModalContext.js';
|
|
13
|
-
import '../../../FullBondsView/FullBondsView.js';
|
|
14
|
-
import '../../../../components/uikit-sdk/Select/types.js';
|
|
15
|
-
import '../../../../utils/campaignStyles.js';
|
|
16
4
|
|
|
17
5
|
const RecSkeleton = () => {
|
|
18
6
|
return (jsxs(Flex, { sx: { width: '100%', gap: ['10px', '10px', '10px', '15px'], height: '84px' }, children: [jsx(Skeleton, { animation: "waves", sx: {
|