diff --git a/src/screens/Loan/LoanOrdersScreen.js b/src/screens/Loan/LoanOrdersScreen.js
index cd09a91..2dbb84d 100644
--- a/src/screens/Loan/LoanOrdersScreen.js
+++ b/src/screens/Loan/LoanOrdersScreen.js
@@ -1,5 +1,5 @@
import React, { useState, useCallback } from 'react';
-import { View, Text, StyleSheet, FlatList, ActivityIndicator, TouchableOpacity, RefreshControl, SafeAreaView } from 'react-native';
+import { View, Text, StyleSheet, FlatList, ActivityIndicator, TouchableOpacity, RefreshControl, SafeAreaView, Alert } from 'react-native';
import { Ionicons } from '@expo/vector-icons';
import { useNavigation, useFocusEffect } from '@react-navigation/native';
import apiService from '../../services/apiService';
@@ -47,6 +47,32 @@ const LoanOrdersScreen = () => {
const amount = (item.loan_amount + ' TMT') || '-';
const created = item.created_at ? new Date(item.created_at).toLocaleDateString() : '';
+ const handleDelete = async (orderId) => {
+ Alert.alert(
+ "Sargyty pozmak",
+ "Siz hakykatdanam bu sargyty pozmak isleýärsiňizmi?",
+ [
+ { text: "Ýok", style: "cancel" },
+ {
+ text: "Hawa",
+ onPress: async () => {
+ try {
+ const res = await apiService.deleteLoanOrder(orderId);
+ if (res.success) {
+ setOrders(prevOrders => prevOrders.filter(order => order.id !== orderId));
+ } else {
+ console.warn('Failed to delete order:', res.error);
+ }
+ } catch (e) {
+ console.error('Error deleting order:', e.message);
+ }
+ },
+ },
+ ],
+ { cancelable: true }
+ );
+ };
+
return (
navigation.navigate('LoanOrderDetails', { orderId: item.id })}>
@@ -58,8 +84,11 @@ const LoanOrdersScreen = () => {
{amount}
- {created}
+ Döredilen senesi: {created}
+ handleDelete(item.id)} style={styles.deleteButton}>
+
+
);
};
@@ -112,6 +141,7 @@ const styles = StyleSheet.create({
borderRadius: 12,
padding: 16,
alignItems: 'center',
+ justifyContent: 'space-between',
},
circle: {
width: 40,
@@ -127,7 +157,7 @@ const styles = StyleSheet.create({
passportText: { fontWeight: '700', color: COLORS.textPrimary, marginBottom: 4 },
accountLabel: { color: COLORS.textSecondary, fontSize: 14 },
accountValue: { color: COLORS.textPrimary, marginBottom: 4 },
- dateText: { color: COLORS.textSecondary, fontSize: 12, textAlign: 'right' },
+ dateText: { color: COLORS.textSecondary, fontSize: 12, textAlign: 'left' },
emptyContainer: { flex: 1, justifyContent: 'center', alignItems: 'center' },
emptyText: { fontSize: 16, color: COLORS.textSecondary },
fab: {
@@ -142,6 +172,9 @@ const styles = StyleSheet.create({
justifyContent: 'center',
elevation: 4,
},
+ deleteButton: {
+ padding: 8,
+ },
});
export default LoanOrdersScreen;
\ No newline at end of file
diff --git a/src/screens/Loan/LoanPaidOffLetterOrdersScreen.js b/src/screens/Loan/LoanPaidOffLetterOrdersScreen.js
index fd95022..cda876b 100644
--- a/src/screens/Loan/LoanPaidOffLetterOrdersScreen.js
+++ b/src/screens/Loan/LoanPaidOffLetterOrdersScreen.js
@@ -1,5 +1,5 @@
import React, { useState, useCallback } from 'react';
-import { View, Text, StyleSheet, FlatList, ActivityIndicator, TouchableOpacity, RefreshControl, SafeAreaView } from 'react-native';
+import { View, Text, StyleSheet, FlatList, ActivityIndicator, TouchableOpacity, RefreshControl, SafeAreaView, Alert } from 'react-native';
import { Ionicons } from '@expo/vector-icons';
import { useNavigation, useFocusEffect } from '@react-navigation/native';
import apiService from '../../services/apiService';
@@ -47,6 +47,32 @@ const LoanPaidOffLetterOrdersScreen = () => {
const accountLine = `Karz hasaby:`;
const created = item.created_at ? new Date(item.created_at).toLocaleDateString() : '';
+ const handleDelete = async (orderId) => {
+ Alert.alert(
+ "Sargyty pozmak",
+ "Siz hakykatdanam bu sargyty pozmak isleýärsiňizmi?",
+ [
+ { text: "Ýok", style: "cancel" },
+ {
+ text: "Hawa",
+ onPress: async () => {
+ try {
+ const res = await apiService.deleteLoanPaidOffLetterOrder(orderId);
+ if (res.success) {
+ setOrders(prevOrders => prevOrders.filter(order => order.id !== orderId));
+ } else {
+ console.warn('Failed to delete order:', res.error);
+ }
+ } catch (e) {
+ console.error('Error deleting order:', e.message);
+ }
+ },
+ },
+ ],
+ { cancelable: true }
+ );
+ };
+
return (
navigation.navigate('LoanPaidOffLetterOrderDetails', { orderId: item.id })}>
@@ -58,6 +84,9 @@ const LoanPaidOffLetterOrdersScreen = () => {
{item.loan_contract_number || '-'}
{created}
+ handleDelete(item.id)} style={styles.deleteButton}>
+
+
);
};
@@ -110,6 +139,7 @@ const styles = StyleSheet.create({
borderRadius: 12,
padding: 16,
alignItems: 'center',
+ justifyContent: 'space-between',
},
circle: {
width: 40,
@@ -140,6 +170,9 @@ const styles = StyleSheet.create({
justifyContent: 'center',
elevation: 4,
},
+ deleteButton: {
+ padding: 8,
+ },
});
export default LoanPaidOffLetterOrdersScreen;
\ No newline at end of file
diff --git a/src/screens/Loan/LoanRemainingOrdersScreen.js b/src/screens/Loan/LoanRemainingOrdersScreen.js
index 30a906a..c34f437 100644
--- a/src/screens/Loan/LoanRemainingOrdersScreen.js
+++ b/src/screens/Loan/LoanRemainingOrdersScreen.js
@@ -65,6 +65,32 @@ const LoanRemainingOrdersScreen = () => {
const accountLabel = 'Karz hasaby:';
const created = item.created_at ? new Date(item.created_at).toLocaleDateString() : '';
+ const handleDelete = async (orderId) => {
+ Alert.alert(
+ "Sargyty pozmak",
+ "Siz hakykatdanam bu sargyty pozmak isleýärsiňizmi?",
+ [
+ { text: "Ýok", style: "cancel" },
+ {
+ text: "Hawa",
+ onPress: async () => {
+ try {
+ const res = await apiService.deleteLoanRemainingOrder(orderId);
+ if (res.success) {
+ setOrders(prevOrders => prevOrders.filter(order => order.id !== orderId));
+ } else {
+ console.warn('Failed to delete order:', res.error);
+ }
+ } catch (e) {
+ console.error('Error deleting order:', e.message);
+ }
+ },
+ },
+ ],
+ { cancelable: true }
+ );
+ };
+
return (
handleItemPress(item)}>
@@ -74,8 +100,11 @@ const LoanRemainingOrdersScreen = () => {
{passportLine}
{accountLabel}
{item.account_number}
- {created}
+ Döredilen senesi: {created}
+ handleDelete(item.id)} style={styles.deleteButton}>
+
+
);
};
@@ -204,6 +233,7 @@ const styles = StyleSheet.create({
borderRadius: 12,
padding: 16,
alignItems: 'center',
+ justifyContent: 'space-between', // Added to push delete button to the right
},
circle: {
width: 40,
@@ -318,6 +348,9 @@ const styles = StyleSheet.create({
fontWeight: '600',
color: COLORS.textPrimary,
},
+ deleteButton: {
+ padding: 8,
+ },
});
export default LoanRemainingOrdersScreen;
\ No newline at end of file