From ced0c5d3f6257105097baf9605189753960d4362 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Fri, 12 Apr 2024 17:24:37 +0300 Subject: [PATCH] fix(mobile): Wallet screen fixes --- .../utils/AmountFormatter/AmountFormatter.ts | 7 ++++- packages/mobile/src/core/Jetton/Jetton.tsx | 2 -- .../src/core/LegalDocuments/FontLicense.tsx | 9 +++--- .../core/LegalDocuments/LegalDocuments.tsx | 6 ++-- packages/mobile/src/core/Logs/Logs.tsx | 29 ++++++++---------- .../src/core/Notifications/Notifications.tsx | 6 ++-- .../Notifications/NotificationsActivity.tsx | 2 ++ .../mobile/src/core/Security/Security.tsx | 6 ++-- .../mobile/src/core/Settings/Settings.tsx | 4 +-- packages/mobile/src/modals/ExchangeModal.tsx | 26 +++++++++++----- .../MainStack/TabStack/BackupIndicator.tsx | 11 ------- .../mobile/src/tabs/Wallet/WalletScreen.tsx | 14 ++++++++- .../components/Tabs/BackupIndicator.tsx | 27 ++++++++++++++++ .../WalletActionButtons.tsx | 2 +- .../src/tabs/Wallet/hooks/useBalance.ts | 7 ++++- .../shared/i18n/locales/tonkeeper/ru-RU.json | 6 ++-- .../assets/icons/png/ic-usd-outline-28@4x.png | Bin 0 -> 1639 bytes .../assets/icons/svg/28/ic-usd-outline-28.svg | 3 ++ .../uikit/src/components/Icon/Icon.types.ts | 3 ++ .../src/components/Icon/IconList.native.ts | 1 + 20 files changed, 112 insertions(+), 59 deletions(-) delete mode 100644 packages/mobile/src/navigation/MainStack/TabStack/BackupIndicator.tsx create mode 100644 packages/mobile/src/tabs/Wallet/components/Tabs/BackupIndicator.tsx create mode 100644 packages/uikit/assets/icons/png/ic-usd-outline-28@4x.png create mode 100644 packages/uikit/assets/icons/svg/28/ic-usd-outline-28.svg diff --git a/packages/@core-js/src/utils/AmountFormatter/AmountFormatter.ts b/packages/@core-js/src/utils/AmountFormatter/AmountFormatter.ts index a985e378f..60b517363 100644 --- a/packages/@core-js/src/utils/AmountFormatter/AmountFormatter.ts +++ b/packages/@core-js/src/utils/AmountFormatter/AmountFormatter.ts @@ -21,6 +21,8 @@ export type AmountFormatOptions = { ignoreZeroTruncate?: boolean; absolute?: boolean; withPositivePrefix?: boolean; + // Truncate decimals. Required for backward compatibility + forceRespectDecimalPlaces?: boolean; }; export type AmountFormatNanoOptions = AmountFormatOptions & { @@ -144,7 +146,10 @@ export class AmountFormatter { }; // truncate decimals 1.00 -> 1 - if (!options.ignoreZeroTruncate && bn.isLessThan('1000')) { + if ( + options.forceRespectDecimalPlaces || + (!options.ignoreZeroTruncate && bn.isLessThan('1000')) + ) { bn = bn.decimalPlaces(decimals, BigNumber.ROUND_DOWN); return bn.toFormat(formatConf); } diff --git a/packages/mobile/src/core/Jetton/Jetton.tsx b/packages/mobile/src/core/Jetton/Jetton.tsx index b649e47c4..32724c355 100644 --- a/packages/mobile/src/core/Jetton/Jetton.tsx +++ b/packages/mobile/src/core/Jetton/Jetton.tsx @@ -151,7 +151,6 @@ export const Jetton: React.FC = ({ route }) => { }, { id: 'swap', - disabled: !isWatchOnly && showSwap && !flags.disable_swap, onPress: handlePressSwap, icon: 'ic-swap-horizontal-outline-28', title: t('wallet.swap_btn'), @@ -181,7 +180,6 @@ export const Jetton: React.FC = ({ route }) => { }, [ jetton, jettonPrice.formatted.totalFiat, - jettonPrice.formatted.fiat, lockedJettonPrice.formatted.totalFiat, isWatchOnly, handleSend, diff --git a/packages/mobile/src/core/LegalDocuments/FontLicense.tsx b/packages/mobile/src/core/LegalDocuments/FontLicense.tsx index 6b7296063..fd2f1f865 100644 --- a/packages/mobile/src/core/LegalDocuments/FontLicense.tsx +++ b/packages/mobile/src/core/LegalDocuments/FontLicense.tsx @@ -1,13 +1,14 @@ import React from 'react'; import Animated from 'react-native-reanimated'; import { useBottomTabBarHeight } from '@react-navigation/bottom-tabs'; -import {NavBar, ScrollHandler, Text} from '$uikit'; +import { NavBar, ScrollHandler, Text } from '$uikit'; import { ns } from '$utils'; import * as S from './LegalDocuments.style'; import { t } from '@tonkeeper/shared/i18n'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; export const FontLicense: React.FC = () => { - const tabBarHeight = useBottomTabBarHeight(); + const insets = useSafeAreaInsets(); return ( @@ -17,7 +18,7 @@ export const FontLicense: React.FC = () => { showsVerticalScrollIndicator={false} contentContainerStyle={{ paddingHorizontal: ns(16), - paddingBottom: tabBarHeight, + paddingBottom: insets.bottom + 16, }} scrollEventThrottle={16} > @@ -124,4 +125,4 @@ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. -`; \ No newline at end of file +`; diff --git a/packages/mobile/src/core/LegalDocuments/LegalDocuments.tsx b/packages/mobile/src/core/LegalDocuments/LegalDocuments.tsx index efd71caa2..948a500da 100644 --- a/packages/mobile/src/core/LegalDocuments/LegalDocuments.tsx +++ b/packages/mobile/src/core/LegalDocuments/LegalDocuments.tsx @@ -1,5 +1,4 @@ import React, { FC, useCallback, useMemo } from 'react'; -import { useBottomTabBarHeight } from '@react-navigation/bottom-tabs'; import Animated from 'react-native-reanimated'; import { Icon, NavBar, ScrollHandler, Text } from '$uikit'; import { ns } from '$utils'; @@ -7,9 +6,10 @@ import { CellSection, CellSectionItem } from '$shared/components'; import * as S from './LegalDocuments.style'; import { openDAppBrowser, openFontLicense } from '$navigation'; import { t } from '@tonkeeper/shared/i18n'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; export const LegalDocuments: FC = () => { - const tabBarHeight = useBottomTabBarHeight(); + const insets = useSafeAreaInsets(); const handleTerms = useCallback(() => { openDAppBrowser('https://tonkeeper.com/terms'); @@ -36,7 +36,7 @@ export const LegalDocuments: FC = () => { showsVerticalScrollIndicator={false} contentContainerStyle={{ paddingHorizontal: ns(16), - paddingBottom: tabBarHeight, + paddingBottom: insets.bottom + 16, }} scrollEventThrottle={16} > diff --git a/packages/mobile/src/core/Logs/Logs.tsx b/packages/mobile/src/core/Logs/Logs.tsx index c94633a71..5e5a50ff6 100644 --- a/packages/mobile/src/core/Logs/Logs.tsx +++ b/packages/mobile/src/core/Logs/Logs.tsx @@ -1,5 +1,4 @@ import React, { FC, useCallback, useMemo } from 'react'; -import { useBottomTabBarHeight } from '@react-navigation/bottom-tabs'; import { useDispatch, useSelector } from 'react-redux'; import Clipboard from '@react-native-community/clipboard'; @@ -10,10 +9,11 @@ import { format, ns } from '$utils'; import { Toast } from '$store'; import { t } from '@tonkeeper/shared/i18n'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; export const Logs: FC = () => { - const tabBarHeight = useBottomTabBarHeight(); const dispatch = useDispatch(); + const insets = useSafeAreaInsets(); const { logs } = useSelector(mainSelector); @@ -33,27 +33,24 @@ export const Logs: FC = () => { ]; }, [logs]); - const handleItemPress = useCallback( - (item) => { - const payload = [ - `Screen: ${item.screen}`, - `Time: ${item.time}`, - `Message: ${item.message}`, - `Stack: ${item.trace}`, - ].join('\n'); + const handleItemPress = useCallback((item) => { + const payload = [ + `Screen: ${item.screen}`, + `Time: ${item.time}`, + `Message: ${item.message}`, + `Stack: ${item.trace}`, + ].join('\n'); - Clipboard.setString(payload); - Toast.success(t('copied')); - }, - [t, dispatch], - ); + Clipboard.setString(payload); + Toast.success(t('copied')); + }, []); return ( Logs { diff --git a/packages/mobile/src/core/Notifications/Notifications.tsx b/packages/mobile/src/core/Notifications/Notifications.tsx index 54676f1e7..a03c561e9 100644 --- a/packages/mobile/src/core/Notifications/Notifications.tsx +++ b/packages/mobile/src/core/Notifications/Notifications.tsx @@ -9,19 +9,19 @@ import { View, } from '$uikit'; import { ns } from '$utils'; -import { useBottomTabBarHeight } from '@react-navigation/bottom-tabs'; import { CellSection } from '$shared/components'; import { t } from '@tonkeeper/shared/i18n'; import { useConnectedAppsList } from '$store'; import { Steezy } from '$styles'; import { SwitchDAppNotifications } from '$core/Notifications/SwitchDAppNotifications'; import { useNotificationsSwitch } from '$hooks/useNotificationsSwitch'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; export const Notifications: React.FC = () => { - const tabBarHeight = useBottomTabBarHeight(); const connectedApps = useConnectedAppsList(); const { isSubscribed, isDenied, openSettings, toggleNotifications } = useNotificationsSwitch(); + const insets = useSafeAreaInsets(); return ( @@ -29,7 +29,7 @@ export const Notifications: React.FC = () => { {isDenied && ( diff --git a/packages/mobile/src/core/Notifications/NotificationsActivity.tsx b/packages/mobile/src/core/Notifications/NotificationsActivity.tsx index b557a98da..e02966c5a 100644 --- a/packages/mobile/src/core/Notifications/NotificationsActivity.tsx +++ b/packages/mobile/src/core/Notifications/NotificationsActivity.tsx @@ -8,6 +8,8 @@ import { INotification, useDAppsNotifications } from '$store'; import { FlashList } from '@shopify/flash-list'; import { LayoutAnimation } from 'react-native'; import { useBottomTabBarHeight } from '@react-navigation/bottom-tabs'; +import { safeAreaInsets } from '$utils'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; export enum ActivityListItem { Notification = 'Notification', diff --git a/packages/mobile/src/core/Security/Security.tsx b/packages/mobile/src/core/Security/Security.tsx index 922d72fa9..8e704f244 100644 --- a/packages/mobile/src/core/Security/Security.tsx +++ b/packages/mobile/src/core/Security/Security.tsx @@ -1,6 +1,5 @@ import React, { FC, useCallback } from 'react'; import Animated from 'react-native-reanimated'; -import { useBottomTabBarHeight } from '@react-navigation/bottom-tabs'; import Clipboard from '@react-native-community/clipboard'; import * as S from './Security.style'; @@ -14,9 +13,10 @@ import { useBiometrySettings, useWallet } from '@tonkeeper/shared/hooks'; import { useNavigation } from '@tonkeeper/router'; import { vault } from '$wallet'; import { Haptics, Switch } from '@tonkeeper/uikit'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; export const Security: FC = () => { - const tabBarHeight = useBottomTabBarHeight(); + const insets = useSafeAreaInsets(); const wallet = useWallet(); const nav = useNavigation(); @@ -93,7 +93,7 @@ export const Security: FC = () => { showsVerticalScrollIndicator={false} contentContainerStyle={{ paddingHorizontal: ns(16), - paddingBottom: tabBarHeight, + paddingBottom: insets.bottom + 16, }} scrollEventThrottle={16} > diff --git a/packages/mobile/src/core/Settings/Settings.tsx b/packages/mobile/src/core/Settings/Settings.tsx index 72628aa2d..33ba67538 100644 --- a/packages/mobile/src/core/Settings/Settings.tsx +++ b/packages/mobile/src/core/Settings/Settings.tsx @@ -3,11 +3,10 @@ import { useDispatch } from 'react-redux'; import Rate, { AndroidMarket } from 'react-native-rate'; import { Alert, Linking, Platform, View } from 'react-native'; import DeviceInfo from 'react-native-device-info'; -import Animated from 'react-native-reanimated'; import { TapGestureHandler } from 'react-native-gesture-handler'; import * as S from './Settings.style'; -import { Icon, PopupSelect, ScrollHandler, Spacer, Text } from '$uikit'; +import { Icon, PopupSelect, Spacer, Text } from '$uikit'; import { Icon as NewIcon, Screen } from '@tonkeeper/uikit'; import { useShouldShowTokensButton } from '$hooks/useShouldShowTokensButton'; import { useNavigation } from '@tonkeeper/router'; @@ -286,7 +285,6 @@ export const Settings: FC = () => { rightContent={} /> - ) : null} diff --git a/packages/mobile/src/modals/ExchangeModal.tsx b/packages/mobile/src/modals/ExchangeModal.tsx index 711c1c9fb..7f1653d21 100644 --- a/packages/mobile/src/modals/ExchangeModal.tsx +++ b/packages/mobile/src/modals/ExchangeModal.tsx @@ -13,6 +13,7 @@ import { openChooseCountry } from '$navigation'; import { useSelectedCountry } from '$store/zustand/methodsToBuy/useSelectedCountry'; import { CountryButton } from '@tonkeeper/shared/components'; import { config } from '$config'; +import { useWallet } from '@tonkeeper/shared/hooks'; export const ExchangeModal = () => { const [showAll, setShowAll] = React.useState(false); @@ -65,6 +66,9 @@ export const ExchangeModal = () => { LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut); }, [showAll]); + const wallet = useWallet(); + const watchOnly = wallet && wallet.isWatchOnly; + const [segmentIndex, setSegmentIndex] = useState(0); const isLoading = buy.length === 0 && sell.length === 0; @@ -79,11 +83,15 @@ export const ExchangeModal = () => { } title={ - setSegmentIndex(segment)} - index={segmentIndex} - items={[t('exchange_modal.buy'), t('exchange_modal.sell')]} - /> + watchOnly ? ( + categories && categories[0] && categories[0].title + ) : ( + setSegmentIndex(segment)} + index={segmentIndex} + items={[t('exchange_modal.buy'), t('exchange_modal.sell')]} + /> + ) } /> @@ -97,9 +105,11 @@ export const ExchangeModal = () => { {categories.map((category, cIndex) => ( {cIndex > 0 ? : null} - - {category.title} - + {!(watchOnly && cIndex === 0) ? ( + + {category.title} + + ) : null} {category.items.map((item, idx, arr) => ( { - const { lastBackupAt } = useWalletSetup(); - - const isVisible = lastBackupAt === null; - - return ; -}; diff --git a/packages/mobile/src/tabs/Wallet/WalletScreen.tsx b/packages/mobile/src/tabs/Wallet/WalletScreen.tsx index 7011f4272..8afaf0968 100644 --- a/packages/mobile/src/tabs/Wallet/WalletScreen.tsx +++ b/packages/mobile/src/tabs/Wallet/WalletScreen.tsx @@ -27,6 +27,7 @@ import { WalletActionButtons } from './components/WalletActionButtons/WalletActi import { WalletContentList } from './components/WalletContentList'; import { usePreparedWalletContent } from './content-providers/utils/usePreparedWalletContent'; import { FinishSetupList } from './components/FinishSetupList'; +import { BackupIndicator } from './components/Tabs/BackupIndicator'; export const WalletScreen = memo(({ navigation }) => { const dispatch = useDispatch(); @@ -165,7 +166,12 @@ export const WalletScreen = memo(({ navigation }) => { } rightContent={ - + + {!isWatchOnly ? : null} } @@ -225,4 +231,10 @@ const styles = Steezy.create(({ isTablet }) => ({ flexDirection: 'row', alignItems: 'center', }, + gearContainer: { + width: 48, + height: 48, + justifyContent: 'center', + alignItems: 'center', + }, })); diff --git a/packages/mobile/src/tabs/Wallet/components/Tabs/BackupIndicator.tsx b/packages/mobile/src/tabs/Wallet/components/Tabs/BackupIndicator.tsx new file mode 100644 index 000000000..48d503ed6 --- /dev/null +++ b/packages/mobile/src/tabs/Wallet/components/Tabs/BackupIndicator.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import { useWalletSetup } from '@tonkeeper/shared/hooks'; +import { Steezy, View } from '@tonkeeper/uikit'; + +export const BackupIndicator: React.FC = () => { + const { lastBackupAt } = useWalletSetup(); + + const isVisible = lastBackupAt === null; + + if (!isVisible) { + return null; + } + + return ; +}; + +const styles = Steezy.create(({ colors }) => ({ + indicator: { + position: 'absolute', + top: 10, + right: 4, + height: 6, + width: 6, + borderRadius: 3, + backgroundColor: colors.accentRed, + }, +})); diff --git a/packages/mobile/src/tabs/Wallet/components/WalletActionButtons/WalletActionButtons.tsx b/packages/mobile/src/tabs/Wallet/components/WalletActionButtons/WalletActionButtons.tsx index 19bd0520a..ae59412e6 100644 --- a/packages/mobile/src/tabs/Wallet/components/WalletActionButtons/WalletActionButtons.tsx +++ b/packages/mobile/src/tabs/Wallet/components/WalletActionButtons/WalletActionButtons.tsx @@ -121,7 +121,7 @@ export const WalletActionButtons = memo(() => { { id: 'buy', onPress: handlePressBuy, - icon: 'ic-usd-28', + icon: 'ic-usd-outline-28', title: t('wallet.buy_btn'), visible: !wallet.isTestnet, }, diff --git a/packages/mobile/src/tabs/Wallet/hooks/useBalance.ts b/packages/mobile/src/tabs/Wallet/hooks/useBalance.ts index 9d15a021e..f9a30e3e1 100644 --- a/packages/mobile/src/tabs/Wallet/hooks/useBalance.ts +++ b/packages/mobile/src/tabs/Wallet/hooks/useBalance.ts @@ -18,6 +18,11 @@ export const useBalance = (cellItems: CellItemToRender[]) => { const balance = item.fiatRate?.total.raw ?? '0'; return total.plus(balance); }, new BigNumber(0)); - return formatter.format(totalNumber.toString(), { currency }); + + return formatter.format(totalNumber.toString(), { + currency, + forceRespectDecimalPlaces: true, + decimals: totalNumber.gte(1000) ? 0 : 2, + }); }, [cellItems, currency]); }; diff --git a/packages/shared/i18n/locales/tonkeeper/ru-RU.json b/packages/shared/i18n/locales/tonkeeper/ru-RU.json index 34105708f..dbd376d72 100644 --- a/packages/shared/i18n/locales/tonkeeper/ru-RU.json +++ b/packages/shared/i18n/locales/tonkeeper/ru-RU.json @@ -1029,7 +1029,7 @@ "wallet_about" : "Подробнее", "wallet_buy" : "Купить", "wallet" : { - "buy_btn" : "Купить TON", + "buy_btn" : "Покупки", "collectibles_tab_lable" : "Коллекции", "edit_tokens_btn" : "Настроить", "nft_tab_lable" : "Коллекции", @@ -1039,6 +1039,8 @@ "screen_title" : "Кошелёк", "send_btn" : "Отправить", "swap_btn" : "Обменять", + "scan_btn": "Сканировать", + "stake_btn": "Стейкать", "tonkens_tab_lable" : "Токены", "inscriptions_tab_label": "Инскрипции", "updated_at" : "Обновлён %{value}" @@ -1181,7 +1183,7 @@ "subtitle": "Отслеживайте активность, получайте уведомления о транзакциях этого кошелька без ввода секретного ключа.", "wallet_not_found": "Адрес кошелька не найден" }, - "watch_only": "Только просмотр", + "watch_only": "Просмотр", "stop_watch": "Удалить аккаунт", "customize": "Кастомизировать", "customize_modal": { diff --git a/packages/uikit/assets/icons/png/ic-usd-outline-28@4x.png b/packages/uikit/assets/icons/png/ic-usd-outline-28@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..f0776e296217dc14816dd6fcf795923fd9d99226 GIT binary patch literal 1639 zcmV-t2AKJYP)3=^jdtKUFX68o&wG{DS2gQfQMt( zz2yN>H+4(ZiA5Aj!FQNC2f~9xW=cRk<=mSVCnBck|szRRYw?SB;Dzp+f>JM z+ZS*V@N*5lr2}{!m=0WA;We)S9s!n7+vjN~aCx)aprrv1C2ZU-{AXlM0}{Yhz=tIN zY+aI7T?+~LDM6#|puzb)U>3gjCUH+%^(!>swgip23mB17dEMtOw?yc}rA zbHEKLmpLBzD?t)(PqW-Y0=^A2;-ZYoot+?o%d;rEP=MosMx2ph*`Ec%R|c+kIOoo0Rk(9*horBoJY-!~WfuZ4HP8dMG$Dpb z_$7$F9R?<5U4E_d)&oxmu4lf2z&W>D(lkk5N;)Q~yY%}s=iIMZm*3KWiGd#YXY3eF z6~I9J|9REe>go&R>MhhccSh2lz{BP?BNkI9;Nw6K+y@Ma9jB=PxId6UfRBLO&SkbW zU@(2}F6wPz>{v|&z=8w`1V1@DI(EFK7hn`{C}9#i@oQ%?8)7qc0Olo3VA&tQd|+(s z*i8xWNsUPaKN!6UcmcmgrqDez*LQNjKuK#Q&1~RhPD%Pv()W@!NZR6@3k}(swBYwc ztgWLbR&okhiC;K1D0cnY0)B|?y%dvJ)&;x|Oo?5`wgAip4rY)@@Ecohja|pW!_V5k zP4&YJ>UADi1Y8!oo`nYt1D*yBWRS>C;NIAEYzx33U=Hvp>GsO=z>Bf#*H%i&yc@qy zVgqn8g+#uK4V=e;zk8j5-%r1u`ZtNb8M`h<5-=M7xmnB3r?SUl$8RnG%mg;qkig^Q za8+8{!%rZ0CQRZtvEwy;0LB78But_mfRIP{8=la{8h}-?V>K1vPk`DTNMH{zK6b2S zxms2jn{%#9(mYAkj;!n_e>R)RE8wd@FSLDvc}93?5t z4>SAr8Q2HsT(|x^D5x*}B;{i9R4x*T-;=ijKSSPu|DK0yBZqY;aNU+;ND^>0l{ZvI zOCsU%(wk$&mMg&GDvh+6NT=xndjkoyaZyPkd{WXg5n>tuoDRe_tl4qp65->MPtfGI zQv8D8YW`_vJk{jkCg!`q^}&)>(%gkca{||QHYJKy09=nhAva_TP1x88j3m6a=AEqL zXeszLEJ526Ff#4T>)EUS81m$;7`jhcw_4@$--ue2ddnP1 zGbBxyl=OyUucVEVR!CayoI9CKgeEbdUxMB?0~j7V*0i*I59|%7wyIjrxkA<1?y_2( zC9uU6F@eXcTszvdD4L{*30z<0+M1?CVd_KWZ(jKuJ4>`R0ONqA_<6#kz~`1cV~jDz l7-Nhv#u#IaF~*pB{0m-==jDJG_s{?U002ovPDHLkV1n>~1i%0Q literal 0 HcmV?d00001 diff --git a/packages/uikit/assets/icons/svg/28/ic-usd-outline-28.svg b/packages/uikit/assets/icons/svg/28/ic-usd-outline-28.svg new file mode 100644 index 000000000..a0303fa0f --- /dev/null +++ b/packages/uikit/assets/icons/svg/28/ic-usd-outline-28.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/uikit/src/components/Icon/Icon.types.ts b/packages/uikit/src/components/Icon/Icon.types.ts index d14edf228..002147c11 100644 --- a/packages/uikit/src/components/Icon/Icon.types.ts +++ b/packages/uikit/src/components/Icon/Icon.types.ts @@ -126,6 +126,7 @@ export type IconNames = | 'ic-tray-arrow-down-28' | 'ic-tray-arrow-up-28' | 'ic-usd-28' + | 'ic-usd-outline-28' | 'ic-viewfinder-28' | 'ic-wallet-28' | 'ic-warning-28' @@ -291,6 +292,7 @@ export const AllIcons = [ 'ic-tray-arrow-down-28', 'ic-tray-arrow-up-28', 'ic-usd-28', + 'ic-usd-outline-28', 'ic-viewfinder-28', 'ic-wallet-28', 'ic-warning-28', @@ -457,6 +459,7 @@ export const IconSizes = { 'ic-tray-arrow-down-28': 28, 'ic-tray-arrow-up-28': 28, 'ic-usd-28': 28, + 'ic-usd-outline-28': 28, 'ic-viewfinder-28': 28, 'ic-wallet-28': 28, 'ic-warning-28': 28, diff --git a/packages/uikit/src/components/Icon/IconList.native.ts b/packages/uikit/src/components/Icon/IconList.native.ts index fa56006f9..0e387ce07 100644 --- a/packages/uikit/src/components/Icon/IconList.native.ts +++ b/packages/uikit/src/components/Icon/IconList.native.ts @@ -126,6 +126,7 @@ export const IconList = { 'ic-tray-arrow-down-28': require('../../../assets/icons/png/ic-tray-arrow-down-28.png'), 'ic-tray-arrow-up-28': require('../../../assets/icons/png/ic-tray-arrow-up-28.png'), 'ic-usd-28': require('../../../assets/icons/png/ic-usd-28.png'), + 'ic-usd-outline-28': require('../../../assets/icons/png/ic-usd-outline-28.png'), 'ic-viewfinder-28': require('../../../assets/icons/png/ic-viewfinder-28.png'), 'ic-wallet-28': require('../../../assets/icons/png/ic-wallet-28.png'), 'ic-warning-28': require('../../../assets/icons/png/ic-warning-28.png'),