diff --git a/src/assets/images/leader-pana.png b/src/assets/images/leader-pana.png
new file mode 100644
index 0000000..43a1fea
Binary files /dev/null and b/src/assets/images/leader-pana.png differ
diff --git a/src/components/Modal/ModalSuccess/index.js b/src/components/Modal/ModalSuccess/index.js
new file mode 100644
index 0000000..d5f4152
--- /dev/null
+++ b/src/components/Modal/ModalSuccess/index.js
@@ -0,0 +1,33 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import React, {useRef, useEffect, useState} from 'react';
+import {View, Text, Image, TouchableOpacity} from 'react-native';
+import Modal from 'react-native-modal';
+import {Icon} from 'components';
+import {Colors} from 'global-styles';
+import {useTranslation} from 'react-i18next';
+import styles from './styles';
+
+const ModalSuccess = props => {
+ const {t} = useTranslation();
+ const {isVisible, onClose, message} = props;
+
+ return (
+
+
+
+
+
+
+
+ {t('success_text')}
+ {message}
+
+
+
+ );
+};
+
+export default ModalSuccess;
diff --git a/src/components/Modal/ModalSuccess/styles.js b/src/components/Modal/ModalSuccess/styles.js
new file mode 100644
index 0000000..dae2443
--- /dev/null
+++ b/src/components/Modal/ModalSuccess/styles.js
@@ -0,0 +1,55 @@
+import {StyleSheet, Dimensions, Platform} from 'react-native';
+import {RFValue} from 'react-native-responsive-fontsize';
+import {Colors, FONTS} from 'global-styles';
+const {width} = Dimensions.get('window');
+
+export default StyleSheet.create({
+ modal: {
+ margin: 0,
+ },
+ container: {
+ flex: 1,
+ margin: 0,
+ justifyContent: 'flex-end',
+ },
+ content: {
+ height: width / 1.4,
+ backgroundColor: Colors.WHITE,
+ paddingVertical: width * 0.04,
+ paddingHorizontal: width * 0.05,
+ borderTopLeftRadius: width * 0.05,
+ borderTopRightRadius: width * 0.05,
+ alignItems: 'center',
+ },
+ buttonClose: {
+ backgroundColor: Colors.WHITE,
+ width: width * 0.09,
+ height: width * 0.09,
+ borderRadius: width,
+ marginBottom: width * 0.03,
+ alignSelf: 'flex-end',
+ marginRight: width * 0.03,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ buttonCloseIcon: {
+ fontSize: RFValue(20),
+ color: Colors.TEXT,
+ },
+ errorImage: {
+ width: width * 0.3,
+ height: width * 0.3,
+ },
+ title: {
+ fontFamily: FONTS.poppins[600],
+ fontSize: RFValue(18),
+ color: Colors.TEXT,
+ marginTop: width * 0.02,
+ },
+ message: {
+ fontFamily: FONTS.poppins[400],
+ fontSize: RFValue(12),
+ color: Colors.TEXT,
+ marginTop: width * 0.04,
+ },
+});
diff --git a/src/components/Modal/ModalTermsAndConditions/index.js b/src/components/Modal/ModalTermsAndConditions/index.js
new file mode 100644
index 0000000..c7e563a
--- /dev/null
+++ b/src/components/Modal/ModalTermsAndConditions/index.js
@@ -0,0 +1,57 @@
+/* eslint-disable react-hooks/exhaustive-deps */
+import React, {useRef, useEffect, useState} from 'react';
+import {
+ View,
+ Text,
+ Image,
+ TouchableOpacity,
+ Dimensions,
+ ScrollView,
+} from 'react-native';
+import Modal from 'react-native-modal';
+import {Icon, Button} from 'components';
+import {Colors} from 'global-styles';
+import {useTranslation} from 'react-i18next';
+import styles from './styles';
+const {width, height} = Dimensions.get('window');
+
+const ModalTermsAndConditions = props => {
+ const {t} = useTranslation();
+ const {isVisible, onClose, message} = props;
+
+ return (
+
+
+
+
+
+
+
+
+ {t('term_and_condition_text')}
+
+
+
+
+ {t('term_and_condition_note')}
+
+
+
+
+
+
+ );
+};
+
+export default ModalTermsAndConditions;
diff --git a/src/components/Modal/ModalTermsAndConditions/styles.js b/src/components/Modal/ModalTermsAndConditions/styles.js
new file mode 100644
index 0000000..076a733
--- /dev/null
+++ b/src/components/Modal/ModalTermsAndConditions/styles.js
@@ -0,0 +1,53 @@
+import {StyleSheet, Dimensions, Platform} from 'react-native';
+import {RFValue} from 'react-native-responsive-fontsize';
+import {Colors, FONTS} from 'global-styles';
+const {width, height} = Dimensions.get('window');
+
+export default StyleSheet.create({
+ modal: {
+ margin: 0,
+ },
+ container: {
+ flex: 1,
+ margin: 0,
+ justifyContent: 'flex-end',
+ },
+ content: {
+ height: height,
+ backgroundColor: Colors.WHITE,
+ paddingVertical: width * 0.04,
+ },
+ header: {
+ height: width * 0.2,
+ paddingHorizontal: width * 0.04,
+ backgroundColor: Colors.WHITE,
+ borderBottomWidth: width * 0.002,
+ borderBottomColor: Colors.LINE_STROKE,
+ flexDirection: 'row',
+ alignItems: 'center',
+ paddingTop: width * 0.06,
+ elevation: 5,
+ },
+ headerTitle: {
+ fontFamily: FONTS.poppins[600],
+ fontSize: RFValue(13),
+ color: Colors.TEXT,
+ marginTop: width * 0.004,
+ paddingLeft: width * 0.03,
+ },
+ buttonCloseIcon: {
+ fontSize: RFValue(20),
+ color: Colors.TEXT,
+ },
+ body: {
+ flex: 1,
+ paddingHorizontal: width * 0.04,
+ paddingVertical: width * 0.03,
+ paddingBottom: width * 0.04,
+ },
+ note: {
+ fontFamily: FONTS.poppins[400],
+ fontSize: RFValue(11),
+ color: Colors.TEXT,
+ },
+});
diff --git a/src/components/index.js b/src/components/index.js
index 5730b9e..b3c7973 100644
--- a/src/components/index.js
+++ b/src/components/index.js
@@ -10,6 +10,8 @@ import Input from './Input';
import Note from './Note';
import ModalSetHours from './Modal/ModalSetHours';
import ProductRaw from './Product/ProductRaw';
+import ModalSuccess from './Modal/ModalSuccess';
+import ModalTermsAndConditions from './Modal/ModalTermsAndConditions';
export {
Container,
@@ -24,4 +26,6 @@ export {
Note,
ModalSetHours,
ProductRaw,
+ ModalSuccess,
+ ModalTermsAndConditions,
};
diff --git a/src/constants/translations/en/common.js b/src/constants/translations/en/common.js
index 903f23d..efaee0a 100644
--- a/src/constants/translations/en/common.js
+++ b/src/constants/translations/en/common.js
@@ -50,7 +50,7 @@ export default {
add_category_title: 'Add Category',
update_category_title: 'Change Category',
category_name_text: 'Category name',
- change_text: 'Change',
+ change_text: 'Update',
add_new_menu_title: 'Add Menus',
update_new_menu_title: 'Update Menus',
menu_photo_text: 'Menu photo',
@@ -62,4 +62,12 @@ export default {
name_food_placeholder: 'Ex: Chicken Teriyaki Rice Set',
description_food_placeholder: 'Ex: Chicken Katsu + Steam Rice + Salad + Katsu Sauce + Spicy Mayonnaise',
search_placeholder: 'Search . . .',
+ send_data_text: 'Send Data',
+ open_text: 'Open',
+ closed_text: 'Closed',
+ _24_hours_text: '24 Hours',
+ success_text: 'Succeed',
+ term_and_condition_text: 'Term and Conditions',
+ term_and_condition_note: 'Please read carefully, then press the tick icon as a sign that you understand and agree to the MealBox Terms and Conditions.',
+ verify_now_text: 'Verify Now',
};
diff --git a/src/constants/translations/id/common.js b/src/constants/translations/id/common.js
index e9c31cd..dda7415 100644
--- a/src/constants/translations/id/common.js
+++ b/src/constants/translations/id/common.js
@@ -62,4 +62,12 @@ export default {
name_food_placeholder: 'Cth: Chicken Teriyaki Rice Set',
description_food_placeholder: 'Cth: Chicken Katsu + Steam Rice + Salad + Katsu Sauce + Spicy Mayonnaise',
search_placeholder: 'Cari . . .',
+ send_data_text: 'Kirim Data',
+ open_text: 'Buka',
+ closed_text: 'Tutup',
+ _24_hours_text: '24 Jam',
+ success_text: 'Berhasil',
+ term_and_condition_text: 'Syarat dan Ketentuan',
+ term_and_condition_note: 'Mohon dibaca dengan seksama, lalu tekan icon centang sebagai tanda Anda telah memahami dan menyetujui Syarat dan Ketentuan MealBox.',
+ verify_now_text: 'Verifikasi Sekarang',
};
diff --git a/src/scenes/Register/BusinessProfileRegistration/BankAccount/index.js b/src/scenes/Register/BusinessProfileRegistration/BankAccount/index.js
index ef3c3c9..cef5c16 100644
--- a/src/scenes/Register/BusinessProfileRegistration/BankAccount/index.js
+++ b/src/scenes/Register/BusinessProfileRegistration/BankAccount/index.js
@@ -42,7 +42,7 @@ const BankAccount = ({navigation}) => {
label={t('account_number_text')}
/>
-