diff --git a/android/gradlew b/android/gradlew old mode 100644 new mode 100755 diff --git a/package-lock.json b/package-lock.json index 409e370..5969817 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10636,6 +10636,7 @@ "version": "15.11.2", "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.11.2.tgz", "integrity": "sha512-+YfF72IbWQUKzCIydlijV1fLuBsQNGMT6Da2kFlo1sh+LE3BIm/2Q7AR1zAAR6L0BFLi1WaQPLfFUC9bNZpOmw==", + "license": "MIT", "dependencies": { "css-select": "^5.1.0", "css-tree": "^1.1.3", diff --git a/src/data/History/PassportAppointmentData.tsx b/src/data/History/PassportAppointmentData.tsx index bcddc1d..a8372ea 100644 --- a/src/data/History/PassportAppointmentData.tsx +++ b/src/data/History/PassportAppointmentData.tsx @@ -13,7 +13,7 @@ const passportAppointmentData = [ nationalIdNumber: '3271234560009120001', gender: 'Wanita', applicationType: 'Baru', - replacementReason: '', + replacementReason: 'Sekolah di Luar Negeri', applicationPurpose: 'Ibadah Umrah', passportType: 'PASPOR BIASA NON ELEKTRONIK', fee: '350.000', @@ -53,7 +53,7 @@ const passportAppointmentData = [ nationalIdNumber: '3271234560009120003', gender: 'Wanita', applicationType: 'Baru', - replacementReason: '', + replacementReason: 'Sekolah di Luar Negeri', applicationPurpose: 'Wisata/Liburan', passportType: 'PASPOR BIASA NON ELEKTRONIK', fee: '350.000', @@ -113,7 +113,7 @@ const passportAppointmentData = [ nationalIdNumber: '3271234560009120006', gender: 'Pria', applicationType: 'Baru', - replacementReason: '', + replacementReason: 'Hilang', applicationPurpose: 'Tugas Kantor', passportType: 'PASPOR BIASA NON ELEKTRONIK', fee: '350.000', diff --git a/src/screens/applicationDetail/index.tsx b/src/screens/applicationDetail/index.tsx index 506ee2a..b01a254 100644 --- a/src/screens/applicationDetail/index.tsx +++ b/src/screens/applicationDetail/index.tsx @@ -7,13 +7,132 @@ import Colors from '../../../assets/styles/Colors'; import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; import {NativeStackNavigationProp} from '@react-navigation/native-stack'; import {RootStackParamList} from '../../navigation/type'; -import {Divider} from 'react-native-paper'; +import {Button, Divider} from 'react-native-paper'; type ApplicationDetailScreenNavigationProp = NativeStackNavigationProp< RootStackParamList, 'ApplicationDetail' >; +const renderApplicantDetailContent = () => { + const route = useRoute(); + const {data} = route.params as {data: PassportAppointmentData}; + + return ( + + + Pemohon + + {data.applicantName} + + + + Kode Permohonan + + {data.applicantCode} + + + + + NIK + + {data.applicationDetails.nationalIdNumber} + + + + Jenis Kelamin + + {data.applicationDetails.gender} + + + + Jenis Permohonan + + {data.applicationDetails.applicationType} + + + + + Alasan Penggantian + + + {data.applicationDetails.replacementReason} + + + + Tujuan Permohonan + + {data.applicationDetails.applicationPurpose} + + + + Jenis Paspor + + {data.applicationDetails.applicationType} + + + + + {data.status === 'Sudah Terbayar' ? ( + <> + + Biaya + + + {data.applicationDetails.fee} + + + + + + + ) : data.status === 'Permohonan Kadaluarsa' ? ( + + Biaya + + {data.applicationDetails.fee} + + + ) : ( + <> + + Biaya + + + {data.applicationDetails.fee} + + + + + + + )} + + ); +}; + const renderStatusContent = (status: string) => { const statusConfig: { [key: string]: { @@ -128,7 +247,20 @@ function ApplicationDetailScreen() { + + + Tanggal Pengajuan + + {data.submissionDate} + + + + Kode Layanan + {data.serviceCode} + + + {renderApplicantDetailContent()} ); diff --git a/src/screens/applicationDetail/styles.tsx b/src/screens/applicationDetail/styles.tsx index fdd2ddf..281a8aa 100644 --- a/src/screens/applicationDetail/styles.tsx +++ b/src/screens/applicationDetail/styles.tsx @@ -31,7 +31,7 @@ const styles = StyleSheet.create({ alignItems: 'center', gap: 12, paddingVertical: 16, - paddingHorizontal: 24, + paddingHorizontal: 16, borderRadius: 8, }, statusContentContainer: { @@ -60,12 +60,12 @@ const styles = StyleSheet.create({ midTextTitle: { ...FontFamily.notoSansExtraBold, fontSize: 18, - marginVertical: 12, + marginTop: 16, color: Colors.primary30.color, }, midIconContainer: { gap: 8, - marginVertical: 8, + marginVertical: 12, }, midIconContentWrapper: { flexDirection: 'row', @@ -77,6 +77,80 @@ const styles = StyleSheet.create({ color: Colors.primary30.color, flex: 1, }, + midTextContentWrapper: { + flexDirection: 'row', + justifyContent: 'space-between', + }, + midTextContentContainer: { + marginTop: 12, + gap: 12, + }, + midTextContentTitle: { + fontSize: 12, + ...FontFamily.notoSansRegular, + includeFontPadding: false, + color: Colors.primary30.color, + }, + midTextContentData: { + fontSize: 12, + ...FontFamily.notoSansSemiBold, + includeFontPadding: false, + color: Colors.primary30.color, + }, + applicantDetailContentContainer: { + borderRadius: 16, + backgroundColor: Colors.neutral100.color, + borderWidth: 1, + borderColor: Colors.primary70.color, + margin: 12, + padding: 16, + gap: 8, + }, + applicantDetailTextContentWrapper: { + flexDirection: 'row', + justifyContent: 'space-between', + gap: 8, + }, + applicantDetailTextTitle: { + fontSize: 12, + ...FontFamily.notoSansRegular, + includeFontPadding: false, + color: Colors.primary30.color, + flex: 1, + }, + applicantDetailTextDesc: { + fontSize: 12, + ...FontFamily.notoSansBold, + includeFontPadding: false, + color: Colors.primary30.color, + flex: 1.2, + }, + applicantDetailContentChildContainer: { + padding: 16, + borderWidth: 1, + marginVertical: 8, + borderColor: Colors.primary70.color, + borderRadius: 8, + gap: 12, + }, + applicantDetailBottomContentWrapper: { + flexDirection: 'row', + justifyContent: 'space-between', + }, + applicantDetailFeeContentWrapper: { + flexDirection: 'row', + gap: 4, + alignItems: 'center', + }, + applicantDetailBottomText: { + fontSize: 14, + ...FontFamily.notoSansBold, + color: Colors.primary30.color, + }, + applicantDetailContentChildButton: { + marginTop: 8, + backgroundColor: Colors.primary30.color, + }, }); export default styles; diff --git a/src/screens/history/styles.tsx b/src/screens/history/styles.tsx index e132dd2..cb5ff7c 100644 --- a/src/screens/history/styles.tsx +++ b/src/screens/history/styles.tsx @@ -15,12 +15,12 @@ const styles = StyleSheet.create({ includeFontPadding: false, }, appBarContainer: { - height: 64, + height: 72, backgroundColor: Colors.secondary30.color, justifyContent: 'center', }, appBarNavBackContainer: { - height: 64, + height: 72, flexDirection: 'row', alignItems: 'center', backgroundColor: Colors.secondary30.color, @@ -41,8 +41,8 @@ const styles = StyleSheet.create({ }, cardWrapper: { margin: 16, - marginBottom: 165, - marginTop: -69, + marginBottom: 172, + marginTop: -85, }, flatllistGap: { height: 8, diff --git a/src/screens/home/index.tsx b/src/screens/home/index.tsx index 40a31e8..a7abde0 100644 --- a/src/screens/home/index.tsx +++ b/src/screens/home/index.tsx @@ -233,7 +233,7 @@ function HomeScreen() { barStyle="light-content" /> - Halo, Salwa! + Halo, X! - Salwa Aisyah Adhani + X 3271234560009123456 diff --git a/src/screens/profile/styles.tsx b/src/screens/profile/styles.tsx index 545260f..fd42654 100644 --- a/src/screens/profile/styles.tsx +++ b/src/screens/profile/styles.tsx @@ -17,13 +17,15 @@ const styles = StyleSheet.create({ color: Colors.neutral100.color, ...FontFamily.notoSansExtraBold, fontSize: 28, - marginStart: 16, marginVertical: 14, + includeFontPadding: false, }, appBarContainer: { - height: 64, + height: 72, backgroundColor: Colors.secondary30.color, justifyContent: 'center', + paddingHorizontal: 16, + alignContent: 'center', }, profileImage: { height: 125,