diff --git a/src/navigation/RootStack.tsx b/src/navigation/RootStack.tsx index 01ab646..0068ea8 100644 --- a/src/navigation/RootStack.tsx +++ b/src/navigation/RootStack.tsx @@ -14,12 +14,12 @@ import TermsAndConnditionsScreen from '../screens/termsAndConditions'; import NavigationRouteScreen from '../screens/navigationRoute'; import SetPasswordScreen from '../screens/setPassword'; import RegularPassportScreen from '../screens/regularPassport'; -import ExpressPassportScreen from '../screens/expressPassport'; import GuidebookScreen from '../screens/guidebook'; import EazyPassportScreen from '../screens/eazyPassport'; import ApplicationDetailScreen from '../screens/applicationDetail'; import PassportRequirementsScreen from '../screens/passportRequirements'; import ApplicationGuideScreen from '../screens/applicationGuide'; +import SeeRequirementsScreen from '../screens/seeRequirements'; const Stack = createNativeStackNavigator(); @@ -89,11 +89,6 @@ function RootStack() { component={RegularPassportScreen} options={{headerShown: false}} /> - + ); } diff --git a/src/navigation/type.ts b/src/navigation/type.ts index 170ecf1..1cee857 100644 --- a/src/navigation/type.ts +++ b/src/navigation/type.ts @@ -14,10 +14,10 @@ export type RootStackParamList = { CloseAccount: undefined; SetPassword: undefined; RegularPassport: undefined; - ExpressPassport: undefined; Guidebook: undefined; EazyPassport: undefined; ApplicationDetail: {data: PassportAppointmentData}; ApplicationGuide: undefined; PassportRequirements: undefined; + SeeRequirements: undefined; }; diff --git a/src/screens/applicationDetail/index.tsx b/src/screens/applicationDetail/index.tsx index e246223..107eca3 100644 --- a/src/screens/applicationDetail/index.tsx +++ b/src/screens/applicationDetail/index.tsx @@ -17,6 +17,7 @@ type ApplicationDetailScreenNavigationProp = NativeStackNavigationProp< const renderApplicantDetailContent = () => { const route = useRoute(); const {data} = route.params as {data: PassportAppointmentData}; + const navigation = useNavigation(); return ( @@ -96,7 +97,14 @@ const renderApplicantDetailContent = () => { mode="contained" style={styles.applicantDetailContentChildButton} onPress={() => {}}> - Lanjut Pembayaran + Download Surat Pengantar Menuju KANIM + + ) : data.status === 'Permohonan Kadaluarsa' ? ( @@ -125,7 +133,7 @@ const renderApplicantDetailContent = () => { mode="contained" style={styles.applicantDetailContentChildButton} onPress={() => {}}> - Lihat Persyaratan + Lanjut Pembayaran )} diff --git a/src/screens/applicationDetail/styles.tsx b/src/screens/applicationDetail/styles.tsx index 4664845..1761815 100644 --- a/src/screens/applicationDetail/styles.tsx +++ b/src/screens/applicationDetail/styles.tsx @@ -152,6 +152,10 @@ const styles = StyleSheet.create({ marginTop: 8, backgroundColor: Colors.primary30.color, }, + applicantDetailContentChildButtonOutlined: { + marginTop: 8, + borderColor: Colors.primary30.color, + }, }); export default styles; diff --git a/src/screens/expressPassport/index.tsx b/src/screens/expressPassport/index.tsx deleted file mode 100644 index 2dca1a6..0000000 --- a/src/screens/expressPassport/index.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; -import {Text, View} from 'react-native'; -import styles from './styles'; - -function ExpressPassportScreen() { - return ( - - Express Passport Screen - - ); -} - -export default ExpressPassportScreen; diff --git a/src/screens/expressPassport/styles.tsx b/src/screens/expressPassport/styles.tsx deleted file mode 100644 index 1f6a290..0000000 --- a/src/screens/expressPassport/styles.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import {StyleSheet} from 'react-native'; - -const styles = StyleSheet.create({ - container: { - flex: 1, - alignContent: 'center', - alignItems: 'center', - backgroundColor: 'white', - justifyContent: 'center', - }, -}); - -export default styles; diff --git a/src/screens/home/index.tsx b/src/screens/home/index.tsx index dde9a31..063b03b 100644 --- a/src/screens/home/index.tsx +++ b/src/screens/home/index.tsx @@ -148,7 +148,7 @@ const RenderContent = ({showDialog}: RenderContentProps) => { navigation.navigate('ExpressPassport')} + onPress={showDialog} style={({pressed}) => [ styles.serviceIcon, { diff --git a/src/screens/seeRequirements/index.tsx b/src/screens/seeRequirements/index.tsx new file mode 100644 index 0000000..e2015b3 --- /dev/null +++ b/src/screens/seeRequirements/index.tsx @@ -0,0 +1,116 @@ +import React from 'react'; +import {StatusBar, Text, View} from 'react-native'; +import styles from './styles'; +import {RootStackParamList} from '../../navigation/type'; +import {NativeStackNavigationProp} from '@react-navigation/native-stack'; +import {useNavigation} from '@react-navigation/native'; +import Colors from '../../../assets/styles/Colors'; +import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; + +type SeeRequirementsScreenNavigationProp = NativeStackNavigationProp< + RootStackParamList, + 'SeeRequirements' +>; + +function SeeRequirementsScreen() { + const navigation = useNavigation(); + + return ( + + + + navigation.goBack()} + /> + Persyaratan dan Ketentuan + + + + 1. + + Pemohon wajib hadir 15 menit sebelum jam kedatangan dimulai; + + + + 2. + + Membawa dokumen persyaratan permohonan paspor asli sesuai tujuan + permohonan paspor; + + + + 3. + + Permohonan penggantian paspor wajib membawa paspor lama; + + + + 4. + + Apabila anda tidak hadir sesuai jadwal kedatangan dan tidak + melakukan ubah jadwal, maka permohonan paspor anda dibatalkan dan + harus melakukan pendaftaran ulang; + + + + 5. + + Permohonan paspor dapat ditolak dalam hal: + + + + + a. + + Termasuk dalam daftar pencegahan dan penangkalan; + + + + b. + + Terindikasi Pekerja Migran Indonesia (PMI) Non Prosedural; + + + + c. + + Memberikan data tidak sah dan/atau keterangan tidak benar; + + + + d. + + Hal lain yang dianggap oleh petugas akan dipergunakan untuk tujuan + melawan hukum; + + + + + 6. + + Apabila terdapat kesalahan dari pihak pemohon paspor sebagaimana + ketentuan di atas, pembayaran yang telah disetorkan pada Kas Negara + tidak dapat dikembalikan; + + + + 7. + + Dengan membaca dan menyetujui persyaratan dan ketentuan ini, pemohon + telah siap dan mematuhi segala konsekuensi yang berakibat secara + hukum. + + + + + ); +} + +export default SeeRequirementsScreen; diff --git a/src/screens/seeRequirements/styles.tsx b/src/screens/seeRequirements/styles.tsx new file mode 100644 index 0000000..657f998 --- /dev/null +++ b/src/screens/seeRequirements/styles.tsx @@ -0,0 +1,49 @@ +import {StyleSheet} from 'react-native'; +import Colors from '../../../assets/styles/Colors'; +import FontFamily from '../../../assets/styles/FontFamily'; + +const styles = StyleSheet.create({ + container: { + flex: 1, + backgroundColor: Colors.neutral100.color, + }, + appBarTitle: { + color: Colors.secondary30.color, + ...FontFamily.notoSansRegular, + fontSize: 20, + marginStart: 16, + includeFontPadding: false, + }, + appBarIcon: { + marginLeft: 16, + }, + appBarContainer: { + height: 64, + flexDirection: 'row', + alignItems: 'center', + backgroundColor: Colors.neutral100.color, + }, + textContentContainer: { + marginTop: 4, + marginHorizontal: 16, + gap: 4, + }, + textContentWrapper: { + flexDirection: 'row', + gap: 6 + }, + textContentStyle: { + ...FontFamily.notoSansRegular, + includeFontPadding: false, + color: Colors.primary30.color, + fontSize: 12, + lineHeight: 20, + textAlign: 'justify', + }, + textContentAlphabetListContainer: { + marginStart: 16, + gap: 4, + } +}); + +export default styles;