Skip to content

Commit

Permalink
chore(trading): move useTradingInfo hook to @suite-common/trading
Browse files Browse the repository at this point in the history
  • Loading branch information
jbazant committed Mar 7, 2025
1 parent be67d22 commit c0197c1
Show file tree
Hide file tree
Showing 35 changed files with 112 additions and 88 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { CryptoId } from 'invity-api';

import { useTradingInfo } from '@suite-common/trading';
import {
Column,
H4,
Expand All @@ -15,7 +16,6 @@ import type { Deferred } from '@trezor/utils';

import { Translation } from 'src/components/suite';
import { useDevice } from 'src/hooks/suite';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';

type TradingTermsModalProps = {
decision: Deferred<boolean>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { useDebounce } from 'react-use';

import { FiatCurrencyCode } from 'invity-api';

import { cryptoIdToSymbol } from '@suite-common/trading';
import { cryptoIdToSymbol, useTradingInfo } from '@suite-common/trading';
import { selectAccounts, selectSelectedDevice } from '@suite-common/wallet-core';
import {
amountToSmallestUnit,
Expand All @@ -26,7 +26,6 @@ import {
} from 'src/constants/wallet/trading/form';
import { useSelector } from 'src/hooks/suite';
import { useTradingFiatValues } from 'src/hooks/wallet/trading/form/common/useTradingFiatValues';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { useBitcoinAmountUnit } from 'src/hooks/wallet/useBitcoinAmountUnit';
import { TradingAccountOptionsGroupOptionProps } from 'src/types/trading/trading';
import {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
getTradingQuotesByPaymentMethod,
invityAPI,
tradingGetSuccessQuotes,
useTradingInfo,
} from '@suite-common/trading';
import { networks } from '@suite-common/wallet-config';
import { formatAmount } from '@suite-common/wallet-utils';
Expand All @@ -37,7 +38,6 @@ import { useTradingCurrencySwitcher } from 'src/hooks/wallet/trading/form/common
import { useTradingModalCrypto } from 'src/hooks/wallet/trading/form/common/useTradingModalCrypto';
import { useTradingPreviousRoute } from 'src/hooks/wallet/trading/form/common/useTradingPreviousRoute';
import { useTradingBuyFormDefaultValues } from 'src/hooks/wallet/trading/form/useTradingBuyFormDefaultValues';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { useTradingLoadData } from 'src/hooks/wallet/trading/useTradingLoadData';
import { useBitcoinAmountUnit } from 'src/hooks/wallet/useBitcoinAmountUnit';
import { useFormDraft } from 'src/hooks/wallet/useFormDraft';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@ import { useMemo } from 'react';

import { CryptoId, FiatCurrencyCode } from 'invity-api';

import { type TradingPaymentMethodListProps, getDefaultCountry } from '@suite-common/trading';
import {
type TradingPaymentMethodListProps,
getDefaultCountry,
useTradingInfo,
} from '@suite-common/trading';
import { networks } from '@suite-common/wallet-config';

import { BuyInfo } from 'src/actions/wallet/tradingBuyActions';
Expand All @@ -11,7 +15,6 @@ import {
FORM_DEFAULT_PAYMENT_METHOD,
} from 'src/constants/wallet/trading/form';
import { useSelector } from 'src/hooks/suite';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { TradingBuyFormDefaultValuesProps } from 'src/types/trading/tradingForm';
import { Account } from 'src/types/wallet';
import { buildFiatOption } from 'src/utils/wallet/trading/tradingUtils';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import {
getUnusedAddressFromAccount,
invityAPI,
tradingGetSuccessQuotes,
useTradingInfo,
} from '@suite-common/trading';
import { networks } from '@suite-common/wallet-config';
import { selectAccountByKey } from '@suite-common/wallet-core';
Expand Down Expand Up @@ -44,7 +45,6 @@ import { useTradingFormActions } from 'src/hooks/wallet/trading/form/common/useT
import { useTradingModalCrypto } from 'src/hooks/wallet/trading/form/common/useTradingModalCrypto';
import { useTradingPreviousRoute } from 'src/hooks/wallet/trading/form/common/useTradingPreviousRoute';
import { useTradingExchangeFormDefaultValues } from 'src/hooks/wallet/trading/form/useTradingExchangeFormDefaultValues';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { useTradingLoadData } from 'src/hooks/wallet/trading/useTradingLoadData';
import { useBitcoinAmountUnit } from 'src/hooks/wallet/useBitcoinAmountUnit';
import { useFormDraft } from 'src/hooks/wallet/useFormDraft';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useMemo } from 'react';

import { cryptoIdToSymbol } from '@suite-common/trading';
import { cryptoIdToSymbol, useTradingInfo } from '@suite-common/trading';
import { DEFAULT_PAYMENT, DEFAULT_VALUES } from '@suite-common/wallet-constants';
import { FormState, Output } from '@suite-common/wallet-types';

Expand All @@ -16,7 +16,6 @@ import {
} from 'src/constants/wallet/trading/form';
import { useSelector } from 'src/hooks/suite';
import { useTradingBuildAccountGroups } from 'src/hooks/wallet/trading/form/common/useTradingBuildAccountGroups';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { selectLocalCurrency } from 'src/reducers/wallet/settingsReducer';
import {
ExchangeType,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
getUnusedAddressFromAccount,
invityAPI,
tradingGetSuccessQuotes,
useTradingInfo,
} from '@suite-common/trading';
import { networks } from '@suite-common/wallet-config';
import { selectAccountByKey } from '@suite-common/wallet-core';
Expand All @@ -40,7 +41,6 @@ import { useTradingCurrencySwitcher } from 'src/hooks/wallet/trading/form/common
import { useTradingFormActions } from 'src/hooks/wallet/trading/form/common/useTradingFormActions';
import { useTradingPreviousRoute } from 'src/hooks/wallet/trading/form/common/useTradingPreviousRoute';
import { useTradingSellFormDefaultValues } from 'src/hooks/wallet/trading/form/useTradingSellFormDefaultValues';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { useTradingLoadData } from 'src/hooks/wallet/trading/useTradingLoadData';
import { useBitcoinAmountUnit } from 'src/hooks/wallet/useBitcoinAmountUnit';
import { useFormDraft } from 'src/hooks/wallet/useFormDraft';
Expand Down
41 changes: 6 additions & 35 deletions packages/suite/src/types/trading/trading.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,15 @@ import type {
TradingBuyType,
TradingExchangeType,
TradingPaymentMethodType,
TradingSelectAssetOptionGroupProps,
TradingSellType,
TradingTransaction,
TradingTransactionBuy,
TradingTransactionExchange,
TradingTransactionSell,
TradingType,
} from '@suite-common/trading';
import { AccountType, NetworkSymbolExtended } from '@suite-common/wallet-config';
import { AccountType } from '@suite-common/wallet-config';
import { AccountsState } from '@suite-common/wallet-core';
import { Account, SelectedAccountLoaded } from '@suite-common/wallet-types';
import { AssetLogoProps } from '@trezor/components';
Expand Down Expand Up @@ -113,39 +114,14 @@ export interface TradingCryptoListProps {
cryptoName?: string | undefined; // full name
}

export interface TradingInfoProps {
cryptoIdToPlatformName: (cryptoId: CryptoId) => string | undefined;
cryptoIdToCoinName: (cryptoId: CryptoId) => string | undefined;
cryptoIdToCoinSymbol: (cryptoId: CryptoId) => string | undefined;
cryptoIdToNativeCoinSymbol: (cryptoId: CryptoId) => string | undefined;
cryptoIdToSymbolAndContractAddress: (cryptoId: CryptoId | undefined) => {
coinSymbol: NetworkSymbolExtended | undefined;
contractAddress: string | undefined;
};
buildCryptoOptions: (
cryptoIds: Set<CryptoId>,
excludedCryptoIds?: Set<CryptoId>,
) => TradingCryptoSelectOptionProps[];
buildDefaultCryptoOption: (cryptoId: CryptoId | undefined) => TradingCryptoSelectItemProps;
}

export interface TradingCoinLogoProps {
cryptoId: CryptoId;
size?: 20 | 24;
margin?: AssetLogoProps['margin'];
className?: string;
}

export interface TradingCryptoSelectItemProps
extends Omit<SelectAssetOptionCurrencyProps, 'value' | 'ticker'> {
value: CryptoId;
label: string;
ticker?: string;
}
export interface TradingCryptoSelectGroupProps extends SelectAssetOptionGroupProps {}
export type TradingCryptoSelectOptionProps =
| TradingCryptoSelectItemProps
| SelectAssetOptionGroupProps;
export interface TradingCryptoSelectGroupProps extends TradingSelectAssetOptionGroupProps {}

export interface TradingGetSortedAccountsProps {
accounts: AccountsState;
Expand Down Expand Up @@ -244,11 +220,6 @@ export interface SelectAssetOptionCurrencyProps extends AssetOptionBaseProps {
networkName?: string;
}

export interface SelectAssetOptionGroupProps {
type: 'group';
label: string;
networkName?: string;
coingeckoId?: string;
}

export type SelectAssetOptionProps = SelectAssetOptionCurrencyProps | SelectAssetOptionGroupProps;
export type SelectAssetOptionProps =
| SelectAssetOptionCurrencyProps
| TradingSelectAssetOptionGroupProps;
2 changes: 1 addition & 1 deletion packages/suite/src/types/trading/tradingForm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import type {

import type {
TradingBuyType,
TradingCryptoSelectItemProps,
TradingExchangeType,
TradingPaymentMethodListProps,
TradingPaymentMethodProps,
Expand Down Expand Up @@ -60,7 +61,6 @@ import { AppState } from 'src/reducers/store';
import { Dispatch, GetState } from 'src/types/suite';
import {
TradingAccountOptionsGroupOptionProps,
TradingCryptoSelectItemProps,
TradingGetCryptoQuoteAmountProps,
TradingGetProvidersInfoProps,
TradingTradeSellExchangeType,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { createQuoteLink, createTxLink, getStatusMessage } from 'src/utils/walle

const { QUOTE_REQUEST_FIAT, QUOTE_REQUEST_CRYPTO, MIN_MAX_QUOTES_OK } = fixtures;

jest.mock('src/hooks/wallet/trading/useTradingInfo', () => ({
...jest.requireActual('src/hooks/wallet/trading/useTradingInfo'),
jest.mock('@suite-common/trading', () => ({
...jest.requireActual('@suite-common/trading'),
useTradingInfo: jest.fn(),
}));

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { CryptoId } from 'invity-api';

import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { useTradingInfo } from '@suite-common/trading';

import * as fixtures from 'src/utils/wallet/trading/__fixtures__/exchangeUtils';
import {
getAmountLimits,
Expand All @@ -10,8 +11,8 @@ import {
tradingGetExchangeReceiveCryptoId,
} from 'src/utils/wallet/trading/exchangeUtils';

jest.mock('src/hooks/wallet/trading/useTradingInfo', () => ({
...jest.requireActual('src/hooks/wallet/trading/useTradingInfo'),
jest.mock('@suite-common/trading', () => ({
...jest.requireActual('@suite-common/trading'),
useTradingInfo: jest.fn(),
}));

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { useTradingInfo } from '@suite-common/trading';

import { ComposedTransactionInfo } from 'src/reducers/wallet/tradingReducer';
import { Account } from 'src/types/wallet';
import * as fixtures from 'src/utils/wallet/trading/__fixtures__/sellUtils';
Expand All @@ -17,8 +18,8 @@ const {
MIN_MAX_QUOTES_LOW,
} = fixtures;

jest.mock('src/hooks/wallet/trading/useTradingInfo', () => ({
...jest.requireActual('src/hooks/wallet/trading/useTradingInfo'),
jest.mock('@suite-common/trading', () => ({
...jest.requireActual('@suite-common/trading'),
useTradingInfo: jest.fn(),
}));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import type { MenuPlacement } from 'react-select';

import { CryptoId } from 'invity-api';

import { useTradingInfo } from '@suite-common/trading';
import { getDisplaySymbol, getNetwork } from '@suite-common/wallet-config';
import { formatAmount } from '@suite-common/wallet-utils';
import { Column, InfoSegments, Select } from '@trezor/components';
Expand All @@ -13,7 +14,6 @@ import { Translation } from 'src/components/suite';
import { FORM_SEND_CRYPTO_CURRENCY_SELECT } from 'src/constants/wallet/trading/form';
import { useSelector } from 'src/hooks/suite';
import { useTradingFormContext } from 'src/hooks/wallet/trading/form/useTradingCommonForm';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { useAccountAddressDictionary } from 'src/hooks/wallet/useAccounts';
import { selectLabelingDataForAccount } from 'src/reducers/suite/metadataReducer';
import type { Account } from 'src/types/wallet';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { CryptoId } from 'invity-api';
import styled from 'styled-components';

import { useTradingInfo } from '@suite-common/trading';
import { getDisplaySymbol } from '@suite-common/wallet-config';
import { Row } from '@trezor/components';
import { spacings } from '@trezor/theme';

import { FormattedCryptoAmount } from 'src/components/suite';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { TradingTestWrapper } from 'src/views/wallet/trading';
import { TradingCoinLogo } from 'src/views/wallet/trading/common/TradingCoinLogo';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@ import React from 'react';
import { CryptoId } from 'invity-api';
import styled, { useTheme } from 'styled-components';

import type { TradingTradeType } from '@suite-common/trading';
import { TradingTradeType, useTradingInfo } from '@suite-common/trading';
import { Icon } from '@trezor/components';
import { spacingsPx } from '@trezor/theme';

import { FormattedCryptoAmount } from 'src/components/suite';
import { useTradingFormContext } from 'src/hooks/wallet/trading/form/useTradingCommonForm';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import {
getCryptoQuoteAmountProps,
isTradingBuyContext,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ import { CryptoId } from 'invity-api';

import {
CRYPTO_PLATFORM_SEPARATOR,
TradingCryptoSelectItemProps,
cryptoIdToNetwork,
isCryptoIdForNativeToken,
parseCryptoId,
useTradingInfo,
} from '@suite-common/trading';
import { Network, NetworkSymbol, getNetworkByCoingeckoId } from '@suite-common/wallet-config';
import { Badge, Row, Select, Text } from '@trezor/components';
Expand All @@ -28,11 +30,9 @@ import {
} from 'src/constants/wallet/trading/form';
import { useTranslation } from 'src/hooks/suite';
import { useTradingFormContext } from 'src/hooks/wallet/trading/form/useTradingCommonForm';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import {
SelectAssetOptionProps,
TradingAccountOptionsGroupOptionProps,
TradingCryptoSelectItemProps,
TradingTradeBuyExchangeType,
} from 'src/types/trading/trading';
import {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { FieldErrors } from 'react-hook-form';

import { useFormatters } from '@suite-common/formatters';
import { useTradingInfo } from '@suite-common/trading';
import { formInputsMaxLength } from '@suite-common/validators';
import { getDisplaySymbol } from '@suite-common/wallet-config';
import { FormState } from '@suite-common/wallet-types';
Expand All @@ -15,7 +16,6 @@ import {
} from 'src/constants/wallet/trading/form';
import { useSelector, useTranslation } from 'src/hooks/suite';
import { useTradingFormContext } from 'src/hooks/wallet/trading/form/useTradingCommonForm';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { useBitcoinAmountUnit } from 'src/hooks/wallet/useBitcoinAmountUnit';
import { selectLanguage } from 'src/reducers/suite/suiteReducer';
import {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { useTradingInfo } from '@suite-common/trading';
import { getDisplaySymbol } from '@suite-common/wallet-config';

import { Translation } from 'src/components/suite';
import { useTradingFormContext } from 'src/hooks/wallet/trading/form/useTradingCommonForm';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import {
TradingBuyFormProps,
TradingExchangeFormProps,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,19 @@ import { useState } from 'react';

import { CryptoId } from 'invity-api';

import { type TradingTradeType, type TradingType, parseCryptoId } from '@suite-common/trading';
import {
type TradingTradeType,
type TradingType,
parseCryptoId,
useTradingInfo,
} from '@suite-common/trading';
import { Button, Column, Paragraph, Row, TextButton } from '@trezor/components';
import { spacings } from '@trezor/theme';

import { Translation } from 'src/components/suite';
import { FORM_EXCHANGE_DEX, FORM_EXCHANGE_TYPE } from 'src/constants/wallet/trading/form';
import { useTradingDeviceDisconnected } from 'src/hooks/wallet/trading/form/common/useTradingDeviceDisconnected';
import { useTradingFormContext } from 'src/hooks/wallet/trading/form/useTradingCommonForm';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { TradingFormContextValues } from 'src/types/trading/tradingForm';
import {
getCryptoQuoteAmountProps,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { CryptoId } from 'invity-api';

import { useTradingInfo } from '@suite-common/trading';
import { Row, Text } from '@trezor/components';
import { spacings } from '@trezor/theme';

import { FormattedCryptoAmount } from 'src/components/suite';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { TradingCoinLogo } from 'src/views/wallet/trading/common/TradingCoinLogo';

interface TradingCryptoAmountProps {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import { CryptoId } from 'invity-api';

import { parseCryptoId } from '@suite-common/trading';
import { parseCryptoId, useTradingInfo } from '@suite-common/trading';
import { getDisplaySymbol } from '@suite-common/wallet-config';
import { Row, Text } from '@trezor/components';
import { spacings } from '@trezor/theme';

import { Translation } from 'src/components/suite';
import { useTradingInfo } from 'src/hooks/wallet/trading/useTradingInfo';
import { TradingCoinLogo } from 'src/views/wallet/trading/common/TradingCoinLogo';

interface TradingInfoHeaderProps {
Expand Down
Loading

0 comments on commit c0197c1

Please sign in to comment.