diff --git a/web-components/src/components/cards/Card.tsx b/web-components/src/components/cards/Card.tsx index 593658ddad..a471901a5c 100644 --- a/web-components/src/components/cards/Card.tsx +++ b/web-components/src/components/cards/Card.tsx @@ -1,7 +1,11 @@ -import { Card as MuiCard, SxProps } from '@mui/material'; - -import type { Theme } from '../../theme/muiTheme'; +import { Card as MuiCard, CardProps as MuiCardProps } from '@mui/material'; +type CardProps = MuiCardProps & { + width?: string; + height?: string; + borderColor?: string; + borderRadius?: string; +}; export function Card({ children, width, @@ -10,24 +14,12 @@ export function Card({ elevation = 0, borderColor, borderRadius, - className, sx = [], -}: { - children?: any; - width?: string; - height?: string; - onClick?: () => void; - elevation?: number; - borderColor?: string; - borderRadius?: string; - className?: string; - sx?: SxProps; -}): JSX.Element { + ...props +}: CardProps): JSX.Element { return ( {children} diff --git a/web-marketplace/src/components/molecules/AmountWithCurrency/AmountWithCurrency.tsx b/web-marketplace/src/components/molecules/AmountWithCurrency/AmountWithCurrency.tsx index a12a6780ac..3a2bf62d89 100644 --- a/web-marketplace/src/components/molecules/AmountWithCurrency/AmountWithCurrency.tsx +++ b/web-marketplace/src/components/molecules/AmountWithCurrency/AmountWithCurrency.tsx @@ -33,6 +33,7 @@ export const AmountWithCurrency = ({ void; baseDenom: string; displayDenom: string; + bankDenom: string; }) { const { _ } = useLingui(); @@ -53,6 +55,7 @@ export function CreditsAmountHeader({ diff --git a/web-marketplace/src/components/molecules/CreditsAmount/CreditsAmount.mock.tsx b/web-marketplace/src/components/molecules/CreditsAmount/CreditsAmount.mock.tsx index 61b8a083f3..c98016b48c 100644 --- a/web-marketplace/src/components/molecules/CreditsAmount/CreditsAmount.mock.tsx +++ b/web-marketplace/src/components/molecules/CreditsAmount/CreditsAmount.mock.tsx @@ -3,7 +3,7 @@ import { EVMOS_DENOM, REGEN_DENOM, USDC_DENOM, - USDCAXL_DENOM, + AXELAR_USDC_DENOM, } from 'config/allowedBaseDenoms'; import { UISellOrderInfo } from 'pages/Projects/AllProjects/AllProjects.types'; @@ -41,7 +41,7 @@ export const cryptoSellOrders = [ }, { id: '4', - askBaseDenom: USDCAXL_DENOM, + askBaseDenom: AXELAR_USDC_DENOM, askDenom: 'ibc/456', askAmount: '3000000', quantity: '10', @@ -69,7 +69,7 @@ export const cardSellOrders = cryptoSellOrders.map((order, i) => ({ export const cryptoCurrencies = [ { askDenom: REGEN_DENOM, askBaseDenom: REGEN_DENOM }, { askDenom: 'ibc/123', askBaseDenom: USDC_DENOM }, - { askDenom: 'ibc/456', askBaseDenom: USDCAXL_DENOM }, + { askDenom: 'ibc/456', askBaseDenom: AXELAR_USDC_DENOM }, { askDenom: 'ibc/789', askBaseDenom: EVMOS_DENOM }, ]; diff --git a/web-marketplace/src/components/molecules/CreditsAmount/CreditsAmount.tsx b/web-marketplace/src/components/molecules/CreditsAmount/CreditsAmount.tsx index a3b4ae0232..3727c36e66 100644 --- a/web-marketplace/src/components/molecules/CreditsAmount/CreditsAmount.tsx +++ b/web-marketplace/src/components/molecules/CreditsAmount/CreditsAmount.tsx @@ -309,6 +309,7 @@ export const CreditsAmount = ({ diff --git a/web-marketplace/src/components/molecules/CreditsAmount/CurrencyInput.tsx b/web-marketplace/src/components/molecules/CreditsAmount/CurrencyInput.tsx index 3ff75ccd08..be0bd07342 100644 --- a/web-marketplace/src/components/molecules/CreditsAmount/CurrencyInput.tsx +++ b/web-marketplace/src/components/molecules/CreditsAmount/CurrencyInput.tsx @@ -214,6 +214,7 @@ export const CurrencyInput = ({ card || cryptoCurrencies.length === 1 ? ( ) : ( @@ -224,6 +225,7 @@ export const CurrencyInput = ({ element: () => ( ; iconSx?: SxProps; className?: string; @@ -27,19 +29,22 @@ export interface Props { const DenomIcon = ({ baseDenom, + bankDenom, sx = [], iconSx, className = '', }: Props): JSX.Element => { + const ibcDenom = bankDenom?.includes(IBC_DENOM_PREFIX); + return ( - {baseDenom === GRAVITY_USDC_DENOM || - (baseDenom === USDC_DENOM && ( - - ))} - {baseDenom === AXELAR_USDC_DENOM && ( - + {baseDenom === GRAVITY_USDC_DENOM && ( + )} + {baseDenom === AXELAR_USDC_DENOM && + // On mainnet, AXELAR_USDC_DENOM and USDC_DENOM have the same value: uusd + // so we also use the bank denom to check whether it's USDC.axl (IBC) or native USDC + ibcDenom && } {baseDenom === EEUR_DENOM && ( )} @@ -50,9 +55,8 @@ const DenomIcon = ({ )} {baseDenom === USD_DENOM && } - - {baseDenom === USDCAXL_DENOM && ( - + {baseDenom === USDC_DENOM && !ibcDenom && ( + )} ); diff --git a/web-marketplace/src/components/molecules/DenomIconWithCurrency/DenomIconWithCurrency.tsx b/web-marketplace/src/components/molecules/DenomIconWithCurrency/DenomIconWithCurrency.tsx index 2730182235..5ff3bce2fb 100644 --- a/web-marketplace/src/components/molecules/DenomIconWithCurrency/DenomIconWithCurrency.tsx +++ b/web-marketplace/src/components/molecules/DenomIconWithCurrency/DenomIconWithCurrency.tsx @@ -6,11 +6,13 @@ import { cn } from 'web-components/src/utils/styles/cn'; export function DenomIconWithCurrency({ baseDenom, + bankDenom, displayDenom, className, tooltipText, }: { baseDenom: string | undefined; + bankDenom: string | undefined; displayDenom: string; className?: string; tooltipText?: string; @@ -19,6 +21,7 @@ export function DenomIconWithCurrency({ {displayDenom} diff --git a/web-marketplace/src/components/organisms/Order/Order.Summary.tsx b/web-marketplace/src/components/organisms/Order/Order.Summary.tsx index bd702a6fb3..c23c0c1b11 100644 --- a/web-marketplace/src/components/organisms/Order/Order.Summary.tsx +++ b/web-marketplace/src/components/organisms/Order/Order.Summary.tsx @@ -160,6 +160,7 @@ export const OrderSummary = ({ value={ } diff --git a/web-marketplace/src/components/organisms/Order/Order.tsx b/web-marketplace/src/components/organisms/Order/Order.tsx index 568f585578..76ea26be7f 100644 --- a/web-marketplace/src/components/organisms/Order/Order.tsx +++ b/web-marketplace/src/components/organisms/Order/Order.tsx @@ -74,6 +74,7 @@ export const Order = ({ orderData, allowedDenoms, className }: OrderProps) => { return ( <> diff --git a/web-marketplace/src/config/allowedBaseDenoms.ts b/web-marketplace/src/config/allowedBaseDenoms.ts index ca4e6c0b78..fb4d75b150 100644 --- a/web-marketplace/src/config/allowedBaseDenoms.ts +++ b/web-marketplace/src/config/allowedBaseDenoms.ts @@ -8,10 +8,9 @@ export const EEUR_DENOM = 'eeur'; export const REGEN_DENOM = 'uregen'; export const EVMOS_DENOM = 'atevmos'; export const USD_DENOM = 'usd'; -export const USDC_DENOM = 'usdc'; -export const USDCAXL_DENOM = 'usdcaxl'; +export const USDC_DENOM = 'uusdc'; -export const USD_DENOMS = [GRAVITY_USDC_DENOM, AXELAR_USDC_DENOM]; +export const USD_DENOMS = [GRAVITY_USDC_DENOM, AXELAR_USDC_DENOM, USDC_DENOM]; export const EUR_DENOMS = [EEUR_DENOM]; export const UPPERCASE_DENOM = [ REGEN_DENOM, diff --git a/web-marketplace/src/hooks/useQuerySellOrders.ts b/web-marketplace/src/hooks/useQuerySellOrders.ts deleted file mode 100644 index d34577bc0b..0000000000 --- a/web-marketplace/src/hooks/useQuerySellOrders.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { useCallback, useEffect, useState } from 'react'; -import { - QueryClientImpl, - SellOrderInfo, -} from '@regen-network/api/lib/generated/regen/ecocredit/marketplace/v1/query'; -import uniq from 'lodash/uniq'; - -import { queryDenomTraceByHashes } from 'lib/ibc/transfer/api'; - -import { useLedger } from '../ledger'; - -export const IBC_DENOM_PREFIX = 'ibc/'; - -export type SellOrderInfoExtented = SellOrderInfo & { - askBaseDenom: string; - askUsdAmount: number; -}; - -type QuerySellOrdersResponseExtented = { - sellOrders: SellOrderInfoExtented[]; -}; - -export type RefetchSellOrdersResponse = Promise< - SellOrderInfoExtented[] | undefined ->; - -export const useQuerySellOrders = function (): { - sellOrdersResponse: QuerySellOrdersResponseExtented | undefined; - refetchSellOrders: () => RefetchSellOrdersResponse; -} { - const { api } = useLedger(); - const [queryClient, setQueryClient] = useState(); - - const [sellOrdersResponse, setSellOrdersResponse] = useState< - QuerySellOrdersResponseExtented | undefined - >(undefined); - - useEffect(() => { - if (!api?.queryClient || queryClient !== undefined) return; - const _queryClient: QueryClientImpl = new QueryClientImpl(api.queryClient); - setQueryClient(_queryClient); - }, [api?.queryClient, queryClient]); - - const refetchSellOrders = useCallback(async (): RefetchSellOrdersResponse => { - if (queryClient) { - // Fetching all sell orders - const sellOrdersResponse = await queryClient.SellOrders({}); - const { sellOrders } = sellOrdersResponse; - - // Find sell orders that have ibc askDenom and gather their hash - const ibcDenomHashes = uniq( - sellOrders - .filter(sellOrder => sellOrder.askDenom.includes(IBC_DENOM_PREFIX)) - .map(sellOrder => sellOrder.askDenom.replace(IBC_DENOM_PREFIX, '')), - ); - - // Call DenomTrace on each ibc denom hash - const denomTraces = await queryDenomTraceByHashes({ - hashes: ibcDenomHashes, - }); - - // Update sell orders by replacing ibc denoms with base denom from DenomTrace if needed - const sellOrdersWithBaseDenom = sellOrders.map(sellOrder => { - const denomTrace = denomTraces.find(denomTrace => - sellOrder.askDenom.includes(denomTrace.hash), - ); - - return { - ...sellOrder, - askBaseDenom: denomTrace ? denomTrace.baseDenom : sellOrder.askDenom, - askUsdAmount: 0, - }; - }); - - // Set updated response - setSellOrdersResponse({ - sellOrders: sellOrdersWithBaseDenom, - }); - - return sellOrdersWithBaseDenom; - } - - return undefined; - }, [queryClient]); - - useEffect(() => { - refetchSellOrders(); - }, [queryClient, refetchSellOrders]); - - return { sellOrdersResponse, refetchSellOrders }; -}; diff --git a/web-marketplace/src/lib/i18n/locales/en.po b/web-marketplace/src/lib/i18n/locales/en.po index 4a0f70eef1..6ce21b7db7 100644 --- a/web-marketplace/src/lib/i18n/locales/en.po +++ b/web-marketplace/src/lib/i18n/locales/en.po @@ -71,7 +71,7 @@ msgstr "" msgid "{area, plural, one {hectare} other {hectares}}" msgstr "" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:301 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:310 msgid "{creditsAvailable, plural, one {Credit amount adjusted: Only {formattedCreditsAvailable} credit available in {displayDenom}} other {Credit amount adjusted: Only {formattedCreditsAvailable} credits available in {displayDenom}}}" msgstr "" @@ -122,7 +122,7 @@ msgid "{years, plural, one {{years} year project duration} other {{years} year p msgstr "" #: src/components/molecules/OrderSummaryCard/OrderSummaryCard.Content.tsx:105 -#: src/components/organisms/Order/Order.Summary.tsx:73 +#: src/components/organisms/Order/Order.Summary.tsx:75 msgid "# credits" msgstr "" @@ -273,7 +273,7 @@ msgstr "" msgid "A third party who provides a independent, impartial assessment of project plan and project reports (that is not the monitor)." msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:182 +#: src/components/organisms/Order/Order.Summary.tsx:186 msgid "A unique identifier that tracks and verifies a specific transaction on the blockchain." msgstr "" @@ -427,11 +427,11 @@ msgstr "" #: src/features/marketplace/BridgeFlow/hooks/useCreditBridgeSubmit.tsx:113 #: src/pages/Dashboard/MyEcocredits/hooks/useBasketPutSubmit.tsx:119 -#: src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx:116 +#: src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx:120 msgid "amount" msgstr "" -#: src/components/molecules/CreditsAmount/CreditsAmount.Header.tsx:34 +#: src/components/molecules/CreditsAmount/CreditsAmount.Header.tsx:36 #: src/components/organisms/BasketEcocreditsTable/BasketEcocreditsTable.tsx:78 #: src/components/organisms/BridgeForm/BridgeForm.tsx:127 #: src/lib/constants/shared.constants.tsx:30 @@ -467,15 +467,15 @@ msgstr "" msgid "Amount Escrowed" msgstr "" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:146 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:155 msgid "amount now available in" msgstr "" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:92 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:101 msgid "amount now available in usd" msgstr "" -#: src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx:150 +#: src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx:154 msgid "amount of credits" msgstr "" @@ -484,7 +484,8 @@ msgid "Amount of credits" msgstr "" #: src/components/organisms/OrderCryptoReceiptModal/OrderCryptoReceiptModal.constants.ts:6 -#: src/pages/BuyCredits/BuyCredits.utils.tsx:288 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:297 +#: src/pages/BuyCredits/hooks/usePurchase.ts:322 #: src/pages/Dashboard/MyEcocredits/hooks/useCreditRetireSubmit.tsx:126 msgid "amount retired" msgstr "" @@ -509,7 +510,8 @@ msgid "Amount to sell" msgstr "" #: src/components/organisms/OrderCryptoReceiptModal/OrderCryptoReceiptModal.constants.ts:7 -#: src/pages/BuyCredits/BuyCredits.utils.tsx:289 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:298 +#: src/pages/BuyCredits/hooks/usePurchase.ts:323 msgid "amount tradable" msgstr "" @@ -619,7 +621,7 @@ msgstr "" msgid "avg price per credit" msgstr "" -#: src/pages/ProjectEdit/ProjectEdit.tsx:253 +#: src/pages/ProjectEdit/ProjectEdit.tsx:263 msgid "back to projects" msgstr "" @@ -703,7 +705,7 @@ msgstr "" msgid "BATCH START DATE" msgstr "" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:120 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:129 msgid "Because we use blockchain technology, if another user purchases the credits before you check out, you’ll need to choose different credits." msgstr "" @@ -720,11 +722,11 @@ msgstr "" msgid "block height" msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:169 +#: src/components/organisms/Order/Order.Summary.tsx:172 msgid "Blockchain Details" msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:177 +#: src/components/organisms/Order/Order.Summary.tsx:180 #: src/lib/constants/shared.constants.tsx:94 #: src/pages/ProjectFinished/ProjectFinished.tsx:97 msgid "blockchain record" @@ -901,7 +903,7 @@ msgstr "" msgid "carbon offset standard" msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:145 +#: src/components/organisms/Order/Order.Summary.tsx:147 msgid "card info" msgstr "" @@ -913,7 +915,7 @@ msgstr "" msgid "Categories of the IUCN Red List of Ecosystems assess ecosystem health and risk at a global scale. Tebu promotes protecting the most threatened ecosystems by giving a higher score to those at higher risk." msgstr "" -#: src/components/organisms/Order/Order.tsx:112 +#: src/components/organisms/Order/Order.tsx:116 msgid "certificate" msgstr "" @@ -945,7 +947,7 @@ msgstr "" msgid "Change payment card" msgstr "" -#: src/pages/ProjectEdit/ProjectEdit.tsx:285 +#: src/pages/ProjectEdit/ProjectEdit.tsx:295 msgid "Changes have been saved" msgstr "" @@ -1014,7 +1016,7 @@ msgstr "" msgid "Choose how to purchase credits" msgstr "" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:158 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:167 msgid "Choose new credits" msgstr "" @@ -1254,10 +1256,10 @@ msgstr "" #: src/features/marketplace/BridgeFlow/hooks/useCreditBridgeSubmit.tsx:109 #: src/pages/Dashboard/MyEcocredits/hooks/useBasketPutSubmit.tsx:112 -#: src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx:146 +#: src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx:150 #: src/pages/Dashboard/MyEcocredits/hooks/useCreditRetireSubmit.tsx:122 #: src/pages/Dashboard/MyEcocredits/hooks/useCreditSendSubmit.tsx:127 -#: src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx:112 +#: src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx:116 msgid "credit batch id" msgstr "" @@ -1370,7 +1372,7 @@ msgstr "" msgid "credit name" msgstr "" -#: src/components/molecules/CreditsAmount/CreditsAmount.tsx:339 +#: src/components/molecules/CreditsAmount/CreditsAmount.tsx:340 msgid "Credit prices vary. By default the lowest priced credits will be purchased first." msgstr "" @@ -1399,7 +1401,7 @@ msgstr "" msgid "credits" msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:56 +#: src/components/organisms/Order/Order.Summary.tsx:58 msgid "Credits" msgstr "" @@ -1407,7 +1409,7 @@ msgstr "" msgid "Credits are held in escrow when a sell order is created, and taken out of escrow when the sell order is either cancelled, updated with a reduced quantity, or processed." msgstr "" -#: src/components/molecules/CreditsAmount/CreditsAmount.Header.tsx:46 +#: src/components/molecules/CreditsAmount/CreditsAmount.Header.tsx:48 #: src/components/organisms/ChooseCreditsForm/ChooseCreditsForm.AdvanceSettings.tsx:71 #: src/lib/constants/shared.constants.tsx:182 msgid "credits available" @@ -1491,7 +1493,7 @@ msgstr "" msgid "Credits Tradable" msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:104 +#: src/components/organisms/Order/Order.Summary.tsx:106 msgid "Credits were purchased in a tradable format and were not retired" msgstr "" @@ -1804,7 +1806,7 @@ msgstr "" msgid "Edit Project - Access Denied" msgstr "" -#: src/pages/ProjectEdit/ProjectEdit.tsx:271 +#: src/pages/ProjectEdit/ProjectEdit.tsx:281 msgid "Edit Project Page" msgstr "" @@ -1850,7 +1852,7 @@ msgstr "" msgid "Endangered" msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:149 +#: src/components/organisms/Order/Order.Summary.tsx:151 msgid "ending in" msgstr "" @@ -1888,7 +1890,7 @@ msgstr "" msgid "Examples of a retirement reason include: “company travel 2025”, “offsetting my personal footprint”, or the name of a specific person or organization." msgstr "" -#: src/components/organisms/Order/Order.tsx:171 +#: src/components/organisms/Order/Order.tsx:175 msgid "Expected delivery date" msgstr "" @@ -1985,7 +1987,7 @@ msgstr "" msgid "Filters" msgstr "" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:99 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:108 msgid "find another credit card project" msgstr "" @@ -2160,7 +2162,7 @@ msgstr "" msgid "Impact" msgstr "" -#: src/components/molecules/CreditsAmount/CreditsAmount.Header.tsx:51 +#: src/components/molecules/CreditsAmount/CreditsAmount.Header.tsx:53 msgid "in" msgstr "" @@ -2776,7 +2778,7 @@ msgstr "" msgid "Opportunities" msgstr "" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:104 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:113 msgid "or, buy with crypto" msgstr "" @@ -2844,11 +2846,11 @@ msgstr "" msgid "payment" msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:157 +#: src/components/organisms/Order/Order.Summary.tsx:159 msgid "payment currency" msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:140 +#: src/components/organisms/Order/Order.Summary.tsx:142 msgid "payment info" msgstr "" @@ -3064,7 +3066,7 @@ msgstr "" msgid "price per credit" msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:59 +#: src/components/organisms/Order/Order.Summary.tsx:61 msgid "Price per credit" msgstr "" @@ -3146,12 +3148,12 @@ msgstr "" #: src/components/molecules/OrderSummaryCard/OrderSummaryCard.Content.tsx:86 #: src/components/organisms/CreditBatches/CreditBatches.config.ts:18 #: src/components/organisms/OrderCryptoReceiptModal/OrderCryptoReceiptModal.constants.ts:5 -#: src/pages/BuyCredits/BuyCredits.utils.tsx:280 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:289 #: src/pages/Dashboard/MyEcocredits/hooks/useBasketPutSubmit.tsx:105 -#: src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx:139 +#: src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx:143 #: src/pages/Dashboard/MyEcocredits/hooks/useCreditRetireSubmit.tsx:113 #: src/pages/Dashboard/MyEcocredits/hooks/useCreditSendSubmit.tsx:118 -#: src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx:105 +#: src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx:109 msgid "project" msgstr "" @@ -3343,7 +3345,7 @@ msgstr "" msgid "Publications" msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:171 +#: src/components/organisms/Order/Order.Summary.tsx:174 msgid "purchase date" msgstr "" @@ -3528,7 +3530,7 @@ msgstr "" msgid "Restoration Factor:" msgstr "" -#: src/components/organisms/SellOrdersTable/SellOrdersTable.Row.tsx:108 +#: src/components/organisms/SellOrdersTable/SellOrdersTable.Row.tsx:109 msgid "Retirable" msgstr "" @@ -3574,7 +3576,7 @@ msgstr "" msgid "Retirement date" msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:96 +#: src/components/organisms/Order/Order.Summary.tsx:98 msgid "Retirement Info" msgstr "" @@ -3583,7 +3585,7 @@ msgstr "" msgid "Retirement is permanent and non-reversible." msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:120 +#: src/components/organisms/Order/Order.Summary.tsx:122 #: src/components/organisms/RetirementCertificatesTable/RetirementCertificatesTable.headers.tsx:54 #: src/features/ecocredit/CreateBatchBySteps/CreateBatchMultiStepForm/Review.tsx:139 #: src/pages/Certificate/Certificate.constants.ts:18 @@ -3595,12 +3597,12 @@ msgstr "" msgid "Retirement note" msgstr "" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:205 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:214 msgid "Retirement permanently removes used credits from circulation to prevent their reuse, ensuring that the environmental benefit claimed is real and not double-counted." msgstr "" #: src/components/organisms/AgreePurchaseForm/AgreePurchaseForm.Retirement.tsx:125 -#: src/components/organisms/Order/Order.Summary.tsx:114 +#: src/components/organisms/Order/Order.Summary.tsx:116 #: src/lib/constants/shared.constants.tsx:148 #: src/pages/Certificate/Certificate.constants.ts:17 msgid "Retirement reason" @@ -3672,7 +3674,7 @@ msgstr "" msgid "SDGs" msgstr "" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:129 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:138 msgid "search for new credits" msgstr "" @@ -3724,8 +3726,8 @@ msgstr "" msgid "Select all" msgstr "" -#: src/components/molecules/CreditsAmount/CreditsAmount.tsx:319 #: src/components/molecules/CreditsAmount/CreditsAmount.tsx:320 +#: src/components/molecules/CreditsAmount/CreditsAmount.tsx:321 msgid "Select option" msgstr "" @@ -3889,15 +3891,15 @@ msgstr "" msgid "Sold Out" msgstr "" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:116 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:125 msgid "Sorry, another user has purchased all of the available credits from this project" msgstr "" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:87 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:96 msgid "Sorry, another user has purchased all of the USD credits you selected!" msgstr "" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:141 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:150 msgid "Sorry, another user has purchased some or all of the credits you selected!" msgstr "" @@ -4381,12 +4383,12 @@ msgid "total credits you have purchased" msgstr "" #: src/components/molecules/OrderSummaryCard/OrderSummaryCard.Content.tsx:130 -#: src/components/organisms/Order/Order.Summary.tsx:79 +#: src/components/organisms/Order/Order.Summary.tsx:81 msgid "total price" msgstr "" #: src/components/organisms/OrderCryptoReceiptModal/OrderCryptoReceiptModal.constants.ts:4 -#: src/pages/BuyCredits/BuyCredits.utils.tsx:262 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:271 msgid "total purchase price" msgstr "" @@ -4398,11 +4400,11 @@ msgstr "" msgid "Toucan Vintage Token Id" msgstr "" -#: src/components/organisms/SellOrdersTable/SellOrdersTable.Row.tsx:101 +#: src/components/organisms/SellOrdersTable/SellOrdersTable.Row.tsx:102 msgid "Tradable" msgstr "" -#: src/components/organisms/Order/Order.Summary.tsx:100 +#: src/components/organisms/Order/Order.Summary.tsx:102 msgid "Tradable Credits" msgstr "" @@ -4663,7 +4665,7 @@ msgstr "" msgid "view project" msgstr "" -#: src/components/organisms/Order/Order.tsx:120 +#: src/components/organisms/Order/Order.tsx:124 msgid "View Receipt" msgstr "" diff --git a/web-marketplace/src/lib/i18n/locales/es.po b/web-marketplace/src/lib/i18n/locales/es.po index 76b6c9096a..dba4d91bec 100644 --- a/web-marketplace/src/lib/i18n/locales/es.po +++ b/web-marketplace/src/lib/i18n/locales/es.po @@ -74,7 +74,7 @@ msgstr "{area, plural, one {acre} other {acres}}" msgid "{area, plural, one {hectare} other {hectares}}" msgstr "{area, plural, one {hectárea} other {hectáreas}}" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:301 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:310 msgid "{creditsAvailable, plural, one {Credit amount adjusted: Only {formattedCreditsAvailable} credit available in {displayDenom}} other {Credit amount adjusted: Only {formattedCreditsAvailable} credits available in {displayDenom}}}" msgstr "{créditosDisponibles, plural, one {Monto de crédito ajustado: Solo {formattedCreditsAvailable} créditos disponibles en {displayDenom}} other {Monto de crédito ajustado: Solo {formattedCreditsAvailable} créditos disponibles en {displayDenom}}}" @@ -125,7 +125,7 @@ msgid "{years, plural, one {{years} year project duration} other {{years} year p msgstr "{years, plural, one {Duración del proyecto: {years} año} other {Duración del proyecto: {years} años}}" #: src/components/molecules/OrderSummaryCard/OrderSummaryCard.Content.tsx:105 -#: src/components/organisms/Order/Order.Summary.tsx:73 +#: src/components/organisms/Order/Order.Summary.tsx:75 msgid "# credits" msgstr "# créditos" @@ -276,7 +276,7 @@ msgstr "Un taxón está extinto cuando no hay duda razonable de que el último i msgid "A third party who provides a independent, impartial assessment of project plan and project reports (that is not the monitor)." msgstr "Un tercero que proporciona una evaluación independiente e imparcial del plan del proyecto y de los informes del proyecto (que no es el monitor)." -#: src/components/organisms/Order/Order.Summary.tsx:182 +#: src/components/organisms/Order/Order.Summary.tsx:186 msgid "A unique identifier that tracks and verifies a specific transaction on the blockchain." msgstr "Un identificador único que rastrea y verifica una transacción específica en la cadena de bloques." @@ -430,11 +430,11 @@ msgstr "Amazonas" #: src/features/marketplace/BridgeFlow/hooks/useCreditBridgeSubmit.tsx:113 #: src/pages/Dashboard/MyEcocredits/hooks/useBasketPutSubmit.tsx:119 -#: src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx:116 +#: src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx:120 msgid "amount" msgstr "cantidad" -#: src/components/molecules/CreditsAmount/CreditsAmount.Header.tsx:34 +#: src/components/molecules/CreditsAmount/CreditsAmount.Header.tsx:36 #: src/components/organisms/BasketEcocreditsTable/BasketEcocreditsTable.tsx:78 #: src/components/organisms/BridgeForm/BridgeForm.tsx:127 #: src/lib/constants/shared.constants.tsx:30 @@ -470,15 +470,15 @@ msgstr "El monto no puede exceder" msgid "Amount Escrowed" msgstr "Monto depositado en depósito" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:146 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:155 msgid "amount now available in" msgstr "Cantidad ahora disponible en" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:92 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:101 msgid "amount now available in usd" msgstr "Cantidad ahora disponible en USD" -#: src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx:150 +#: src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx:154 msgid "amount of credits" msgstr "cantidad de créditos" @@ -487,7 +487,8 @@ msgid "Amount of credits" msgstr "Cantidad de créditos" #: src/components/organisms/OrderCryptoReceiptModal/OrderCryptoReceiptModal.constants.ts:6 -#: src/pages/BuyCredits/BuyCredits.utils.tsx:288 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:297 +#: src/pages/BuyCredits/hooks/usePurchase.ts:322 #: src/pages/Dashboard/MyEcocredits/hooks/useCreditRetireSubmit.tsx:126 msgid "amount retired" msgstr "cantidad retirada" @@ -512,7 +513,8 @@ msgid "Amount to sell" msgstr "Cantidad a vender" #: src/components/organisms/OrderCryptoReceiptModal/OrderCryptoReceiptModal.constants.ts:7 -#: src/pages/BuyCredits/BuyCredits.utils.tsx:289 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:298 +#: src/pages/BuyCredits/hooks/usePurchase.ts:323 msgid "amount tradable" msgstr "cantidad negociable" @@ -622,7 +624,7 @@ msgstr "Precio promedio" msgid "avg price per credit" msgstr "precio promedio por crédito" -#: src/pages/ProjectEdit/ProjectEdit.tsx:253 +#: src/pages/ProjectEdit/ProjectEdit.tsx:263 msgid "back to projects" msgstr "volver a proyectos" @@ -706,7 +708,7 @@ msgstr "Fecha de inicio del lote" msgid "BATCH START DATE" msgstr "FECHA DE INICIO DEL LOTE" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:120 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:129 msgid "Because we use blockchain technology, if another user purchases the credits before you check out, you’ll need to choose different credits." msgstr "Debido a que utilizamos tecnología blockchain, si otro usuario compra los créditos antes de realizar el pago, deberá elegir créditos diferentes." @@ -723,11 +725,11 @@ msgstr "biorregión" msgid "block height" msgstr "altura del bloque" -#: src/components/organisms/Order/Order.Summary.tsx:169 +#: src/components/organisms/Order/Order.Summary.tsx:172 msgid "Blockchain Details" msgstr "Detalles de la cadena de bloques" -#: src/components/organisms/Order/Order.Summary.tsx:177 +#: src/components/organisms/Order/Order.Summary.tsx:180 #: src/lib/constants/shared.constants.tsx:94 #: src/pages/ProjectFinished/ProjectFinished.tsx:97 msgid "blockchain record" @@ -904,7 +906,7 @@ msgstr "crédito de carbono" msgid "carbon offset standard" msgstr "Norma de compensación de carbono" -#: src/components/organisms/Order/Order.Summary.tsx:145 +#: src/components/organisms/Order/Order.Summary.tsx:147 msgid "card info" msgstr "Información de la tarjeta" @@ -916,7 +918,7 @@ msgstr "Caribe" msgid "Categories of the IUCN Red List of Ecosystems assess ecosystem health and risk at a global scale. Tebu promotes protecting the most threatened ecosystems by giving a higher score to those at higher risk." msgstr "Las categorías de la Lista Roja de Ecosistemas de la UICN evalúan la salud y el riesgo de los ecosistemas a escala global. Tebu promueve la protección de los ecosistemas más amenazados otorgando una puntuación más alta a aquellos que presentan un riesgo mayor." -#: src/components/organisms/Order/Order.tsx:112 +#: src/components/organisms/Order/Order.tsx:116 msgid "certificate" msgstr "certificado" @@ -948,7 +950,7 @@ msgstr "cambiar administrador" msgid "Change payment card" msgstr "Cambiar tarjeta de pago" -#: src/pages/ProjectEdit/ProjectEdit.tsx:285 +#: src/pages/ProjectEdit/ProjectEdit.tsx:295 msgid "Changes have been saved" msgstr "Los cambios se han guardado" @@ -1017,7 +1019,7 @@ msgstr "Elige el lote de ecocréditos" msgid "Choose how to purchase credits" msgstr "Elige cómo comprar créditos" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:158 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:167 msgid "Choose new credits" msgstr "Elige nuevos créditos" @@ -1257,10 +1259,10 @@ msgstr "Detalles del lote de crédito" #: src/features/marketplace/BridgeFlow/hooks/useCreditBridgeSubmit.tsx:109 #: src/pages/Dashboard/MyEcocredits/hooks/useBasketPutSubmit.tsx:112 -#: src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx:146 +#: src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx:150 #: src/pages/Dashboard/MyEcocredits/hooks/useCreditRetireSubmit.tsx:122 #: src/pages/Dashboard/MyEcocredits/hooks/useCreditSendSubmit.tsx:127 -#: src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx:112 +#: src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx:116 msgid "credit batch id" msgstr "Identificación del lote de crédito" @@ -1373,7 +1375,7 @@ msgstr "Emisión de crédito pendiente" msgid "credit name" msgstr "nombre de credito" -#: src/components/molecules/CreditsAmount/CreditsAmount.tsx:339 +#: src/components/molecules/CreditsAmount/CreditsAmount.tsx:340 msgid "Credit prices vary. By default the lowest priced credits will be purchased first." msgstr "Los precios de los créditos varían. Por defecto, se comprarán primero los créditos con el precio más bajo." @@ -1402,7 +1404,7 @@ msgstr "Definición de unidad de crédito" msgid "credits" msgstr "créditos" -#: src/components/organisms/Order/Order.Summary.tsx:56 +#: src/components/organisms/Order/Order.Summary.tsx:58 msgid "Credits" msgstr "Créditos" @@ -1410,7 +1412,7 @@ msgstr "Créditos" msgid "Credits are held in escrow when a sell order is created, and taken out of escrow when the sell order is either cancelled, updated with a reduced quantity, or processed." msgstr "Los créditos se mantienen en depósito en garantía cuando se crea una orden de venta y se retiran del depósito en garantía cuando la orden de venta se cancela, se actualiza con una cantidad reducida o se procesa." -#: src/components/molecules/CreditsAmount/CreditsAmount.Header.tsx:46 +#: src/components/molecules/CreditsAmount/CreditsAmount.Header.tsx:48 #: src/components/organisms/ChooseCreditsForm/ChooseCreditsForm.AdvanceSettings.tsx:71 #: src/lib/constants/shared.constants.tsx:182 msgid "credits available" @@ -1494,7 +1496,7 @@ msgstr "Créditos Retirados" msgid "Credits Tradable" msgstr "Créditos negociables" -#: src/components/organisms/Order/Order.Summary.tsx:104 +#: src/components/organisms/Order/Order.Summary.tsx:106 msgid "Credits were purchased in a tradable format and were not retired" msgstr "Los créditos se compraron en formato comercializable y no se retiraron." @@ -1807,7 +1809,7 @@ msgstr "editar proyecto" msgid "Edit Project - Access Denied" msgstr "Editar proyecto - Acceso denegado" -#: src/pages/ProjectEdit/ProjectEdit.tsx:271 +#: src/pages/ProjectEdit/ProjectEdit.tsx:281 msgid "Edit Project Page" msgstr "Editar página del proyecto" @@ -1853,7 +1855,7 @@ msgstr "Fecha de finalización" msgid "Endangered" msgstr "En peligro" -#: src/components/organisms/Order/Order.Summary.tsx:149 +#: src/components/organisms/Order/Order.Summary.tsx:151 msgid "ending in" msgstr "terminando en" @@ -1891,7 +1893,7 @@ msgstr "emisión estimada" msgid "Examples of a retirement reason include: “company travel 2025”, “offsetting my personal footprint”, or the name of a specific person or organization." msgstr "Algunos ejemplos de motivos de retirada incluyen: “viajes de empresa en 2025”, “compensar mi impacto ambiental” o el nombre de una persona u organización específica." -#: src/components/organisms/Order/Order.tsx:171 +#: src/components/organisms/Order/Order.tsx:175 msgid "Expected delivery date" msgstr "Fecha de entrega prevista" @@ -1988,7 +1990,7 @@ msgstr "Los archivos aún se pueden compartir de forma privada a través de un e msgid "Filters" msgstr "Filtros" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:99 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:108 msgid "find another credit card project" msgstr "Encuentra otro proyecto de tarjeta de crédito" @@ -2163,7 +2165,7 @@ msgstr "Si prefiere créditos retirados, modifique su elección en la <0>pantall msgid "Impact" msgstr "Impacto" -#: src/components/molecules/CreditsAmount/CreditsAmount.Header.tsx:51 +#: src/components/molecules/CreditsAmount/CreditsAmount.Header.tsx:53 msgid "in" msgstr "en" @@ -2779,7 +2781,7 @@ msgstr "operador" msgid "Opportunities" msgstr "Oportunidades" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:104 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:113 msgid "or, buy with crypto" msgstr "o comprar con criptomonedas" @@ -2847,11 +2849,11 @@ msgstr "fogonadura" msgid "payment" msgstr "pago" -#: src/components/organisms/Order/Order.Summary.tsx:157 +#: src/components/organisms/Order/Order.Summary.tsx:159 msgid "payment currency" msgstr "Moneda de pago" -#: src/components/organisms/Order/Order.Summary.tsx:140 +#: src/components/organisms/Order/Order.Summary.tsx:142 msgid "payment info" msgstr "Información de pago" @@ -3067,7 +3069,7 @@ msgstr "Los precios de los créditos para proyectos de prefinanciamiento tienen msgid "price per credit" msgstr "precio por crédito" -#: src/components/organisms/Order/Order.Summary.tsx:59 +#: src/components/organisms/Order/Order.Summary.tsx:61 msgid "Price per credit" msgstr "Precio por crédito" @@ -3149,12 +3151,12 @@ msgstr "Guía del programa" #: src/components/molecules/OrderSummaryCard/OrderSummaryCard.Content.tsx:86 #: src/components/organisms/CreditBatches/CreditBatches.config.ts:18 #: src/components/organisms/OrderCryptoReceiptModal/OrderCryptoReceiptModal.constants.ts:5 -#: src/pages/BuyCredits/BuyCredits.utils.tsx:280 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:289 #: src/pages/Dashboard/MyEcocredits/hooks/useBasketPutSubmit.tsx:105 -#: src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx:139 +#: src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx:143 #: src/pages/Dashboard/MyEcocredits/hooks/useCreditRetireSubmit.tsx:113 #: src/pages/Dashboard/MyEcocredits/hooks/useCreditSendSubmit.tsx:118 -#: src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx:105 +#: src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx:109 msgid "project" msgstr "proyecto" @@ -3346,7 +3348,7 @@ msgstr "pestañas de perfil público" msgid "Publications" msgstr "Publicaciones" -#: src/components/organisms/Order/Order.Summary.tsx:171 +#: src/components/organisms/Order/Order.Summary.tsx:174 msgid "purchase date" msgstr "fecha de compra" @@ -3531,7 +3533,7 @@ msgstr "Restauración" msgid "Restoration Factor:" msgstr "Factor de restauración:" -#: src/components/organisms/SellOrdersTable/SellOrdersTable.Row.tsx:108 +#: src/components/organisms/SellOrdersTable/SellOrdersTable.Row.tsx:109 msgid "Retirable" msgstr "Retirable" @@ -3577,7 +3579,7 @@ msgstr "Certificados de retirada" msgid "Retirement date" msgstr "Fecha de retirada" -#: src/components/organisms/Order/Order.Summary.tsx:96 +#: src/components/organisms/Order/Order.Summary.tsx:98 msgid "Retirement Info" msgstr "Información sobre la retirada" @@ -3586,7 +3588,7 @@ msgstr "Información sobre la retirada" msgid "Retirement is permanent and non-reversible." msgstr "La retirada es permanente e irreversible." -#: src/components/organisms/Order/Order.Summary.tsx:120 +#: src/components/organisms/Order/Order.Summary.tsx:122 #: src/components/organisms/RetirementCertificatesTable/RetirementCertificatesTable.headers.tsx:54 #: src/features/ecocredit/CreateBatchBySteps/CreateBatchMultiStepForm/Review.tsx:139 #: src/pages/Certificate/Certificate.constants.ts:18 @@ -3598,12 +3600,12 @@ msgstr "Lugar de retiro" msgid "Retirement note" msgstr "Nota de retirada" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:205 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:214 msgid "Retirement permanently removes used credits from circulation to prevent their reuse, ensuring that the environmental benefit claimed is real and not double-counted." msgstr "La retirada elimina permanentemente de circulación los créditos usados para evitar su reutilización, garantizando así que el beneficio ambiental reclamado sea real y no se contabilice dos veces." #: src/components/organisms/AgreePurchaseForm/AgreePurchaseForm.Retirement.tsx:125 -#: src/components/organisms/Order/Order.Summary.tsx:114 +#: src/components/organisms/Order/Order.Summary.tsx:116 #: src/lib/constants/shared.constants.tsx:148 #: src/pages/Certificate/Certificate.constants.ts:17 msgid "Retirement reason" @@ -3675,7 +3677,7 @@ msgstr "Escanee con la aplicación móvil Keplr" msgid "SDGs" msgstr "ODS" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:129 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:138 msgid "search for new credits" msgstr "buscar nuevos creditos" @@ -3727,8 +3729,8 @@ msgstr "Seleccione una billetera" msgid "Select all" msgstr "Seleccionar todo" -#: src/components/molecules/CreditsAmount/CreditsAmount.tsx:319 #: src/components/molecules/CreditsAmount/CreditsAmount.tsx:320 +#: src/components/molecules/CreditsAmount/CreditsAmount.tsx:321 msgid "Select option" msgstr "Seleccionar opción" @@ -3892,15 +3894,15 @@ msgstr "Índice social y cultural" msgid "Sold Out" msgstr "Agotado" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:116 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:125 msgid "Sorry, another user has purchased all of the available credits from this project" msgstr "Lo sentimos, otro usuario ha comprado todos los créditos disponibles de este proyecto." -#: src/pages/BuyCredits/BuyCredits.utils.tsx:87 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:96 msgid "Sorry, another user has purchased all of the USD credits you selected!" msgstr "Lo sentimos, ¡otro usuario ha comprado todos los créditos USD que seleccionaste!" -#: src/pages/BuyCredits/BuyCredits.utils.tsx:141 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:150 msgid "Sorry, another user has purchased some or all of the credits you selected!" msgstr "Lo sentimos, otro usuario ha comprado algunos o todos los créditos que seleccionaste." @@ -4384,12 +4386,12 @@ msgid "total credits you have purchased" msgstr "total de créditos que has comprado" #: src/components/molecules/OrderSummaryCard/OrderSummaryCard.Content.tsx:130 -#: src/components/organisms/Order/Order.Summary.tsx:79 +#: src/components/organisms/Order/Order.Summary.tsx:81 msgid "total price" msgstr "Precio total" #: src/components/organisms/OrderCryptoReceiptModal/OrderCryptoReceiptModal.constants.ts:4 -#: src/pages/BuyCredits/BuyCredits.utils.tsx:262 +#: src/pages/BuyCredits/BuyCredits.utils.tsx:271 msgid "total purchase price" msgstr "Precio total de compra" @@ -4401,11 +4403,11 @@ msgstr "Identificación del token del proyecto Toucan" msgid "Toucan Vintage Token Id" msgstr "Identificación de token vintage de tucán" -#: src/components/organisms/SellOrdersTable/SellOrdersTable.Row.tsx:101 +#: src/components/organisms/SellOrdersTable/SellOrdersTable.Row.tsx:102 msgid "Tradable" msgstr "Negociable" -#: src/components/organisms/Order/Order.Summary.tsx:100 +#: src/components/organisms/Order/Order.Summary.tsx:102 msgid "Tradable Credits" msgstr "Créditos negociables" @@ -4666,7 +4668,7 @@ msgstr "Ver perfil" msgid "view project" msgstr "ver proyecto" -#: src/components/organisms/Order/Order.tsx:120 +#: src/components/organisms/Order/Order.tsx:124 msgid "View Receipt" msgstr "Ver recibo" diff --git a/web-marketplace/src/lib/normalizers/creditClass/normalizeCreditClassesWithOrders/normalizeCreditClassesWithOrders.tsx b/web-marketplace/src/lib/normalizers/creditClass/normalizeCreditClassesWithOrders/normalizeCreditClassesWithOrders.tsx index ad42b67886..60a6c0abce 100644 --- a/web-marketplace/src/lib/normalizers/creditClass/normalizeCreditClassesWithOrders/normalizeCreditClassesWithOrders.tsx +++ b/web-marketplace/src/lib/normalizers/creditClass/normalizeCreditClassesWithOrders/normalizeCreditClassesWithOrders.tsx @@ -2,9 +2,9 @@ import { getClassImageWithGreenDefault } from 'utils/image/classImage'; import { AllCreditClassQuery } from 'generated/sanity-graphql'; import { CreditClassMetadataLD } from 'lib/db/types/json-ld'; +import { SellOrderInfoExtented } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.types'; import { getPurchaseInfo } from 'pages/Projects/hooks/useProjectsSellOrders.utils'; -import { SellOrderInfoExtented } from 'hooks/useQuerySellOrders'; import { CreditClassWithMedata, diff --git a/web-marketplace/src/lib/normalizers/projects/normalizeProjectsWithOrderData.ts b/web-marketplace/src/lib/normalizers/projects/normalizeProjectsWithOrderData.ts index b3e358afd3..775cad564d 100644 --- a/web-marketplace/src/lib/normalizers/projects/normalizeProjectsWithOrderData.ts +++ b/web-marketplace/src/lib/normalizers/projects/normalizeProjectsWithOrderData.ts @@ -2,6 +2,7 @@ import { ProjectInfo } from '@regen-network/api/lib/generated/regen/ecocredit/v1 import { AllCreditClassQuery } from 'generated/sanity-graphql'; import { IS_TERRASOS } from 'lib/env'; +import { SellOrderInfoExtented } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.types'; import { ProjectWithOrderData } from 'pages/Projects/AllProjects/AllProjects.types'; import { @@ -9,7 +10,6 @@ import { normalizeToUISellOrderInfo, } from 'pages/Projects/hooks/useProjectsSellOrders.utils'; import { findSanityCreditClass } from 'components/templates/ProjectDetails/ProjectDetails.utils'; -import { SellOrderInfoExtented } from 'hooks/useQuerySellOrders'; interface NormalizeProjectsWithOrderDataParams { projects?: (ProjectInfo | undefined)[]; diff --git a/web-marketplace/src/lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.constants.ts b/web-marketplace/src/lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.constants.ts new file mode 100644 index 0000000000..c6e46f5e38 --- /dev/null +++ b/web-marketplace/src/lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.constants.ts @@ -0,0 +1 @@ +export const SELL_ORDERS_EXTENTED_KEY = 'sellOrdersExtented'; diff --git a/web-marketplace/src/lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.ts b/web-marketplace/src/lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.ts index dbc3ec1f6f..f72f1baef2 100644 --- a/web-marketplace/src/lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.ts +++ b/web-marketplace/src/lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.ts @@ -3,23 +3,22 @@ import { SellOrderInfo, } from '@regen-network/api/lib/generated/regen/ecocredit/marketplace/v1/query'; import uniq from 'lodash/uniq'; +import { IBC_DENOM_PREFIX } from 'utils/ibc/getDenomTrace'; import { FetchSimplePriceResponse } from 'lib/coingecko'; import { DenomTraceWithHash } from 'lib/ibc/transfer/api'; import { getSimplePriceQuery } from 'lib/queries/react-query/coingecko/simplePrice/simplePriceQuery'; import { getAskUsdAmount } from 'pages/Marketplace/Storefront/Storefront.utils'; -import { IBC_DENOM_PREFIX } from 'hooks/useQuerySellOrders'; import { getDenomTraceByHashesQuery } from '../../../ibc/transfer/getDenomTraceByHashesQuery/getDenomTraceByHashesQuery'; import { getFromCacheOrFetch } from '../../../utils/getFromCacheOrFetch'; +import { SELL_ORDERS_EXTENTED_KEY } from './getSellOrdersExtendedQuery.constants'; import { ReactQuerySellOrdersExtentedProps, ReactQuerySellOrdersExtentedResponse, } from './getSellOrdersExtendedQuery.types'; -export const SELL_ORDERS_EXTENTED_KEY = 'sellOrdersExtented'; - export const getSellOrdersExtendedQuery = ({ client, reactQueryClient, diff --git a/web-marketplace/src/lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.types.ts b/web-marketplace/src/lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.types.ts index d8ff80ad8f..256b4f2862 100644 --- a/web-marketplace/src/lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.types.ts +++ b/web-marketplace/src/lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.types.ts @@ -1,12 +1,16 @@ +import { SellOrderInfo } from '@regen-network/api/lib/generated/regen/ecocredit/marketplace/v1/query'; import { QueryClient, QueryObserverOptions } from '@tanstack/react-query'; import { QuerySellOrdersProps } from 'lib/ecocredit/marketplace/marketplace'; import { MarketplaceQueryClient } from 'lib/ecocredit/marketplace/marketplace.types'; -import { SellOrderInfoExtented } from 'hooks/useQuerySellOrders'; - import { ReactQueryBuilderResponse } from '../../../types/react-query.types'; +export type SellOrderInfoExtented = SellOrderInfo & { + askBaseDenom: string; + askUsdAmount: number; +}; + export type ReactQuerySellOrdersExtentedResponse = QueryObserverOptions< SellOrderInfoExtented[] | undefined >; diff --git a/web-marketplace/src/pages/BuyCredits/BuyCredits.utils.tsx b/web-marketplace/src/pages/BuyCredits/BuyCredits.utils.tsx index c38a24af25..725b5031a3 100644 --- a/web-marketplace/src/pages/BuyCredits/BuyCredits.utils.tsx +++ b/web-marketplace/src/pages/BuyCredits/BuyCredits.utils.tsx @@ -2,12 +2,22 @@ import { UseFormSetValue } from 'react-hook-form'; import { i18n } from '@lingui/core'; import { msg, plural, Trans } from '@lingui/macro'; import { QueryAllowedDenomsResponse } from '@regen-network/api/lib/generated/regen/ecocredit/marketplace/v1/query'; -import { USD_DENOM } from 'config/allowedBaseDenoms'; +import { + AXELAR_USDC_DENOM, + EEUR_DENOM, + EVMOS_DENOM, + GRAVITY_USDC_DENOM, + REGEN_DENOM, + USD_DENOM, + USDC_DENOM, +} from 'config/allowedBaseDenoms'; +import { IBC_DENOM_PREFIX } from 'utils/ibc/getDenomTrace'; import { getFormattedNumber } from 'web-components/src/utils/format'; import { TranslatorType } from 'lib/i18n/i18n.types'; import { NormalizeProject } from 'lib/normalizers/projects/normalizeProjectsWithMetadata'; +import { SellOrderInfoExtented } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.types'; import { UISellOrderInfo } from 'pages/Projects/AllProjects/AllProjects.types'; import { AmountWithCurrency } from 'components/molecules/AmountWithCurrency/AmountWithCurrency'; @@ -26,7 +36,6 @@ import { findDisplayDenom } from 'components/molecules/DenomLabel/DenomLabel.uti import { KEPLR_LOGIN_REQUIRED } from 'components/organisms/BuyWarningModal/BuyWarningModal.constants'; import { BuyWarningModalContent } from 'components/organisms/BuyWarningModal/BuyWarningModal.types'; import { CardSellOrder } from 'components/organisms/ChooseCreditsForm/ChooseCreditsForm.types'; -import { SellOrderInfoExtented } from 'hooks/useQuerySellOrders'; import { AGREE_PURCHASE, @@ -373,3 +382,33 @@ export function resetCurrencyAndCredits( activeStep, ); } + +export const getCryptoCurrencyIconSrc = ( + baseDenom: string, + bankDenom: string, +) => { + const ibcDenom = bankDenom?.includes(IBC_DENOM_PREFIX); + + let href = ''; + if (baseDenom === GRAVITY_USDC_DENOM) + href = + 'https://regen-registry.s3.us-east-1.amazonaws.com/assets/icons/usdc.grv.png'; + // On mainnet, AXELAR_USDC_DENOM and USDC_DENOM base denoms have the same value: uusd + // so we also use the bank denom to check whether it's USDC.axl (IBC) or native USDC + if (baseDenom === AXELAR_USDC_DENOM && ibcDenom) + href = + 'https://regen-registry.s3.us-east-1.amazonaws.com/assets/icons/usdc.axl.png'; + if (baseDenom === USDC_DENOM && !ibcDenom) + href = + 'https://regen-registry.s3.us-east-1.amazonaws.com/assets/icons/uusdc.png'; + if (baseDenom === EEUR_DENOM) + href = + 'https://regen-registry.s3.us-east-1.amazonaws.com/assets/icons/eeur.png'; + if (baseDenom === REGEN_DENOM) + href = + 'https://regen-registry.s3.us-east-1.amazonaws.com/assets/icons/regen.png'; + if (baseDenom === EVMOS_DENOM) + href = + 'https://regen-registry.s3.us-east-1.amazonaws.com/assets/icons/evmos.png'; + return href; +}; diff --git a/web-marketplace/src/pages/BuyCredits/hooks/useFetchRetirementForPurchase.ts b/web-marketplace/src/pages/BuyCredits/hooks/useFetchRetirementForPurchase.ts index 277b15835a..d346b51147 100644 --- a/web-marketplace/src/pages/BuyCredits/hooks/useFetchRetirementForPurchase.ts +++ b/web-marketplace/src/pages/BuyCredits/hooks/useFetchRetirementForPurchase.ts @@ -17,7 +17,7 @@ import { } from 'lib/atoms/modals.atoms'; import { BLOCKCHAIN_RECORD } from 'lib/constants/shared.constants'; import { NormalizeProject } from 'lib/normalizers/projects/normalizeProjectsWithMetadata'; -import { SELL_ORDERS_EXTENTED_KEY } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery'; +import { SELL_ORDERS_EXTENTED_KEY } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.constants'; import { getTxHashForPaymentIntentQuery } from 'lib/queries/react-query/registry-server/graphql/getTxHashForPaymentIntent/getTxHashForPaymentIntentQuery'; import { getRetirementByTxHash } from 'lib/queries/react-query/registry-server/graphql/indexer/getRetirementByTxHash/getRetirementByTxHash'; diff --git a/web-marketplace/src/pages/BuyCredits/hooks/usePurchase.ts b/web-marketplace/src/pages/BuyCredits/hooks/usePurchase.ts index 4354173d7c..79c80eabda 100644 --- a/web-marketplace/src/pages/BuyCredits/hooks/usePurchase.ts +++ b/web-marketplace/src/pages/BuyCredits/hooks/usePurchase.ts @@ -1,6 +1,7 @@ import { useCallback, useMemo, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { DeliverTxResponse } from '@cosmjs/stargate'; +import { msg } from '@lingui/macro'; import { useLingui } from '@lingui/react'; import { AllowedDenom } from '@regen-network/api/lib/generated/regen/ecocredit/marketplace/v1/state'; import { MsgBuyDirect } from '@regen-network/api/lib/generated/regen/ecocredit/marketplace/v1/tx'; @@ -11,6 +12,7 @@ import { useSetAtom } from 'jotai'; import { postData } from 'utils/fetch/postData'; import { getJurisdictionIsoCode } from 'web-components/src/utils/locationStandard'; +import { truncate } from 'web-components/src/utils/truncate'; import { apiUri } from 'lib/apiUri'; import { errorBannerTextAtom, errorCodeAtom } from 'lib/atoms/error.atoms'; @@ -20,9 +22,11 @@ import { processingModalAtom, txBuySuccessfulModalAtom, } from 'lib/atoms/modals.atoms'; +import { useAuth } from 'lib/auth/auth'; +import { getHashUrl } from 'lib/block-explorer'; import { useRetryCsrfRequest } from 'lib/errors/hooks/useRetryCsrfRequest'; import { NormalizeProject } from 'lib/normalizers/projects/normalizeProjectsWithMetadata'; -import { SELL_ORDERS_EXTENTED_KEY } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery'; +import { SELL_ORDERS_EXTENTED_KEY } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.constants'; import { getCsrfTokenQuery } from 'lib/queries/react-query/registry-server/getCsrfTokenQuery/getCsrfTokenQuery'; import { useWallet } from 'lib/wallet/wallet'; @@ -30,15 +34,18 @@ import { Currency } from 'components/molecules/CreditsAmount/CreditsAmount.types import { findDisplayDenom } from 'components/molecules/DenomLabel/DenomLabel.utils'; import { VIEW_PORTFOLIO } from 'components/organisms/BasketOverview/BasketOverview.constants'; import { ChooseCreditsFormSchemaType } from 'components/organisms/ChooseCreditsForm/ChooseCreditsForm.schema'; +import { CONNECTED_EMAIL_ERROR } from 'components/organisms/RegistryLayout/RegistryLayout.constants'; import { useMultiStep } from 'components/templates/MultiStepTemplate'; import { useMsgClient } from 'hooks'; import { EMAIL_RECEIPT, PAYMENT_OPTIONS } from '../BuyCredits.constants'; import { BuyCreditsSchemaTypes, PaymentOptionsType } from '../BuyCredits.types'; -import { getCardItems, getSteps } from '../BuyCredits.utils'; +import { + getCardItems, + getCryptoCurrencyIconSrc, + getSteps, +} from '../BuyCredits.utils'; import { useFetchRetirementForPurchase } from './useFetchRetirementForPurchase'; -import { useAuth } from 'lib/auth/auth'; -import { CONNECTED_EMAIL_ERROR } from 'components/organisms/RegistryLayout/RegistryLayout.constants'; type UsePurchaseParams = { paymentOption: PaymentOptionsType; @@ -148,12 +155,7 @@ export const usePurchase = ({ // If a logged in user with no email address (web3 account) provides one, // we send a confirmation email - if ( - !!activeAccount && - !privActiveAccount?.email && - data?.email && - token - ) { + if (!!activeAccount && !privActiveAccount?.email && email && token) { try { const response: { error?: string } = await postData({ url: `${apiUri}/marketplace/v1/auth/email/create-token`, @@ -167,7 +169,7 @@ export const usePurchase = ({ if (response.error === CONNECTED_EMAIL_ERROR) { setConnectedEmailErrorModalAtom(atom => { atom.open = true; - atom.email = data?.email as string; + atom.email = email as string; }); return; } @@ -307,7 +309,39 @@ export const usePurchase = ({ ); }, onSuccess: async (deliverTxResponse?: DeliverTxResponse) => { - setTxHash(deliverTxResponse?.transactionHash); + const _txHash = deliverTxResponse?.transactionHash; + setTxHash(_txHash); + + // Send purchase confirmation if email provided + if (email && token) { + const currencyIconSrc = getCryptoCurrencyIconSrc( + currency.askBaseDenom, + currency.askDenom, + ); + const amountLabel = retiring + ? _(msg`amount retired`) + : _(msg`amount tradable`); + + await postData({ + url: `${apiUri}/marketplace/v1/confirm-crypto-order`, + data: { + email, + currencyAmount, + currencyIconSrc, + displayDenom, + projectName: project?.name, + amountLabel, + creditsAmount, + txHref: getHashUrl(_txHash), + txHash: truncate(_txHash), + orderHref: `${ + window.location.origin + }/dashboard/admin/my-orders#${_txHash?.toLowerCase()}`, + }, + token, + retryCsrfRequest, + }); + } // In case of retirement, it's handled in useFetchRetirementForPurchase if (!retiring) { @@ -327,7 +361,7 @@ export const usePurchase = ({ setTxBuySuccessfulModalAtom( atom => void (atom.open = false), ); - atom.txHash = deliverTxResponse?.transactionHash; + atom.txHash = _txHash; atom.steps = getSteps(paymentOption, retiring); atom.description = email ? `${_(EMAIL_RECEIPT)} ${email}` @@ -340,7 +374,7 @@ export const usePurchase = ({ // Reset BuyCredits forms handleSuccess(); - navigate(`/profile/portfolio`); + navigate(`/dashboard/portfolio`); } }, }, @@ -349,6 +383,7 @@ export const usePurchase = ({ }, [ _, + activeAccount, creditsAmount, currency, currencyAmount, @@ -358,9 +393,11 @@ export const usePurchase = ({ name, navigate, paymentOption, + privActiveAccount?.email, project, reactQueryClient, retryCsrfRequest, + setConnectedEmailErrorModalAtom, setErrorBannerTextAtom, setErrorCodeAtom, setErrorModalAtom, diff --git a/web-marketplace/src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx b/web-marketplace/src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx index 6c08f174cd..c601ae4c10 100644 --- a/web-marketplace/src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx +++ b/web-marketplace/src/pages/Dashboard/MyEcocredits/hooks/useCreateSellOrderSubmit.tsx @@ -12,7 +12,7 @@ import { getFormattedNumber } from 'web-components/src/utils/format'; import { BatchInfoWithBalance } from 'types/ledger/ecocredit'; import { UseStateSetter } from 'types/react/use-state'; import { denomToMicro } from 'lib/denom.utils'; -import { SELL_ORDERS_EXTENTED_KEY } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery'; +import { SELL_ORDERS_EXTENTED_KEY } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.constants'; import { SellFailureEvent, SellSuccessEvent } from 'lib/tracker/types'; import { useTracker } from 'lib/tracker/useTracker'; @@ -130,7 +130,11 @@ const useCreateSellOrderSubmit = ({ verticalAlign: 'bottom', }} > - + ), }, diff --git a/web-marketplace/src/pages/Marketplace/Storefront/Storefront.normalizer.ts b/web-marketplace/src/pages/Marketplace/Storefront/Storefront.normalizer.ts index 76161554e9..4cd252b61e 100644 --- a/web-marketplace/src/pages/Marketplace/Storefront/Storefront.normalizer.ts +++ b/web-marketplace/src/pages/Marketplace/Storefront/Storefront.normalizer.ts @@ -2,9 +2,9 @@ import { BatchInfo } from '@regen-network/api/lib/generated/regen/ecocredit/v1/q import { AllCreditClassQuery } from 'generated/sanity-graphql'; import { CreditClassMetadataLD } from 'lib/db/types/json-ld'; +import { SellOrderInfoExtented } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.types'; import { findSanityCreditClass } from 'components/templates/ProjectDetails/ProjectDetails.utils'; -import { SellOrderInfoExtented } from 'hooks/useQuerySellOrders'; import { NormalizedSellOrder, diff --git a/web-marketplace/src/pages/Marketplace/Storefront/Storefront.sort.ts b/web-marketplace/src/pages/Marketplace/Storefront/Storefront.sort.ts index f6ea5731b1..345511e1d0 100644 --- a/web-marketplace/src/pages/Marketplace/Storefront/Storefront.sort.ts +++ b/web-marketplace/src/pages/Marketplace/Storefront/Storefront.sort.ts @@ -1,11 +1,10 @@ +import { SellOrderInfoExtented } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.types'; import { createAscSortHandler, createDescSortHandler, } from 'lib/sort/createSortHandler'; import { transformToNum } from 'lib/sort/transforms'; -import { SellOrderInfoExtented } from 'hooks/useQuerySellOrders'; - export type SellOrdersSortType = | 'default' | 'price-asc' diff --git a/web-marketplace/src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx b/web-marketplace/src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx index c68c2299a2..b5777563c5 100644 --- a/web-marketplace/src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx +++ b/web-marketplace/src/pages/Marketplace/Storefront/hooks/useCancelSellOrderSubmit.tsx @@ -96,7 +96,11 @@ const useCancelSellOrderSubmit = ({ verticalAlign: 'bottom', }} > - + ), }, diff --git a/web-marketplace/src/pages/Marketplace/Storefront/hooks/useFetchSellOrders.ts b/web-marketplace/src/pages/Marketplace/Storefront/hooks/useFetchSellOrders.ts index d185b185dd..57a1e3fb83 100644 --- a/web-marketplace/src/pages/Marketplace/Storefront/hooks/useFetchSellOrders.ts +++ b/web-marketplace/src/pages/Marketplace/Storefront/hooks/useFetchSellOrders.ts @@ -2,12 +2,9 @@ import { useCallback, useMemo } from 'react'; import { useQuery, useQueryClient } from '@tanstack/react-query'; import { useLedger } from 'ledger'; -import { - getSellOrdersExtendedQuery, - SELL_ORDERS_EXTENTED_KEY, -} from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery'; - -import { SellOrderInfoExtented } from 'hooks/useQuerySellOrders'; +import { getSellOrdersExtendedQuery } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery'; +import { SELL_ORDERS_EXTENTED_KEY } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.constants'; +import { SellOrderInfoExtented } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.types'; type UseFetchSellOrdersResponse = { sellOrders: SellOrderInfoExtented[] | undefined; diff --git a/web-marketplace/src/pages/Marketplace/Storefront/hooks/useNormalizedSellOrders.tsx b/web-marketplace/src/pages/Marketplace/Storefront/hooks/useNormalizedSellOrders.tsx index 9392a89534..fa70823297 100644 --- a/web-marketplace/src/pages/Marketplace/Storefront/hooks/useNormalizedSellOrders.tsx +++ b/web-marketplace/src/pages/Marketplace/Storefront/hooks/useNormalizedSellOrders.tsx @@ -14,13 +14,13 @@ import { client as sanityClient } from 'lib/clients/sanity'; import { getSimplePriceQuery } from 'lib/queries/react-query/coingecko/simplePrice/simplePriceQuery'; import { getBatchQuery } from 'lib/queries/react-query/ecocredit/getBatchQuery/getBatchQuery'; import { getProjectsQuery } from 'lib/queries/react-query/ecocredit/getProjectsQuery/getProjectsQuery'; +import { SellOrderInfoExtented } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.types'; import { getMetadataQuery } from 'lib/queries/react-query/registry-server/getMetadataQuery/getMetadataQuery'; import { getAllSanityCreditClassesQuery } from 'lib/queries/react-query/sanity/getAllCreditClassesQuery/getAllCreditClassesQuery'; import { UISellOrderInfo } from 'pages/Projects/AllProjects/AllProjects.types'; import { normalizeToUISellOrderInfo } from 'pages/Projects/hooks/useProjectsSellOrders.utils'; import { useClassesWithMetadata } from 'hooks/classes/useClassesWithMetadata'; -import { SellOrderInfoExtented } from 'hooks/useQuerySellOrders'; import { normalizeProjectsInfosByHandleMap, diff --git a/web-marketplace/src/pages/Marketplace/Storefront/hooks/useSortedSellOrders.tsx b/web-marketplace/src/pages/Marketplace/Storefront/hooks/useSortedSellOrders.tsx index 539e1b885c..e623927e77 100644 --- a/web-marketplace/src/pages/Marketplace/Storefront/hooks/useSortedSellOrders.tsx +++ b/web-marketplace/src/pages/Marketplace/Storefront/hooks/useSortedSellOrders.tsx @@ -3,8 +3,9 @@ import { useState } from 'react'; import { SortCallbacksType } from 'web-components/src/components/table/ActionsTable'; import { Order } from 'web-components/src/components/table/Table.utils'; +import { SellOrderInfoExtented } from 'lib/queries/react-query/ecocredit/marketplace/getSellOrdersExtendedQuery/getSellOrdersExtendedQuery.types'; + import { SELL_ORDERS_MAPPING } from 'components/organisms/SellOrdersTable/SellOrdersTable.constants'; -import { SellOrderInfoExtented } from 'hooks/useQuerySellOrders'; import { SellOrdersSortType, sortSellOrders } from '../Storefront.sort'; diff --git a/web-marketplace/src/pages/Orders/Orders.tsx b/web-marketplace/src/pages/Orders/Orders.tsx index 0d461eec41..1bae5fad1e 100644 --- a/web-marketplace/src/pages/Orders/Orders.tsx +++ b/web-marketplace/src/pages/Orders/Orders.tsx @@ -1,3 +1,5 @@ +import { useEffect } from 'react'; +import { useLocation } from 'react-router-dom'; import { useQuery } from '@tanstack/react-query'; import { Flex } from 'web-components/src/components/box'; @@ -11,8 +13,9 @@ import { Order } from 'components/organisms/Order/Order'; import { useOrders } from './hooks/useOrders'; export const Orders = () => { - const { marketplaceClient } = useLedger(); + const location = useLocation(); + const { marketplaceClient } = useLedger(); const { orders, isLoading } = useOrders(); const { data: allowedDenomsData } = useQuery( @@ -23,6 +26,13 @@ export const Orders = () => { ); const allowedDenoms = allowedDenomsData?.allowedDenoms; + useEffect(() => { + if (!isLoading) { + const element = document.getElementById(location.hash.substring(1)); + if (element) element.scrollIntoView({ behavior: 'smooth' }); + } + }, [isLoading, location.hash]); + return (