Skip to content

Commit

Permalink
fix(suite-native): unify look & feel of screen headers
Browse files Browse the repository at this point in the history
  • Loading branch information
yanascz committed Jan 10, 2025
1 parent 4f2733b commit 53c05a0
Show file tree
Hide file tree
Showing 17 changed files with 53 additions and 88 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ import Animated, {
withTiming,
} from 'react-native-reanimated';

import { Box, IconButton } from '@suite-native/atoms';
import { AddCoinFlowType, ScreenSubHeader } from '@suite-native/navigation';
import { Box, HStack, IconButton, Text } from '@suite-native/atoms';
import { AddCoinFlowType } from '@suite-native/navigation';
import { prepareNativeStyle, useNativeStyles } from '@trezor/styles';

import { AccountsSearchForm, SEARCH_INPUT_ANIMATION_DURATION } from './AccountsSearchForm';
import { AddAccountButton } from './AddAccountsButton';

type SearchableAccountsListScreenHeaderProps = {
type SearchableAccountsListHeaderProps = {
title: string;
onSearchInputChange: (value: string) => void;
flowType: AddCoinFlowType;
Expand All @@ -27,11 +27,11 @@ const searchFormContainerStyle = prepareNativeStyle(({ spacings }) => ({
marginBottom: spacings.sp16,
}));

export const SearchableAccountsListScreenHeader = ({
export const SearchableAccountsListHeader = ({
title,
onSearchInputChange,
flowType,
}: SearchableAccountsListScreenHeaderProps) => {
}: SearchableAccountsListHeaderProps) => {
const isFirstRender = useSharedValue(true);
const { applyStyle } = useNativeStyles();

Expand Down Expand Up @@ -76,23 +76,18 @@ export const SearchableAccountsListScreenHeader = ({
entering={enteringFadeInAnimation}
exiting={FadeOut.duration(HEADER_ANIMATION_DURATION)}
>
<ScreenSubHeader
content={title}
rightIcon={
<AddAccountButton
flowType={flowType}
testID="@myAssets/addAccountButton"
/>
}
leftIcon={
<IconButton
iconName="magnifyingGlass"
onPress={() => setIsSearchActive(true)}
colorScheme="tertiaryElevation1"
size="medium"
/>
}
/>
<HStack justifyContent="space-between" alignItems="center">
<IconButton
iconName="magnifyingGlass"
onPress={() => setIsSearchActive(true)}
colorScheme="tertiaryElevation1"
size="medium"
/>
<Text variant="highlight" numberOfLines={1} adjustsFontSizeToFit>
{title}
</Text>
<AddAccountButton flowType={flowType} testID="@myAssets/addAccountButton" />
</HStack>
</Animated.View>
)}
</Box>
Expand Down
2 changes: 1 addition & 1 deletion suite-native/accounts/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ export * from './components/AccountsList/AccountsList';
export * from './components/AccountsList/AccountsListItem';
export * from './components/AccountsList/AccountsListItemBase';
export * from './components/AccountsList/StakingBadge';
export * from './components/SearchableAccountsListScreenHeader';
export * from './components/SearchableAccountsListHeader';
export * from './components/SelectableNetworkItem';
export * from './components/AccountsList/AccountsListTokenItem';
export * from './components/TokenSelectBottomSheet';
Expand Down
3 changes: 2 additions & 1 deletion suite-native/atoms/src/ScreenHeaderWrapper.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ const screenHeaderWrapperStyle = prepareNativeStyle<{ insets: EdgeInsets }>(
alignItems: 'center',
paddingLeft: Math.max(insets.left, utils.spacings.sp16),
paddingRight: Math.max(insets.right, utils.spacings.sp16),
paddingVertical: utils.spacings.sp8,
paddingTop: utils.spacings.sp8,
paddingBottom: utils.spacings.sp16,
}),
);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { ScreenHeader } from '@suite-native/navigation';
import { ScreenHeaderWrapper } from '@suite-native/atoms';

import { DeviceManager } from './DeviceManager';

export const DeviceManagerScreenHeader = () => (
<ScreenHeader>
<ScreenHeaderWrapper>
<DeviceManager />
</ScreenHeader>
</ScreenHeaderWrapper>
);
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { useNavigation } from '@react-navigation/native';
import {
AccountsList,
OnSelectAccount,
SearchableAccountsListScreenHeader,
SearchableAccountsListHeader,
} from '@suite-native/accounts';
import { DeviceManagerScreenHeader } from '@suite-native/device-manager';
import {
Expand Down Expand Up @@ -41,16 +41,12 @@ export const AccountsScreen = () => {
};

return (
<Screen
screenHeader={<DeviceManagerScreenHeader />}
subheader={
<SearchableAccountsListScreenHeader
title="My assets"
onSearchInputChange={handleFilterChange}
flowType="accounts"
/>
}
>
<Screen screenHeader={<DeviceManagerScreenHeader />}>
<SearchableAccountsListHeader
title="My assets"
onSearchInputChange={handleFilterChange}
flowType="accounts"
/>
<AccountsList
onSelectAccount={handleSelectAccount}
filterValue={accountsFilterValue}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ export const ConnectDeviceScreenView = ({
}
noHorizontalPadding
noBottomPadding
isScrollable={false}
hasBottomInset={false}
>
<Box style={[applyStyle(contentStyle), style]}>{children}</Box>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { ReactNode } from 'react';

import { VStack, Text } from '@suite-native/atoms';
import { Screen } from '@suite-native/navigation';

import { PassphraseScreenWrapper } from './PassphraseScreenWrapper';
import { PassphraseScreenHeader } from './PassphraseScreenHeader';

type PassphraseContentScreenWrapperProps = {
children: ReactNode;
Expand All @@ -15,13 +16,13 @@ export const PassphraseContentScreenWrapper = ({
title,
subtitle,
}: PassphraseContentScreenWrapperProps) => (
<PassphraseScreenWrapper>
<VStack spacing="sp16">
<Screen screenHeader={<PassphraseScreenHeader />}>
<VStack marginTop="sp8" spacing="sp16">
<VStack>
<Text variant="titleMedium">{title}</Text>
{subtitle && <Text>{subtitle}</Text>}
</VStack>
{children}
</VStack>
</PassphraseScreenWrapper>
</Screen>
);
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ export const PassphraseScreenHeader = () => {
<IconButton
iconName="x"
size="medium"
colorScheme="tertiaryElevation1"
colorScheme="tertiaryElevation0"
accessibilityRole="button"
accessibilityLabel="close"
onPress={handleCancel}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
AuthorizeDeviceStackParamList,
AuthorizeDeviceStackRoutes,
RootStackParamList,
Screen,
StackToStackCompositeNavigationProps,
} from '@suite-native/navigation';
import { CenteredTitleHeader, VStack } from '@suite-native/atoms';
Expand All @@ -20,7 +21,7 @@ import {
import { useHandlePassphraseMismatch } from '@suite-native/device-authorization';

import { ConfirmOnTrezorAnimation } from '../../components/passphrase/ConfirmOnTrezorAnimation';
import { PassphraseScreenWrapper } from '../../components/passphrase/PassphraseScreenWrapper';
import { PassphraseScreenHeader } from '../../components/passphrase/PassphraseScreenHeader';
import { useRedirectOnPassphraseCompletion } from '../../useRedirectOnPassphraseCompletion';

type NavigationProp = StackToStackCompositeNavigationProps<
Expand Down Expand Up @@ -57,7 +58,7 @@ export const PassphraseConfirmOnTrezorScreen = () => {
}, [device, dispatch, isDeviceConnectedAndAuthorized, hasDiscovery, navigation]);

return (
<PassphraseScreenWrapper>
<Screen screenHeader={<PassphraseScreenHeader />}>
<VStack
spacing="sp24"
alignItems="center"
Expand All @@ -71,6 +72,6 @@ export const PassphraseConfirmOnTrezorScreen = () => {
subtitle={<Translation id="modulePassphrase.confirmOnDevice.description" />}
/>
</VStack>
</PassphraseScreenWrapper>
</Screen>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ export const PassphraseEnableOnDeviceScreen = () => {
<ScreenHeaderWrapper>
<IconButton
size="medium"
colorScheme="tertiaryElevation1"
colorScheme="tertiaryElevation0"
accessibilityRole="button"
accessibilityLabel="close"
iconName="x"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Screen, ScreenHeader, useNavigateToInitialScreen } from '@suite-native/navigation';
import { IconButton, Text, VStack } from '@suite-native/atoms';
import { Screen, useNavigateToInitialScreen } from '@suite-native/navigation';
import { IconButton, ScreenHeaderWrapper, Text, VStack } from '@suite-native/atoms';
import TrezorConnect from '@trezor/connect';
import { Translation, useTranslate } from '@suite-native/intl';
import { useIsConnectPopupOpened } from '@suite-native/module-connect-popup';
Expand All @@ -20,7 +20,7 @@ export const PassphraseFeatureUnlockFormScreen = () => {
return (
<Screen
screenHeader={
<ScreenHeader>
<ScreenHeaderWrapper>
<IconButton
iconName="x"
onPress={handleClose}
Expand All @@ -29,7 +29,7 @@ export const PassphraseFeatureUnlockFormScreen = () => {
accessibilityRole="button"
accessibilityLabel="Close"
/>
</ScreenHeader>
</ScreenHeaderWrapper>
}
>
<VStack spacing="sp24">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@ import {
AuthorizeDeviceStackRoutes,
RootStackParamList,
RootStackRoutes,
Screen,
StackToStackCompositeNavigationProps,
} from '@suite-native/navigation';
import { selectIsDeviceNotEmpty } from '@suite-common/wallet-core';
import { Translation } from '@suite-native/intl';
import { finishPassphraseFlow } from '@suite-native/device-authorization';
import { EventType, analytics } from '@suite-native/analytics';

import { PassphraseScreenWrapper } from '../../components/passphrase/PassphraseScreenWrapper';
import { PassphraseScreenHeader } from '../../components/passphrase/PassphraseScreenHeader';

type NavigationProp = StackToStackCompositeNavigationProps<
AuthorizeDeviceStackParamList,
Expand Down Expand Up @@ -54,7 +55,7 @@ export const PassphraseLoadingScreen = () => {
};

return (
<PassphraseScreenWrapper>
<Screen screenHeader={<PassphraseScreenHeader />}>
<VStack flex={1} justifyContent="center" alignItems="center" spacing="sp32">
<Spinner loadingState={loadingResult} onComplete={handleSuccess} />
<VStack spacing="sp4">
Expand All @@ -66,6 +67,6 @@ export const PassphraseLoadingScreen = () => {
</Text>
</VStack>
</VStack>
</PassphraseScreenWrapper>
</Screen>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ export const FirmwareUpdateScreen = () => {

return (
<Screen
subheader={<ScreenSubHeader closeActionType="close" />}
screenHeader={<ScreenSubHeader closeActionType="close" />}
footer={
<Button
onPress={handleShowSeedBottomSheet}
Expand Down
10 changes: 2 additions & 8 deletions suite-native/module-send/src/components/SendScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,11 @@ import { Screen } from '@suite-native/navigation';
type SendScreenProps = {
children: ReactNode;
screenHeader: ReactNode;
subheader?: ReactNode;
footer?: ReactNode;
};

export const SendScreen = ({ children, footer, screenHeader, subheader }: SendScreenProps) => (
<Screen
screenHeader={screenHeader}
subheader={subheader}
footer={footer}
keyboardDismissMode="on-drag"
>
export const SendScreen = ({ children, footer, screenHeader }: SendScreenProps) => (
<Screen screenHeader={screenHeader} footer={footer} keyboardDismissMode="on-drag">
{children}
</Screen>
);
11 changes: 0 additions & 11 deletions suite-native/navigation/src/components/ScreenHeader.tsx

This file was deleted.

1 change: 0 additions & 1 deletion suite-native/navigation/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ export * from './useNavigateToInitialScreen';
export * from './useScrollDivider';
export * from './components/TabBar';
export * from './components/Screen';
export * from './components/ScreenHeader';
export * from './components/ScreenSubHeader';
export * from './components/NavigationContainerWithAnalytics';
export * from './components/GoBackIcon';
Expand Down

0 comments on commit 53c05a0

Please sign in to comment.