Update the top back button style in the step flow
This commit is contained in:
9
package-lock.json
generated
9
package-lock.json
generated
@ -8,7 +8,7 @@
|
|||||||
"name": "mpaspor",
|
"name": "mpaspor",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@react-native-async-storage/async-storage": "^2.1.2",
|
"@react-native-async-storage/async-storage": "^2.2.0",
|
||||||
"@react-native-community/datetimepicker": "^8.3.0",
|
"@react-native-community/datetimepicker": "^8.3.0",
|
||||||
"@react-navigation/elements": "^2.3.8",
|
"@react-navigation/elements": "^2.3.8",
|
||||||
"@react-navigation/native": "^7.1.6",
|
"@react-navigation/native": "^7.1.6",
|
||||||
@ -2795,10 +2795,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@react-native-async-storage/async-storage": {
|
"node_modules/@react-native-async-storage/async-storage": {
|
||||||
"version": "2.1.2",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-2.2.0.tgz",
|
||||||
"integrity": "sha512-dvlNq4AlGWC+ehtH12p65+17V0Dx7IecOWl6WanF2ja38O1Dcjjvn7jVzkUHJ5oWkQBlyASurTPlTHgKXyYiow==",
|
"integrity": "sha512-gvRvjR5JAaUZF8tv2Kcq/Gbt3JHwbKFYfmb445rhOj6NUMx3qPLixmDx5pZAyb9at1bYvJ4/eTUipU5aki45xw==",
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"merge-options": "^3.0.4"
|
"merge-options": "^3.0.4"
|
||||||
},
|
},
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
"test": "jest"
|
"test": "jest"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@react-native-async-storage/async-storage": "^2.1.2",
|
"@react-native-async-storage/async-storage": "^2.2.0",
|
||||||
"@react-native-community/datetimepicker": "^8.3.0",
|
"@react-native-community/datetimepicker": "^8.3.0",
|
||||||
"@react-navigation/elements": "^2.3.8",
|
"@react-navigation/elements": "^2.3.8",
|
||||||
"@react-navigation/native": "^7.1.6",
|
"@react-navigation/native": "^7.1.6",
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {View, Pressable, Text} from 'react-native';
|
import {View, Pressable, Text} from 'react-native';
|
||||||
import Icon from 'react-native-vector-icons/Feather';
|
|
||||||
import styles from '../styles';
|
import styles from '../styles';
|
||||||
import RadioButtonOptionComponent from '../../../../components/RadioButtonOption';
|
import RadioButtonOptionComponent from '../../../../components/RadioButtonOption';
|
||||||
import hasHadPassportBeforeOptions from '../../../../data/Options/HasHadPassportBeforeOptions';
|
import hasHadPassportBeforeOptions from '../../../../data/Options/HasHadPassportBeforeOptions';
|
||||||
|
import {Button} from 'react-native-paper';
|
||||||
|
import Colors from '../../../../../assets/styles/Colors';
|
||||||
|
|
||||||
type Step2PassportApplicationQuestionnaireSubStep1Props = {
|
type Step2PassportApplicationQuestionnaireSubStep1Props = {
|
||||||
setStep: (step: number) => void;
|
setStep: (step: number) => void;
|
||||||
@ -23,18 +24,20 @@ const Step2PassportApplicationQuestionnaireSubStep1 = ({
|
|||||||
return (
|
return (
|
||||||
<View style={styles.subStepContainer}>
|
<View style={styles.subStepContainer}>
|
||||||
<Pressable
|
<Pressable
|
||||||
|
style={({pressed}) => ({
|
||||||
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
|
})}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
setStep(1);
|
setStep(1);
|
||||||
setSubStep(3);
|
setSubStep(3);
|
||||||
}}
|
}}>
|
||||||
style={({pressed}) => [
|
<Button
|
||||||
styles.subStepButtonBackWrapper,
|
mode="contained"
|
||||||
{
|
icon="chevron-left"
|
||||||
transform: [{scale: pressed ? 0.99 : 1}],
|
textColor={Colors.neutral100.color}
|
||||||
},
|
style={styles.subStepButtonBackContainer}>
|
||||||
]}>
|
Kembali
|
||||||
<Icon name="chevron-left" size={24} />
|
</Button>
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
||||||
<View style={styles.subStepQuestionnaireOptionContainer}>
|
<View style={styles.subStepQuestionnaireOptionContainer}>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {ScrollView, View, Text, Pressable} from 'react-native';
|
import {ScrollView, View, Text, Pressable} from 'react-native';
|
||||||
import Icon from 'react-native-vector-icons/Feather';
|
|
||||||
import {Button} from 'react-native-paper';
|
import {Button} from 'react-native-paper';
|
||||||
import styles from '../styles';
|
import styles from '../styles';
|
||||||
import TextInputComponent from '../../../../components/TextInput';
|
import TextInputComponent from '../../../../components/TextInput';
|
||||||
@ -21,20 +20,21 @@ const Step2PassportApplicationQuestionnaireSubStep10 = (
|
|||||||
<ScrollView>
|
<ScrollView>
|
||||||
<View style={styles.subStepContainer}>
|
<View style={styles.subStepContainer}>
|
||||||
<Pressable
|
<Pressable
|
||||||
|
style={({pressed}) => ({
|
||||||
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
|
})}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
selectedDestinationCountryOption === 'destination_country_not_set'
|
selectedDestinationCountryOption === 'destination_country_not_set'
|
||||||
? setSubStep(7)
|
? setSubStep(7)
|
||||||
: setSubStep(9);
|
: setSubStep(9);
|
||||||
}}
|
}}>
|
||||||
style={({pressed}) => [
|
<Button
|
||||||
styles.subStepButtonBackWrapper,
|
mode="contained"
|
||||||
{
|
icon="chevron-left"
|
||||||
transform: [{scale: pressed ? 0.99 : 1}],
|
textColor={Colors.neutral100.color}
|
||||||
marginBottom: 8,
|
style={styles.subStepButtonBackContainer}>
|
||||||
},
|
Kembali
|
||||||
]}>
|
</Button>
|
||||||
<Icon name="chevron-left" size={24} />
|
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
||||||
<View style={styles.subStepQuestionnaireOptionContainer}>
|
<View style={styles.subStepQuestionnaireOptionContainer}>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {ScrollView, View, Text, Pressable} from 'react-native';
|
import {ScrollView, View, Text, Pressable} from 'react-native';
|
||||||
import Icon from 'react-native-vector-icons/Feather';
|
|
||||||
import {Button} from 'react-native-paper';
|
import {Button} from 'react-native-paper';
|
||||||
import styles from '../styles';
|
import styles from '../styles';
|
||||||
import FontFamily from '../../../../../assets/styles/FontFamily';
|
import FontFamily from '../../../../../assets/styles/FontFamily';
|
||||||
@ -27,16 +26,17 @@ const Step2PassportApplicationQuestionnaireSubStep11 = ({
|
|||||||
<ScrollView>
|
<ScrollView>
|
||||||
<View style={styles.subStepContainer}>
|
<View style={styles.subStepContainer}>
|
||||||
<Pressable
|
<Pressable
|
||||||
onPress={() => setSubStep(10)}
|
style={({pressed}) => ({
|
||||||
style={({pressed}) => [
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
styles.subStepButtonBackWrapper,
|
})}
|
||||||
{
|
onPress={() => setSubStep(10)}>
|
||||||
transform: [{scale: pressed ? 0.99 : 1}],
|
<Button
|
||||||
marginBottom: 8,
|
mode="contained"
|
||||||
},
|
icon="chevron-left"
|
||||||
]}>
|
textColor={Colors.neutral100.color}
|
||||||
<Icon name="chevron-left" size={24} />
|
style={styles.subStepButtonBackContainer}>
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
Kembali
|
||||||
|
</Button>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
||||||
<View style={styles.subStepQuestionnaireOptionContainer}>
|
<View style={styles.subStepQuestionnaireOptionContainer}>
|
||||||
|
@ -26,15 +26,19 @@ const Step2PassportApplicationQuestionnaireSubStep2 = ({
|
|||||||
<ScrollView>
|
<ScrollView>
|
||||||
<View style={styles.subStepContainer}>
|
<View style={styles.subStepContainer}>
|
||||||
<Pressable
|
<Pressable
|
||||||
|
style={({pressed}) => ({
|
||||||
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
|
})}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
setSubStep(1);
|
setSubStep(1);
|
||||||
}}
|
}}>
|
||||||
style={({pressed}) => [
|
<Button
|
||||||
styles.subStepButtonBackWrapper,
|
mode="contained"
|
||||||
{transform: [{scale: pressed ? 0.99 : 1}]},
|
icon="chevron-left"
|
||||||
]}>
|
textColor={Colors.neutral100.color}
|
||||||
<Icon name="chevron-left" size={24} />
|
style={styles.subStepButtonBackContainer}>
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
Kembali
|
||||||
|
</Button>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
||||||
<View style={styles.subStepQuestionnaireOptionContainer}>
|
<View style={styles.subStepQuestionnaireOptionContainer}>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {ScrollView, View, Pressable, Text} from 'react-native';
|
import {ScrollView, View, Pressable, Text} from 'react-native';
|
||||||
import Icon from 'react-native-vector-icons/Feather';
|
|
||||||
import {Button} from 'react-native-paper';
|
import {Button} from 'react-native-paper';
|
||||||
import styles from '../styles';
|
import styles from '../styles';
|
||||||
import Colors from '../../../../../assets/styles/Colors';
|
import Colors from '../../../../../assets/styles/Colors';
|
||||||
@ -16,18 +15,19 @@ const Step2PassportApplicationQuestionnaireSubStep3 = ({
|
|||||||
<ScrollView>
|
<ScrollView>
|
||||||
<View style={styles.subStepContainer}>
|
<View style={styles.subStepContainer}>
|
||||||
<Pressable
|
<Pressable
|
||||||
|
style={({pressed}) => ({
|
||||||
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
|
})}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
setSubStep(2);
|
setSubStep(2);
|
||||||
}}
|
}}>
|
||||||
style={({pressed}) => [
|
<Button
|
||||||
styles.subStepButtonBackWrapper,
|
mode="contained"
|
||||||
{
|
icon="chevron-left"
|
||||||
transform: [{scale: pressed ? 0.99 : 1}],
|
textColor={Colors.neutral100.color}
|
||||||
marginBottom: 8,
|
style={styles.subStepButtonBackContainer}>
|
||||||
},
|
Kembali
|
||||||
]}>
|
</Button>
|
||||||
<Icon name="chevron-left" size={24} />
|
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
||||||
<View style={styles.subStepTextWrapper}>
|
<View style={styles.subStepTextWrapper}>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {ScrollView, View, Pressable, Text} from 'react-native';
|
import {ScrollView, View, Pressable, Text} from 'react-native';
|
||||||
import Icon from 'react-native-vector-icons/Feather';
|
|
||||||
import {Button} from 'react-native-paper';
|
import {Button} from 'react-native-paper';
|
||||||
import styles from '../styles';
|
import styles from '../styles';
|
||||||
import Colors from '../../../../../assets/styles/Colors';
|
import Colors from '../../../../../assets/styles/Colors';
|
||||||
@ -16,16 +15,19 @@ const Step2PassportApplicationQuestionnaireSubStep4 = ({
|
|||||||
<ScrollView>
|
<ScrollView>
|
||||||
<View style={styles.subStepContainer}>
|
<View style={styles.subStepContainer}>
|
||||||
<Pressable
|
<Pressable
|
||||||
onPress={() => setSubStep(3)}
|
style={({pressed}) => ({
|
||||||
style={({pressed}) => [
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
styles.subStepButtonBackWrapper,
|
})}
|
||||||
{
|
onPress={() => {
|
||||||
transform: [{scale: pressed ? 0.99 : 1}],
|
setSubStep(3);
|
||||||
marginBottom: 8,
|
}}>
|
||||||
},
|
<Button
|
||||||
]}>
|
mode="contained"
|
||||||
<Icon name="chevron-left" size={24} />
|
icon="chevron-left"
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
textColor={Colors.neutral100.color}
|
||||||
|
style={styles.subStepButtonBackContainer}>
|
||||||
|
Kembali
|
||||||
|
</Button>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
||||||
<View style={styles.subStepTextWrapper}>
|
<View style={styles.subStepTextWrapper}>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {ScrollView, View, Text, Pressable} from 'react-native';
|
import {ScrollView, View, Text, Pressable} from 'react-native';
|
||||||
import Icon from 'react-native-vector-icons/Feather';
|
|
||||||
import {Button} from 'react-native-paper';
|
import {Button} from 'react-native-paper';
|
||||||
import styles from '../styles';
|
import styles from '../styles';
|
||||||
import TextInputComponent from '../../../../components/TextInput';
|
import TextInputComponent from '../../../../components/TextInput';
|
||||||
@ -17,15 +16,19 @@ const Step2PassportApplicationQuestionnaireSubStep5 = ({
|
|||||||
<ScrollView>
|
<ScrollView>
|
||||||
<View style={styles.subStepContainer}>
|
<View style={styles.subStepContainer}>
|
||||||
<Pressable
|
<Pressable
|
||||||
onPress={() => setSubStep(4)}
|
style={({pressed}) => ({
|
||||||
style={({pressed}) => [
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
styles.subStepButtonBackWrapper,
|
})}
|
||||||
{
|
onPress={() => {
|
||||||
transform: [{scale: pressed ? 0.99 : 1}],
|
setSubStep(4);
|
||||||
},
|
}}>
|
||||||
]}>
|
<Button
|
||||||
<Icon name="chevron-left" size={24} />
|
mode="contained"
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
icon="chevron-left"
|
||||||
|
textColor={Colors.neutral100.color}
|
||||||
|
style={styles.subStepButtonBackContainer}>
|
||||||
|
Kembali
|
||||||
|
</Button>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
||||||
<View style={styles.subStepQuestionnaireOptionContainer}>
|
<View style={styles.subStepQuestionnaireOptionContainer}>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {ScrollView, View, Text, Pressable} from 'react-native';
|
import {ScrollView, View, Text, Pressable} from 'react-native';
|
||||||
import Icon from 'react-native-vector-icons/Feather';
|
|
||||||
import {Button} from 'react-native-paper';
|
import {Button} from 'react-native-paper';
|
||||||
import passportApplicationPurposeOptions from '../../../../data/Options/PassportApplicationPurposeOptions';
|
import passportApplicationPurposeOptions from '../../../../data/Options/PassportApplicationPurposeOptions';
|
||||||
import styles from '../styles';
|
import styles from '../styles';
|
||||||
@ -27,19 +26,21 @@ const Step2PassportApplicationQuestionnaireSubStep6 = (
|
|||||||
<ScrollView>
|
<ScrollView>
|
||||||
<View style={styles.subStepContainer}>
|
<View style={styles.subStepContainer}>
|
||||||
<Pressable
|
<Pressable
|
||||||
|
style={({pressed}) => ({
|
||||||
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
|
})}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
selectedPassportOption === 'already'
|
selectedPassportOption === 'already'
|
||||||
? setSubStep(5)
|
? setSubStep(5)
|
||||||
: setSubStep(1);
|
: setSubStep(1);
|
||||||
}}
|
}}>
|
||||||
style={({pressed}) => [
|
<Button
|
||||||
styles.subStepButtonBackWrapper,
|
mode="contained"
|
||||||
{
|
icon="chevron-left"
|
||||||
transform: [{scale: pressed ? 0.99 : 1}],
|
textColor={Colors.neutral100.color}
|
||||||
},
|
style={styles.subStepButtonBackContainer}>
|
||||||
]}>
|
Kembali
|
||||||
<Icon name="chevron-left" size={24} />
|
</Button>
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
||||||
<View style={styles.subStepQuestionnaireOptionContainer}>
|
<View style={styles.subStepQuestionnaireOptionContainer}>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import React, {useState} from 'react';
|
import React, {useState} from 'react';
|
||||||
import {ScrollView, View, Text, Pressable} from 'react-native';
|
import {ScrollView, View, Pressable} from 'react-native';
|
||||||
import Icon from 'react-native-vector-icons/Feather';
|
|
||||||
import {Button} from 'react-native-paper';
|
import {Button} from 'react-native-paper';
|
||||||
import styles from '../styles';
|
import styles from '../styles';
|
||||||
import TextInputComponent from '../../../../components/TextInput';
|
import TextInputComponent from '../../../../components/TextInput';
|
||||||
@ -23,22 +22,22 @@ const Step2PassportApplicationQuestionnaireSubStep7 = ({
|
|||||||
const [countryValue, setCountryValue] = useState<string | null>(null);
|
const [countryValue, setCountryValue] = useState<string | null>(null);
|
||||||
|
|
||||||
const handleCountrySelect = (value: string | null) => {
|
const handleCountrySelect = (value: string | null) => {
|
||||||
setCountryValue(value);
|
setCountryValue(value);
|
||||||
setSelectedDestinationCountryOption('');
|
setSelectedDestinationCountryOption('');
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleRadioSelect = (value: string) => {
|
const handleRadioSelect = (value: string) => {
|
||||||
if (value === 'destination_country_not_set') {
|
if (value === 'destination_country_not_set') {
|
||||||
setSelectedDestinationCountryOption(value);
|
setSelectedDestinationCountryOption(value);
|
||||||
setCountryValue(null);
|
setCountryValue(null);
|
||||||
} else {
|
} else {
|
||||||
setSelectedDestinationCountryOption(value);
|
setSelectedDestinationCountryOption(value);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const isRadioButtonSelected = (value: string) => {
|
const isRadioButtonSelected = (value: string) => {
|
||||||
if (countryValue !== null) {
|
if (countryValue !== null) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
return selectedDestinationCountryOption === value ? value : '';
|
return selectedDestinationCountryOption === value ? value : '';
|
||||||
};
|
};
|
||||||
@ -47,18 +46,20 @@ const Step2PassportApplicationQuestionnaireSubStep7 = ({
|
|||||||
<ScrollView>
|
<ScrollView>
|
||||||
<View style={styles.subStepContainer}>
|
<View style={styles.subStepContainer}>
|
||||||
<Pressable
|
<Pressable
|
||||||
|
style={({pressed}) => ({
|
||||||
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
|
})}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
setSubStep(6);
|
setSubStep(6);
|
||||||
setSelectedDestinationCountryOption('');
|
setSelectedDestinationCountryOption('');
|
||||||
}}
|
}}>
|
||||||
style={({pressed}) => [
|
<Button
|
||||||
styles.subStepButtonBackWrapper,
|
mode="contained"
|
||||||
{
|
icon="chevron-left"
|
||||||
transform: [{scale: pressed ? 0.99 : 1}],
|
textColor={Colors.neutral100.color}
|
||||||
},
|
style={styles.subStepButtonBackContainer}>
|
||||||
]}>
|
Kembali
|
||||||
<Icon name="chevron-left" size={24} />
|
</Button>
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
||||||
<View style={styles.subStepQuestionnaireOptionContainer}>
|
<View style={styles.subStepQuestionnaireOptionContainer}>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {ScrollView, View, Text, Pressable} from 'react-native';
|
import {ScrollView, View, Pressable} from 'react-native';
|
||||||
import Icon from 'react-native-vector-icons/Feather';
|
|
||||||
import {Button} from 'react-native-paper';
|
import {Button} from 'react-native-paper';
|
||||||
import styles from '../styles';
|
import styles from '../styles';
|
||||||
import TextInputComponent from '../../../../components/TextInput';
|
import TextInputComponent from '../../../../components/TextInput';
|
||||||
@ -17,15 +16,17 @@ const Step2PassportApplicationQuestionnaireSubStep8 = ({
|
|||||||
<ScrollView>
|
<ScrollView>
|
||||||
<View style={styles.subStepContainer}>
|
<View style={styles.subStepContainer}>
|
||||||
<Pressable
|
<Pressable
|
||||||
onPress={() => setSubStep(7)}
|
style={({pressed}) => ({
|
||||||
style={({pressed}) => [
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
styles.subStepButtonBackWrapper,
|
})}
|
||||||
{
|
onPress={() => setSubStep(7)}>
|
||||||
transform: [{scale: pressed ? 0.99 : 1}],
|
<Button
|
||||||
},
|
mode="contained"
|
||||||
]}>
|
icon="chevron-left"
|
||||||
<Icon name="chevron-left" size={24} />
|
textColor={Colors.neutral100.color}
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
style={styles.subStepButtonBackContainer}>
|
||||||
|
Kembali
|
||||||
|
</Button>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
||||||
<View style={styles.subStepQuestionnaireOptionContainer}>
|
<View style={styles.subStepQuestionnaireOptionContainer}>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {ScrollView, View, Text, Pressable} from 'react-native';
|
import {ScrollView, View, Text, Pressable} from 'react-native';
|
||||||
import Icon from 'react-native-vector-icons/Feather';
|
|
||||||
import {Button} from 'react-native-paper';
|
import {Button} from 'react-native-paper';
|
||||||
import styles from '../styles';
|
import styles from '../styles';
|
||||||
import durationAbroadOptions from '../../../../data/Options/DurationAbroadOptions';
|
import durationAbroadOptions from '../../../../data/Options/DurationAbroadOptions';
|
||||||
@ -22,15 +21,17 @@ const Step2PassportApplicationQuestionnaireSubStep9 = ({
|
|||||||
<ScrollView>
|
<ScrollView>
|
||||||
<View style={styles.subStepContainer}>
|
<View style={styles.subStepContainer}>
|
||||||
<Pressable
|
<Pressable
|
||||||
onPress={() => setSubStep(8)}
|
style={({pressed}) => ({
|
||||||
style={({pressed}) => [
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
styles.subStepButtonBackWrapper,
|
})}
|
||||||
{
|
onPress={() => setSubStep(8)}>
|
||||||
transform: [{scale: pressed ? 0.99 : 1}],
|
<Button
|
||||||
},
|
mode="contained"
|
||||||
]}>
|
icon="chevron-left"
|
||||||
<Icon name="chevron-left" size={24} />
|
textColor={Colors.neutral100.color}
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
style={styles.subStepButtonBackContainer}>
|
||||||
|
Kembali
|
||||||
|
</Button>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
||||||
<View style={styles.subStepQuestionnaireOptionContainer}>
|
<View style={styles.subStepQuestionnaireOptionContainer}>
|
||||||
|
@ -31,16 +31,17 @@ const BackButton = (props: BackButtonProps) => {
|
|||||||
const {onPress} = props;
|
const {onPress} = props;
|
||||||
return (
|
return (
|
||||||
<Pressable
|
<Pressable
|
||||||
onPress={onPress}
|
style={({pressed}) => ({
|
||||||
style={({pressed}) => [
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
styles.subStepButtonBackWrapper,
|
})}
|
||||||
{
|
onPress={onPress}>
|
||||||
transform: [{scale: pressed ? 0.99 : 1}],
|
<Button
|
||||||
marginBottom: 8,
|
mode="contained"
|
||||||
},
|
icon="chevron-left"
|
||||||
]}>
|
textColor={Colors.neutral100.color}
|
||||||
<Icon name="chevron-left" size={24} />
|
style={styles.subStepButtonBackContainer}>
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
Kembali
|
||||||
|
</Button>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@ -155,7 +156,7 @@ const Step3UploadDocuments = (props: Step3UploadDocumentsProps) => {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<View style={{marginBottom: 16, gap: 4}}>
|
<View style={{marginTop: 12, marginBottom: 16, gap: 4}}>
|
||||||
<Text style={styles.subStepDesc}>
|
<Text style={styles.subStepDesc}>
|
||||||
Layanan yang cocok untuk Anda adalah{' '}
|
Layanan yang cocok untuk Anda adalah{' '}
|
||||||
{selectedPassportOption !== 'already' ? (
|
{selectedPassportOption !== 'already' ? (
|
||||||
@ -258,7 +259,8 @@ const Step3UploadDocuments = (props: Step3UploadDocumentsProps) => {
|
|||||||
<Button
|
<Button
|
||||||
mode="contained"
|
mode="contained"
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
setStep(4), setSubStep(1);
|
setStep(4);
|
||||||
|
setSubStep(1);
|
||||||
}}
|
}}
|
||||||
style={styles.subStepButtonContained}
|
style={styles.subStepButtonContained}
|
||||||
textColor={Colors.neutral100.color}>
|
textColor={Colors.neutral100.color}>
|
||||||
|
@ -24,15 +24,20 @@ const Step4ApplicantAdditionalDataSubStep1: React.FC<
|
|||||||
<ScrollView>
|
<ScrollView>
|
||||||
<View style={styles.subStepContainer}>
|
<View style={styles.subStepContainer}>
|
||||||
<Pressable
|
<Pressable
|
||||||
|
style={({pressed}) => ({
|
||||||
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
|
marginBottom: 12,
|
||||||
|
})}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
setStep(3);
|
setStep(3);
|
||||||
}}
|
}}>
|
||||||
style={({pressed}) => [
|
<Button
|
||||||
styles.subStepButtonBackWrapper,
|
mode="contained"
|
||||||
{transform: [{scale: pressed ? 0.99 : 1}], marginBottom: 8},
|
icon="chevron-left"
|
||||||
]}>
|
textColor={Colors.neutral100.color}
|
||||||
<Icon name="chevron-left" size={24} />
|
style={styles.subStepButtonBackContainer}>
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
Kembali
|
||||||
|
</Button>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
|
|
||||||
<Text style={styles.subStepDesc}>
|
<Text style={styles.subStepDesc}>
|
||||||
|
@ -8,10 +8,7 @@ import Colors from '../../../../../assets/styles/Colors';
|
|||||||
import jobData from '../../../../data/DropdownData/JobData';
|
import jobData from '../../../../data/DropdownData/JobData';
|
||||||
import nationalityData from '../../../../data/DropdownData/NationalityData';
|
import nationalityData from '../../../../data/DropdownData/NationalityData';
|
||||||
import {PassportAppointment} from '../../../../navigation/type';
|
import {PassportAppointment} from '../../../../navigation/type';
|
||||||
import {
|
import {addData, getData} from '../../../../helper/asyncStorageHelper';
|
||||||
addData,
|
|
||||||
getData,
|
|
||||||
} from '../../../../helper/asyncStorageHelper';
|
|
||||||
|
|
||||||
const Step4ApplicantAdditionalDataSubStep2 = ({
|
const Step4ApplicantAdditionalDataSubStep2 = ({
|
||||||
setStep,
|
setStep,
|
||||||
@ -24,19 +21,21 @@ const Step4ApplicantAdditionalDataSubStep2 = ({
|
|||||||
<ScrollView>
|
<ScrollView>
|
||||||
<View style={styles.subStepContainer}>
|
<View style={styles.subStepContainer}>
|
||||||
<Pressable
|
<Pressable
|
||||||
|
style={({pressed}) => ({
|
||||||
|
transform: [{scale: pressed ? 0.99 : 1}],
|
||||||
|
marginBottom: 12,
|
||||||
|
})}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
setStep(4);
|
setStep(4);
|
||||||
setSubStep(1);
|
setSubStep(1);
|
||||||
}}
|
}}>
|
||||||
style={({pressed}) => [
|
<Button
|
||||||
styles.subStepButtonBackWrapper,
|
mode="contained"
|
||||||
{
|
icon="chevron-left"
|
||||||
transform: [{scale: pressed ? 0.99 : 1}],
|
textColor={Colors.neutral100.color}
|
||||||
marginBottom: 8,
|
style={styles.subStepButtonBackContainer}>
|
||||||
},
|
Kembali
|
||||||
]}>
|
</Button>
|
||||||
<Icon name="chevron-left" size={24} />
|
|
||||||
<Text style={styles.subStepButtonBackText}>Kembali</Text>
|
|
||||||
</Pressable>
|
</Pressable>
|
||||||
<Text style={styles.subStepDesc}>
|
<Text style={styles.subStepDesc}>
|
||||||
Data di bawah ini harus sesuai dengan keterangan pada KTP pemohon.
|
Data di bawah ini harus sesuai dengan keterangan pada KTP pemohon.
|
||||||
|
@ -10,16 +10,13 @@ import {PassportAppointment} from '../../../../navigation/type';
|
|||||||
type Step5ApplicationTypeAndApplicantDataProps = {
|
type Step5ApplicationTypeAndApplicantDataProps = {
|
||||||
setStep: (step: number) => void;
|
setStep: (step: number) => void;
|
||||||
setSubStep: (subStep: number) => void;
|
setSubStep: (subStep: number) => void;
|
||||||
passportAppointmentData: any[];
|
|
||||||
showEditDataSheet: () => void;
|
showEditDataSheet: () => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
const Step5Content = (props: Step5ApplicationTypeAndApplicantDataProps) => {
|
const Step5Content = (props: Step5ApplicationTypeAndApplicantDataProps) => {
|
||||||
const {setStep, setSubStep, passportAppointmentData, showEditDataSheet} =
|
const {setStep, setSubStep, showEditDataSheet} = props;
|
||||||
props;
|
|
||||||
|
|
||||||
const [lastAppointment, setLastAppointment] =
|
const [lastAppointment, setLastAppointment] = useState<PassportAppointment>();
|
||||||
useState<PassportAppointment>();
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchData = async () => {
|
const fetchData = async () => {
|
||||||
@ -127,7 +124,13 @@ const Step5Content = (props: Step5ApplicationTypeAndApplicantDataProps) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const DetailRow = ({label, value}: {label: string; value: string | undefined}) => (
|
const DetailRow = ({
|
||||||
|
label,
|
||||||
|
value,
|
||||||
|
}: {
|
||||||
|
label: string;
|
||||||
|
value: string | undefined;
|
||||||
|
}) => (
|
||||||
<View style={styles.applicantDetailTextContentWrapper}>
|
<View style={styles.applicantDetailTextContentWrapper}>
|
||||||
<Text style={styles.applicantDetailTextTitle}>{label}</Text>
|
<Text style={styles.applicantDetailTextTitle}>{label}</Text>
|
||||||
<Text style={styles.applicantDetailTextDesc}>{value}</Text>
|
<Text style={styles.applicantDetailTextDesc}>{value}</Text>
|
||||||
|
@ -48,6 +48,10 @@ const styles = StyleSheet.create({
|
|||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
gap: 4,
|
gap: 4,
|
||||||
},
|
},
|
||||||
|
subStepButtonBackContainer: {
|
||||||
|
alignSelf: 'flex-start',
|
||||||
|
backgroundColor: Colors.primary30.color,
|
||||||
|
},
|
||||||
subStepButtonBackText: {
|
subStepButtonBackText: {
|
||||||
...FontFamily.notoSansRegular,
|
...FontFamily.notoSansRegular,
|
||||||
includeFontPadding: false,
|
includeFontPadding: false,
|
||||||
|
Reference in New Issue
Block a user