some bug fixed
This commit is contained in:
@@ -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',
|
||||
},
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user