commit
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
import React, { useEffect } from 'react';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { View, Text, StyleSheet, Dimensions, FlatList, ActivityIndicator } from 'react-native';
|
||||
import Animated, { useSharedValue, useAnimatedStyle, withDelay, withTiming } from 'react-native-reanimated';
|
||||
import { Layers, Clock, ShoppingCart, X, FileText } from 'lucide-react-native';
|
||||
import { Header } from '../../Component/Index';
|
||||
import colors from '../../Constant/Color';
|
||||
import { useDashboard } from '../../Services/BBPS/Hooks';
|
||||
import { useDashboard, useESetuAdharVarification } from '../../Services/BBPS/Hooks';
|
||||
import { log } from 'console';
|
||||
import { useSelector } from 'react-redux';
|
||||
import ConfirmDialog from '../../Constant/Dialog/ConfirmDialog';
|
||||
|
||||
const { width } = Dimensions.get('window');
|
||||
const CARD_WIDTH = (width - 48) / 2;
|
||||
@@ -59,8 +61,34 @@ const StatCard = ({ item, index, isLoading }: any) => {
|
||||
|
||||
const Home = () => {
|
||||
const { data, isLoading } = useDashboard();
|
||||
|
||||
const user = useSelector((state: any) => state.token?.token);
|
||||
console.log("-=--",user)
|
||||
const { mutateAsync:eSetuAdharVarification } = useESetuAdharVarification();
|
||||
const dashboard = data?.data || {};
|
||||
const [esetu,setEsetu] = useState<boolean>();
|
||||
useEffect(()=>{
|
||||
if(user?.esetuVerified === 'Not Verified'){
|
||||
const payLoad= {
|
||||
contId: user,
|
||||
transactionId: "string",
|
||||
udf1: "string",
|
||||
udf2: "string",
|
||||
udf3: "string",
|
||||
udf4: "string",
|
||||
responseUrl: "string"
|
||||
}
|
||||
setEsetu(true)
|
||||
eSetuAdharVarification(payLoad, {
|
||||
onSuccess: (res) => {
|
||||
console.log(res)
|
||||
}, onError: (err) => {
|
||||
console.log(err, '-----auction item error');
|
||||
}
|
||||
});
|
||||
}else{
|
||||
setEsetu(false)
|
||||
}
|
||||
},[user])
|
||||
|
||||
const DASHBOARD_CARDS = [
|
||||
{
|
||||
@@ -125,7 +153,18 @@ const Home = () => {
|
||||
return (
|
||||
<View style={styles.screen}>
|
||||
<Header title="Dashboard" />
|
||||
<ConfirmDialog
|
||||
visible={esetu as boolean}
|
||||
title="Aadhaar Verification Required"
|
||||
message="To access features, please complete your Aadhaar verification."
|
||||
confirmText="Proceed"
|
||||
cancelText="Cancel"
|
||||
onConfirm={() => {
|
||||
setEsetu(false);
|
||||
|
||||
}}
|
||||
onClose={() => setEsetu(false)}
|
||||
/>
|
||||
<FlatList
|
||||
data={DASHBOARD_CARDS}
|
||||
keyExtractor={(_, index) => index.toString()}
|
||||
|
||||
@@ -116,6 +116,7 @@ const Login = () => {
|
||||
{ password: values.password, emailAdd: values.email },
|
||||
{
|
||||
onSuccess: res => {
|
||||
console.log("res",res )
|
||||
if (res.statusCode == 200) {
|
||||
Dispatch(setToken({ ...res.data, token: res.token, userType: activeType }));
|
||||
handleGetData();
|
||||
|
||||
@@ -29,7 +29,7 @@ const LiveTenderTile: React.FC<LiveTenderTileProps> = ({
|
||||
? data.contractorId
|
||||
: [];
|
||||
|
||||
const purchased =contractorIds.includes(String(contractorId));
|
||||
const purchased = contractorIds.includes(String(contractorId));
|
||||
|
||||
|
||||
return (
|
||||
|
||||
@@ -9,7 +9,7 @@ const ProceedToBidDetail = () => {
|
||||
// Sample data based on your JSON
|
||||
const route = useRoute<any>();
|
||||
const tenderDataId = route.params?.tender;
|
||||
const { data, refetch } = useProceedToBid(tenderDataId?.tenderId);
|
||||
const { data, refetch,isRefetching } = useProceedToBid(tenderDataId?.tenderId);
|
||||
const { data: tenderResponse, refetch: tenderRefetch }: any = useFetchTenderById(tenderDataId?.tenderId);
|
||||
const tenderData = tenderResponse?.data;
|
||||
const [refreshing, setRefreshing] = React.useState(false);
|
||||
@@ -22,13 +22,12 @@ const ProceedToBidDetail = () => {
|
||||
// Format date from array
|
||||
|
||||
const handleStartBidding = () => {
|
||||
setLoading(true);
|
||||
try {
|
||||
setLoading(true);
|
||||
refetch();
|
||||
if (data) {
|
||||
console.log(" ppp", tenderData, "ll", data)
|
||||
navigation.navigate('TenderBidding', { tenderData: tenderData, bidData: data.data });
|
||||
}
|
||||
|
||||
navigation.navigate('TenderBidding', { tenderId:tenderDataId.tenderId});
|
||||
|
||||
} catch (error) {
|
||||
console.log("Error in starting bidding: ", error);
|
||||
} finally {
|
||||
@@ -184,9 +183,9 @@ const ProceedToBidDetail = () => {
|
||||
{tenderData?.envelopeA_Logs && (
|
||||
<View style={styles.section}>
|
||||
<Text style={styles.sectionTitle}>Submission Logs</Text>
|
||||
<EnvelopeLogCard log={tenderData?.envelopeA_Logs} title="Envelope A Submission" />
|
||||
<EnvelopeLogCard log={tenderData?.envelopeB_Logs} title="Envelope B Submission" />
|
||||
<EnvelopeLogCard log={tenderData?.envelopeC_Logs} title="Envelope C Submission" />
|
||||
{tenderData?.envelopeA_Logs&& <EnvelopeLogCard log={tenderData?.envelopeA_Logs} title="Envelope A Submission" />}
|
||||
{ tenderData?.envelopeB_Logs&&<EnvelopeLogCard log={tenderData?.envelopeB_Logs} title="Envelope B Submission" />}
|
||||
{tenderData?.envelopeC_Logs && <EnvelopeLogCard log={tenderData?.envelopeC_Logs} title="Envelope C Submission" />}
|
||||
</View>
|
||||
)}
|
||||
|
||||
@@ -260,7 +259,7 @@ const ProceedToBidDetail = () => {
|
||||
{
|
||||
tenderData?.proceedtoBid && !tenderData?.viewBid && tenderData?.biddingStatus && tenderData?.bidWithdrawStatus === false ? (
|
||||
|
||||
<TouchableOpacity style={styles.proceedButton} onPress={handleStartBidding}>
|
||||
<TouchableOpacity style={styles.proceedButton} onPress={handleStartBidding} disabled={isRefetching}>
|
||||
<Text style={styles.proceedButtonText}>{loading ? <ActivityIndicator size={'small'} color={'#ffff'} /> : 'Start Bidding'}</Text>
|
||||
</TouchableOpacity>
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useState } from 'react';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { View, Text, StyleSheet, ScrollView, TouchableOpacity } from 'react-native';
|
||||
import Animated, { FadeIn, FadeOut, Layout, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
|
||||
import { ChevronDown, Trash2, Info } from 'lucide-react-native';
|
||||
@@ -18,17 +18,21 @@ const PurchaseTenderList = () => {
|
||||
setExpandedIndex(prev => (prev === index ? null : index));
|
||||
};
|
||||
|
||||
useEffect(()=>{
|
||||
console.log("dcj",SelectedPurchaseList)
|
||||
if(SelectedPurchaseList.length === 0){
|
||||
Navigation.goBack()
|
||||
}
|
||||
},[SelectedPurchaseList]
|
||||
|
||||
)
|
||||
|
||||
return (
|
||||
<View style={styles.screen}>
|
||||
<InsideHeader title="Purchase" showArrow />
|
||||
|
||||
<ScrollView contentContainerStyle={styles.container}>
|
||||
{/* Header */}
|
||||
<View style={styles.header}>
|
||||
<Text style={styles.heading}>Tender Purchase List</Text>
|
||||
{/* <Info size={20} color="#0F172A" /> */}
|
||||
</View>
|
||||
|
||||
|
||||
{/* Cards */}
|
||||
{SelectedPurchaseList.map((item: any, index: any) => {
|
||||
const expanded = expandedIndex === index;
|
||||
|
||||
@@ -19,6 +19,7 @@ import { SUBMIT_ENVELOPE_A, SUBMIT_ENVELOPE_B, SUBMIT_ENVELOPE_FILE_A, SUBMIT_EN
|
||||
import { CheckSquare, Square } from 'lucide-react-native';
|
||||
import { apiCall } from '../../../Axios/Axios';
|
||||
import EnvelopeCExcelPreview from '../Component/EnvelopeCExcelPreview';
|
||||
import { useFetchTenderById, useProceedToBid } from '../../../Services/BBPS/Hooks';
|
||||
|
||||
type EnvelopeType = 'A' | 'B' | 'C';
|
||||
type EnvelopeFormState = {
|
||||
@@ -41,8 +42,20 @@ const TenderBidding = () => {
|
||||
const route = useRoute<any>();
|
||||
const navigation = useNavigation();
|
||||
console.log("-=-=-=-=-=",route)
|
||||
const [bidData] = useState<any>(route.params?.tenderData || null);
|
||||
const tenderData: any = route.params?.bidData || null;
|
||||
|
||||
console.log("ROUTE DATA",route)
|
||||
|
||||
const tenderId = useState<any>(route.params?.tenderId || null);
|
||||
|
||||
const { data: tenderResponse, refetch: tenderRefetch }: any = useFetchTenderById(route.params?.tenderId);
|
||||
|
||||
|
||||
const bidData= tenderResponse?.data;
|
||||
console.log(" --------------1",bidData)
|
||||
const { data:tender, refetch } = useProceedToBid(route.params?.tenderId);
|
||||
const tenderData= tender?.data
|
||||
|
||||
console.log(" --------------2",tenderData)
|
||||
const [activeEnvelope, setActiveEnvelope] = useState<EnvelopeType>('A');
|
||||
const [envelopForm, setEnvelopForm] = useState<EnvelopeFormState>({
|
||||
A: {},
|
||||
@@ -425,6 +438,7 @@ const TenderBidding = () => {
|
||||
}
|
||||
console.log("bidData : ", bidData)
|
||||
console.log("tender data : ", tenderData)
|
||||
// console.log( `bold ${tenderData?.[`tenderEnvelope${activeEnvelope}List`]}`,tenderData?.[`tenderEnvelope${activeEnvelope}List`])
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<InsideHeader title="Tender Bidding Start" showArrow />
|
||||
@@ -462,6 +476,7 @@ const TenderBidding = () => {
|
||||
envelopeType="B"
|
||||
onPress={() => {
|
||||
if (tenderData?.envelopeASubmittStatus) {
|
||||
|
||||
setActiveEnvelope('B')
|
||||
} else {
|
||||
Alert.alert('Info', 'Submit Envelop A First')
|
||||
@@ -485,7 +500,9 @@ const TenderBidding = () => {
|
||||
</View>
|
||||
</View>
|
||||
{/* Envelope A List */}
|
||||
{tenderData?.[`tenderEnvelope${activeEnvelope}List`]?.length > 0 && bidData?.envelopeB_Logs !== null && (
|
||||
|
||||
|
||||
{tenderData?.[`tenderEnvelope${activeEnvelope}List`]?.length > 0 && bidData?.envelopeB_Logs === null && (
|
||||
<View style={styles.card}>
|
||||
<Text style={styles.sectionTitle}>Envelope {activeEnvelope} Details</Text>
|
||||
<FlatList
|
||||
|
||||
Reference in New Issue
Block a user