|
1 | 1 | import React from 'react';
|
2 |
| -import { View } from 'react-native'; |
| 2 | +import { View, ScrollView } from 'react-native'; |
| 3 | +import { SafeAreaView } from 'react-native-safe-area-context'; |
| 4 | +import { TransactionType } from '@metamask/transaction-controller'; |
3 | 5 |
|
4 | 6 | import { useStyles } from '../../../../component-library/hooks';
|
5 |
| -import BottomModal from '../components/UI/BottomModal'; |
6 | 7 | import AccountNetworkInfo from '../components/Confirm/AccountNetworkInfo';
|
| 8 | +import BottomModal from '../components/UI/BottomModal'; |
7 | 9 | import Footer from '../components/Confirm/Footer';
|
8 | 10 | import Info from '../components/Confirm/Info';
|
9 | 11 | import SignatureBlockaidBanner from '../components/Confirm/SignatureBlockaidBanner';
|
10 | 12 | import Title from '../components/Confirm/Title';
|
11 | 13 | import useApprovalRequest from '../hooks/useApprovalRequest';
|
12 | 14 | import { useConfirmationRedesignEnabled } from '../hooks/useConfirmationRedesignEnabled';
|
| 15 | + |
13 | 16 | import styleSheet from './Confirm.styles';
|
14 | 17 |
|
| 18 | +// todo: if possible derive way to dynamically check if confirmation should be rendered flat |
| 19 | +// todo: unit test coverage to be added once we have flat confirmations in place |
| 20 | +const FLAT_CONFIRMATIONS: TransactionType[] = [ |
| 21 | + // To be filled with flat confirmations |
| 22 | +]; |
| 23 | + |
| 24 | +const ConfirmWrapped = () => ( |
| 25 | + <> |
| 26 | + <ScrollView> |
| 27 | + <Title /> |
| 28 | + <SignatureBlockaidBanner /> |
| 29 | + <AccountNetworkInfo /> |
| 30 | + <Info /> |
| 31 | + </ScrollView> |
| 32 | + <Footer /> |
| 33 | + </> |
| 34 | +); |
| 35 | + |
15 | 36 | const Confirm = () => {
|
16 |
| - const { isRedesignedEnabled } = useConfirmationRedesignEnabled(); |
17 | 37 | const { approvalRequest } = useApprovalRequest();
|
| 38 | + const { isRedesignedEnabled } = useConfirmationRedesignEnabled(); |
18 | 39 | const { styles } = useStyles(styleSheet, {});
|
19 | 40 |
|
20 | 41 | if (!isRedesignedEnabled) {
|
21 | 42 | return null;
|
22 | 43 | }
|
23 | 44 |
|
| 45 | + const isFlatConfirmation = FLAT_CONFIRMATIONS.includes( |
| 46 | + approvalRequest?.type as TransactionType, |
| 47 | + ); |
| 48 | + |
| 49 | + if (isFlatConfirmation) { |
| 50 | + return ( |
| 51 | + <SafeAreaView style={styles.mainContainer}> |
| 52 | + <ConfirmWrapped /> |
| 53 | + </SafeAreaView> |
| 54 | + ); |
| 55 | + } |
| 56 | + |
24 | 57 | return (
|
25 | 58 | <BottomModal canCloseOnBackdropClick={false}>
|
26 |
| - <View style={styles.container} testID={approvalRequest?.type}> |
27 |
| - <View> |
28 |
| - <Title /> |
29 |
| - {/* TODO: component SignatureBlockaidBanner to be removed once we implement alert system in mobile */} |
30 |
| - <SignatureBlockaidBanner /> |
31 |
| - <AccountNetworkInfo /> |
32 |
| - <Info /> |
33 |
| - </View> |
34 |
| - <Footer /> |
| 59 | + <View style={styles.container}> |
| 60 | + <ConfirmWrapped /> |
35 | 61 | </View>
|
36 | 62 | </BottomModal>
|
37 | 63 | );
|
|
0 commit comments