some bug fixed

This commit is contained in:
Jaanu423
2025-11-25 16:02:16 +05:30
parent 0957236098
commit e03a695734
10 changed files with 248 additions and 217 deletions
+15 -13
View File
@@ -9,7 +9,7 @@ import {
UIManager,
Platform,
} from 'react-native';
import { Ionicons } from "@react-native-vector-icons/ionicons";import colors from "../../../components/colors"; // Assuming a colors file
import { Ionicons } from "@react-native-vector-icons/ionicons"; import colors from "../../../components/colors"; // Assuming a colors file
// Enable LayoutAnimation for Android
if (Platform.OS === 'android' && UIManager.setLayoutAnimationEnabledExperimental) {
@@ -68,14 +68,11 @@ interface CycleDashboardData {
// --- Helper Functions ---
const formatDate = (dateArray: [number, number, number]): string => {
if (!dateArray || dateArray.length < 3) return 'N/A';
const [year, month, day] = dateArray;
return new Date(year, month - 1, day).toLocaleDateString('en-US', {
month: 'short',
day: 'numeric',
year: 'numeric',
});
const formatDate = (dateStr: string | null): string => {
if (!dateStr) return 'N/A';
const [year, month, day] = dateStr.split('-');
return `${day}-${month}-${year}`;
};
const formatCurrency = (amount: number): string => {
@@ -106,7 +103,7 @@ const CycleItem = ({ item, isExpanded, onToggle }: { item: Cycle, isExpanded: bo
<View style={styles.cycleDetails}>
{/* Withdrawal Info */}
{item.withdrawal && (
<View style={styles.section}>
<View style={styles.section}>
<Text style={styles.sectionTitle}>Withdrawal</Text>
<View style={styles.withdrawalCard}>
<Ionicons name="arrow-down-circle-outline" size={32} color={colors.Home} />
@@ -116,18 +113,19 @@ const CycleItem = ({ item, isExpanded, onToggle }: { item: Cycle, isExpanded: bo
</View>
<Text style={styles.withdrawalDate}>{formatDate(item.withdrawal.paidDate)}</Text>
</View>
</View>
</View>
)}
{/* Contributions List */}
<View style={styles.section}>
<Text style={styles.sectionTitle}>Contributions ({item.paidParticipants}/{item.totalParticipants})</Text>
{item.contributions.map(contribution => (
<View key={contribution.transactionId} style={styles.contributionItem}>
<View key={contribution.transactionId} style={[styles.contributionItem, { backgroundColor: contribution.status === 'SUCCESS' ? '#D1FAE5' : contribution.status === 'PENDING' ? '#FEF3C7' : '#FEE2E2' }]}>
<Ionicons name="person-circle-outline" size={28} color="#475569" />
<View style={{ flex: 1, marginLeft: 10 }}>
<Text style={styles.contributorName}>{contribution.userName}</Text>
<Text style={styles.contributorName} numberOfLines={1} > {contribution.userName}</Text>
<Text style={styles.contributionDate}>{formatDate(contribution.paidDate)}</Text>
<Text style={{color: contribution.status === 'SUCCESS' ? 'green' : contribution.status === 'PENDING' ? 'orange' : 'red', fontSize:12, textTransform:'capitalize'}}>{contribution.status}</Text>
</View>
<Text style={styles.contributionAmount}>{formatCurrency(contribution.totalAmount)}</Text>
</View>
@@ -150,6 +148,7 @@ const CycleDashboard = ({ data }: { data: CycleDashboardData }) => {
setExpandedCycle(expandedCycle === cycleNumber ? null : cycleNumber);
};
console.log("expanded cycle : ", data)
const renderHeader = () => (
<View style={styles.headerContainer}>
<Text style={styles.groupName}>{data.groupName}</Text>
@@ -297,6 +296,9 @@ const styles = StyleSheet.create({
flexDirection: 'row',
alignItems: 'center',
paddingVertical: 10,
paddingHorizontal: 8,
borderRadius: 6,
marginBottom: 10,
borderBottomWidth: 1,
borderBottomColor: '#f1f5f9',
},
+6 -7
View File
@@ -77,7 +77,7 @@ const GroupDetails = () => {
const [openModal, setOpenModal] = useState(false);
const [payable, setPayable] = useState<any>();
const [refreshing, setRefreshing] = useState(false);
const [cycleDashboardData, setCycleDashboardData] = useState<any>();
const [cycleDashboardData, setCycleDashboardData] = useState<any>([]);
const [selectedCycleNumber, setSelectedCycleNumber] = useState(null);
const [cycleItems, setCycleItems] = useState([]);
const [selectedUser, setSelectedUser] = useState() as string | any;
@@ -109,8 +109,8 @@ const GroupDetails = () => {
try {
const response = await apiCall(`${BASE_URL}payments/groups/${group.id || route?.params?.groupId}/cycle-dashboard`, "GET") as any;
const responseData = response.data;
setCycleDashboardData(responseData);
console.log("cycledata", responseData)
setCycleDashboardData(responseData || []);
console.log("cycle data", responseData)
if (responseData?.cycles) {
const items = responseData.cycles.map((cycle: any) => ({
label: `Cycle ${cycle.cycleNumber}`,
@@ -191,7 +191,8 @@ const GroupDetails = () => {
};
const selectedCycleData = cycleDashboardData?.cycles.find((c: any) => c.cycleNumber === selectedCycleNumber);
const selectedCycleData = cycleDashboardData?.cycles?.find((c: any) => c.cycleNumber === selectedCycleNumber);
// const selectedCycleData = cycleDashboardData?.cycles.find((c: any) => c.cycleNumber === selectedCycleNumber);
return (
@@ -263,14 +264,12 @@ const GroupDetails = () => {
))}
{cycleDashboardData?.status === 'ACTIVE' || cycleDashboardData?.status === 'DELAY' && !payable?.hasPaid && (
{(cycleDashboardData?.status === 'ACTIVE' || cycleDashboardData?.status === 'DELAY') && !payable?.hasPaid && (
<TouchableOpacity onPress={() => setOpenModal(true)} style={styles.button}>
<Text style={styles.buttonText}>Contribute</Text>
</TouchableOpacity>
)}
</ScrollView>
{openModal && (
<ContributionScreen
data={payable}