diff --git a/packages/core-mobile/app/new/common/components/NavigationBarButton.tsx b/packages/core-mobile/app/new/common/components/NavigationBarButton.tsx index f823eefd37..ab4a8562c5 100644 --- a/packages/core-mobile/app/new/common/components/NavigationBarButton.tsx +++ b/packages/core-mobile/app/new/common/components/NavigationBarButton.tsx @@ -1,4 +1,5 @@ import { TouchableOpacity, View } from '@avalabs/k2-alpine' +import { isIOS26 } from 'common/utils/isIOS26' import React, { useMemo } from 'react' import { Platform, @@ -6,7 +7,6 @@ import { TouchableOpacityProps, ViewStyle } from 'react-native' -import DeviceInfo from 'react-native-device-info' interface NavigationBarButtonProps extends TouchableOpacityProps { onPress?: () => void @@ -27,7 +27,7 @@ const NavigationBarButton = React.forwardRef< ref ): JSX.Element => { const containerStyle: ViewStyle = useMemo(() => { - if (DeviceInfo.getSystemVersion() >= '26' && Platform.OS === 'ios') { + if (isIOS26) { return { height: 36, width: 36, diff --git a/packages/core-mobile/app/new/common/utils/isIOS26.tsx b/packages/core-mobile/app/new/common/utils/isIOS26.tsx new file mode 100644 index 0000000000..d0fb9d9ff0 --- /dev/null +++ b/packages/core-mobile/app/new/common/utils/isIOS26.tsx @@ -0,0 +1,5 @@ +import { Platform } from 'react-native' +import DeviceInfo from 'react-native-device-info' + +export const isIOS26 = + DeviceInfo.getSystemVersion() >= '26' && Platform.OS === 'ios' diff --git a/packages/core-mobile/app/new/features/track/screens/TrackTokenDetailScreen.tsx b/packages/core-mobile/app/new/features/track/screens/TrackTokenDetailScreen.tsx index d76cdd03f9..fbc7eca4e0 100644 --- a/packages/core-mobile/app/new/features/track/screens/TrackTokenDetailScreen.tsx +++ b/packages/core-mobile/app/new/features/track/screens/TrackTokenDetailScreen.tsx @@ -48,6 +48,7 @@ import { getDomainFromUrl } from 'utils/getDomainFromUrl/getDomainFromUrl' import { isPositiveNumber } from 'utils/isPositiveNumber/isPositiveNumber' import { formatLargeCurrency } from 'utils/Utils' import { useDebouncedCallback } from 'use-debounce' +import { isIOS26 } from 'common/utils/isIOS26' import { useTrackTokenActions } from '../hooks/useTrackTokenActions' const MAX_VALUE_WIDTH = '80%' @@ -321,15 +322,19 @@ const TrackTokenDetailScreen = (): JSX.Element => { )} ) diff --git a/packages/core-mobile/app/new/routes/(signedIn)/(modals)/accountSettings/connectedSites.tsx b/packages/core-mobile/app/new/routes/(signedIn)/(modals)/accountSettings/connectedSites.tsx index e20e2e8fb3..174ae5b637 100644 --- a/packages/core-mobile/app/new/routes/(signedIn)/(modals)/accountSettings/connectedSites.tsx +++ b/packages/core-mobile/app/new/routes/(signedIn)/(modals)/accountSettings/connectedSites.tsx @@ -16,6 +16,7 @@ import React, { useCallback, useMemo, useState } from 'react' import { DappLogo } from 'common/components/DappLogo' import { ErrorState } from 'common/components/ErrorState' import NavigationBarButton from 'common/components/NavigationBarButton' +import { isIOS26 } from 'common/utils/isIOS26' const ConnectedSitesScreen = (): JSX.Element => { const { @@ -167,14 +168,23 @@ const ConnectedSitesScreen = (): JSX.Element => { const renderSeparator = (): JSX.Element => - const renderHeaderRight = (): JSX.Element => { + const renderHeaderRight = (): JSX.Element | null => { + if (allApprovedDapps.length === 0) return null + if (isIOS26) + return ( + + Disconnect all + + ) return ( - {allApprovedDapps.length ? ( - - ) : null} + ) } diff --git a/packages/core-mobile/app/new/routes/(signedIn)/(tabs)/browser/history.tsx b/packages/core-mobile/app/new/routes/(signedIn)/(tabs)/browser/history.tsx index 7a25a7d2bf..b1c37960f8 100644 --- a/packages/core-mobile/app/new/routes/(signedIn)/(tabs)/browser/history.tsx +++ b/packages/core-mobile/app/new/routes/(signedIn)/(tabs)/browser/history.tsx @@ -1,9 +1,16 @@ -import { Button, SearchBar, showAlert } from '@avalabs/k2-alpine' +import { + Button, + SearchBar, + showAlert, + Text, + TouchableOpacity +} from '@avalabs/k2-alpine' import { useNavigation } from '@react-navigation/native' import { ErrorState } from 'common/components/ErrorState' import { ListScreen } from 'common/components/ListScreen' import NavigationBarButton from 'common/components/NavigationBarButton' import { useBottomTabBarHeight } from 'common/hooks/useBottomTabBarHeight' +import { isIOS26 } from 'common/utils/isIOS26' import { BrowserItem } from 'features/browser/components/BrowserItem' import { useSearchHistory } from 'features/browser/hooks/useSearchHistory' import { prepareFaviconToLoad } from 'features/browser/utils' @@ -104,14 +111,24 @@ const HistoryScreen = (): JSX.Element => { ) } - const renderHeaderRight = (): JSX.Element => { + const renderHeaderRight = (): JSX.Element | null => { + if (!hasHistory) return null + if (isIOS26) + return ( + + Clear all + + ) + return ( - {hasHistory && ( - - )} + ) }