Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/run-e2e-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ jobs:
test-e2e-mobile:
name: ${{ inputs.test-suite-name }}
runs-on: ${{ inputs.platform == 'ios' && 'macos-latest-xlarge' || 'gha-mmsdk-scale-set-ubuntu-22.04-amd64-xl' }}
continue-on-error: true
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ inputs.platform }}-${{ inputs.test-suite-name }}-${{ inputs.split_number }}
cancel-in-progress: ${{ !(contains(github.ref, 'refs/heads/main') || contains(github.ref, 'refs/heads/stable')) }}
Expand Down
23 changes: 21 additions & 2 deletions app/components/Nav/App/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,8 @@ import SolanaNewFeatureContent from '../../UI/SolanaNewFeatureContent';
import { DeepLinkModal } from '../../UI/DeepLinkModal';
import { checkForDeeplink } from '../../../actions/user';
import { WalletDetails } from '../../Views/MultichainAccounts/WalletDetails/WalletDetails';
import { AddressList as AccountAddressList } from '../../Views/MultichainAccounts/AddressList';
import { AddressList as MultichainAccountAddressList } from '../../Views/MultichainAccounts/AddressList';
import { PrivateKeyList as MultichainAccountPrivateKeyList } from '../../Views/MultichainAccounts/PrivateKeyList';
import MultichainAccountActions from '../../Views/MultichainAccounts/sheets/MultichainAccountActions/MultichainAccountActions';
import useInterval from '../../hooks/useInterval';
import { Duration } from '@metamask/utils';
Expand Down Expand Up @@ -745,7 +746,21 @@ const MultichainAddressList = () => {
>
<Stack.Screen
name={Routes.MULTICHAIN_ACCOUNTS.ADDRESS_LIST}
component={AccountAddressList}
component={MultichainAccountAddressList}
initialParams={route?.params}
/>
</Stack.Navigator>
);
};

const MultichainPrivateKeyList = () => {
const route = useRoute();

return (
<Stack.Navigator screenOptions={clearStackNavigatorOptions} mode={'modal'}>
<Stack.Screen
name={Routes.MULTICHAIN_ACCOUNTS.PRIVATE_KEY_LIST}
component={MultichainAccountPrivateKeyList}
initialParams={route?.params}
/>
</Stack.Navigator>
Expand Down Expand Up @@ -897,6 +912,10 @@ const AppFlow = () => {
name={Routes.MULTICHAIN_ACCOUNTS.ADDRESS_LIST}
component={MultichainAddressList}
/>
<Stack.Screen
name={Routes.MULTICHAIN_ACCOUNTS.PRIVATE_KEY_LIST}
component={MultichainPrivateKeyList}
/>
<Stack.Screen
name={Routes.SOLANA_NEW_FEATURE_CONTENT}
component={SolanaNewFeatureContentView}
Expand Down
1 change: 1 addition & 0 deletions app/components/UI/DeleteWalletModal/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,7 @@ const DeleteWalletModal: React.FC = () => {
label={strings('login.cancel')}
width={ButtonWidthTypes.Full}
testID={ForgotPasswordModalSelectorsIDs.CANCEL_BUTTON}
isDisabled={isDeletingWallet}
/>
</View>
</View>
Expand Down
2 changes: 1 addition & 1 deletion app/components/Views/AccountBackupStep1/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import { ManualBackUpStepsSelectorsIDs } from '../../../../e2e/selectors/Onboard
import trackOnboarding from '../../../util/metrics/TrackOnboarding/trackOnboarding';
import Routes from '../../../../app/constants/navigation/Routes';
import { MetricsEventBuilder } from '../../../core/Analytics/MetricsEventBuilder';
import SRPDesignLight from '../../../images/secure_wallet.png';
import SRPDesignLight from '../../../images/secure_wallet_light.png';
import SRPDesignDark from '../../../images/secure_wallet_dark.png';
import Button, {
ButtonVariants,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,15 @@ exports[`AccountStatus Snapshots android renders correctly with accountName in r
Wallet already exists
</Text>
<Image
resizeMethod="auto"
resizeMode="contain"
source={1}
style={
{
"alignSelf": "center",
"height": 302,
"marginHorizontal": "auto",
"marginVertical": 16,
"width": 343,
}
}
/>
Expand Down Expand Up @@ -215,13 +217,15 @@ exports[`AccountStatus Snapshots android renders correctly with type="found and
Wallet already exists
</Text>
<Image
resizeMethod="auto"
resizeMode="contain"
source={1}
style={
{
"alignSelf": "center",
"height": 302,
"marginHorizontal": "auto",
"marginVertical": 16,
"width": 343,
}
}
/>
Expand Down Expand Up @@ -386,13 +390,15 @@ exports[`AccountStatus Snapshots android renders correctly with type="not_exist"
Wallet not found
</Text>
<Image
resizeMethod="auto"
resizeMode="contain"
source={1}
style={
{
"alignSelf": "center",
"height": 302,
"marginHorizontal": "auto",
"marginVertical": 16,
"width": 343,
}
}
/>
Expand Down Expand Up @@ -557,13 +563,15 @@ exports[`AccountStatus Snapshots iOS renders correctly with accountName in route
Wallet already exists
</Text>
<Image
resizeMethod="auto"
resizeMode="contain"
source={1}
style={
{
"alignSelf": "center",
"height": 302,
"marginHorizontal": "auto",
"marginVertical": 16,
"width": 343,
}
}
/>
Expand Down Expand Up @@ -728,13 +736,15 @@ exports[`AccountStatus Snapshots iOS renders correctly with type="found" 1`] = `
Wallet already exists
</Text>
<Image
resizeMethod="auto"
resizeMode="contain"
source={1}
style={
{
"alignSelf": "center",
"height": 302,
"marginHorizontal": "auto",
"marginVertical": 16,
"width": 343,
}
}
/>
Expand Down Expand Up @@ -899,13 +909,15 @@ exports[`AccountStatus Snapshots iOS renders correctly with type="not_exist" 1`]
Wallet not found
</Text>
<Image
resizeMethod="auto"
resizeMode="contain"
source={1}
style={
{
"alignSelf": "center",
"height": 302,
"marginHorizontal": "auto",
"marginVertical": 16,
"width": 343,
}
}
/>
Expand Down
10 changes: 9 additions & 1 deletion app/components/Views/AccountStatus/index.styles.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import { StyleSheet, Platform, StatusBar } from 'react-native';
import { StyleSheet, Platform, StatusBar, Dimensions } from 'react-native';

const IMAGE_MAX_WIDTH = 343;
const IMAGE_ASPECT_RATIO = 343 / 302;
const HORIZONTAL_PADDING = 16;
const CONTAINER_WIDTH = Dimensions.get('window').width - HORIZONTAL_PADDING * 2;
const WALLET_IMAGE_WIDTH = Math.min(CONTAINER_WIDTH, IMAGE_MAX_WIDTH);

const styles = StyleSheet.create({
scrollView: {
Expand All @@ -19,6 +25,8 @@ const styles = StyleSheet.create({
marginHorizontal: 'auto',
alignSelf: 'center',
marginVertical: 16,
width: WALLET_IMAGE_WIDTH,
height: Math.round(WALLET_IMAGE_WIDTH / IMAGE_ASPECT_RATIO),
},
description: {
fontSize: 14,
Expand Down
2 changes: 1 addition & 1 deletion app/components/Views/AccountStatus/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ const AccountStatus = ({
</Text>
<Image
source={AccountStatusImg}
resizeMethod={'auto'}
resizeMode="contain"
style={styles.walletReadyImage}
/>
<View style={styles.descriptionWrapper}>
Expand Down
1 change: 0 additions & 1 deletion app/components/Views/ChoosePassword/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -476,7 +476,6 @@ class ChoosePassword extends PureComponent {

this.props.passwordSet();
this.props.setLockTime(AppConstants.DEFAULT_LOCK_TIMEOUT);
this.setState({ loading: false });

if (authType.oauth2Login) {
endTrace({ name: TraceName.OnboardingNewSocialCreateWallet });
Expand Down
44 changes: 26 additions & 18 deletions app/components/Views/Login/__snapshots__/index.test.tsx.snap
Original file line number Diff line number Diff line change
Expand Up @@ -286,24 +286,28 @@ exports[`Login renders matching snapshot 1`] = `
Unlock
</Text>
</TouchableOpacity>
<Text
accessibilityRole="link"
<TouchableOpacity
accessibilityRole="button"
accessible={true}
activeOpacity={1}
disabled={false}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"alignItems": "center",
"alignSelf": "center",
"backgroundColor": "transparent",
"color": "#121314",
"fontFamily": "Geist Regular",
"fontSize": 16,
"letterSpacing": 0,
"lineHeight": 24,
"borderRadius": 12,
"flexDirection": "row",
"height": 48,
"justifyContent": "center",
"marginVertical": 14,
"overflow": "hidden",
"paddingHorizontal": 16,
}
}
suppressHighlighting={true}
testID="reset-wallet-button"
>
<Text
Expand All @@ -320,7 +324,7 @@ exports[`Login renders matching snapshot 1`] = `
>
Forgot password?
</Text>
</Text>
</TouchableOpacity>
</View>
</View>
</View>
Expand Down Expand Up @@ -628,24 +632,28 @@ exports[`Login renders matching snapshot when password input is focused 1`] = `
Unlock
</Text>
</TouchableOpacity>
<Text
accessibilityRole="link"
<TouchableOpacity
accessibilityRole="button"
accessible={true}
activeOpacity={1}
disabled={false}
onPress={[Function]}
onPressIn={[Function]}
onPressOut={[Function]}
style={
{
"alignItems": "center",
"alignSelf": "center",
"backgroundColor": "transparent",
"color": "#121314",
"fontFamily": "Geist Regular",
"fontSize": 16,
"letterSpacing": 0,
"lineHeight": 24,
"borderRadius": 12,
"flexDirection": "row",
"height": 48,
"justifyContent": "center",
"marginVertical": 14,
"overflow": "hidden",
"paddingHorizontal": 16,
}
}
suppressHighlighting={true}
testID="reset-wallet-button"
>
<Text
Expand All @@ -662,7 +670,7 @@ exports[`Login renders matching snapshot when password input is focused 1`] = `
>
Forgot password?
</Text>
</Text>
</TouchableOpacity>
</View>
</View>
</View>
Expand Down
5 changes: 5 additions & 0 deletions app/components/Views/Login/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -771,6 +771,8 @@ const Login: React.FC<LoginProps> = ({ saveOnboardingEvent }) => {
onPress={toggleWarningModal}
testID={LoginViewSelectors.RESET_WALLET}
label={strings('login.forgot_password')}
isDisabled={loading}
size={ButtonSize.Lg}
/>
)}
</View>
Expand All @@ -783,6 +785,9 @@ const Login: React.FC<LoginProps> = ({ saveOnboardingEvent }) => {
onPress={handleUseOtherMethod}
testID={LoginViewSelectors.OTHER_METHODS_BUTTON}
label={strings('login.other_methods')}
loading={loading}
isDisabled={loading}
size={ButtonSize.Lg}
/>
</View>
)}
Expand Down
1 change: 1 addition & 0 deletions app/components/Views/Login/styles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ const styleSheet = (params: { theme: Theme }) => {
},
goBack: {
marginVertical: 14,
alignSelf: 'center',
},
biometrics: {
flexDirection: 'row',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import { AccountGroupType } from '@metamask/account-api';
import { isHDOrFirstPartySnapAccount } from '../../../../util/address';
import { selectInternalAccountsById } from '../../../../selectors/accountsController';
import { SecretRecoveryPhrase, Wallet, RemoveAccount } from './components';
import { createPrivateKeyListNavigationDetails } from '../PrivateKeyList/PrivateKeyList';

interface AccountGroupDetailsProps {
route: {
Expand Down Expand Up @@ -142,6 +143,16 @@ export const AccountGroupDetails = (props: AccountGroupDetailsProps) => {
<TouchableOpacity
style={styles.privateKeys}
testID={AccountDetailsIds.PRIVATE_KEYS_LINK}
onPress={() => {
navigation.navigate(
...createPrivateKeyListNavigationDetails({
groupId: id,
title: strings(
'multichain_accounts.account_details.private_keys',
),
}),
);
}}
>
<Text variant={TextVariant.BodyMDMedium}>
{strings('multichain_accounts.account_details.private_keys')}
Expand Down
Loading
Loading