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,