diff --git a/HEX-DEV/.vscode/settings.json b/HEX-DEV/.vscode/settings.json new file mode 100644 index 000000000..479842492 --- /dev/null +++ b/HEX-DEV/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "liveServer.settings.port": 5501 +} \ No newline at end of file diff --git a/HEX-DEV/App.js b/HEX-DEV/App.js index 4c3242bf1..688d14ee1 100644 --- a/HEX-DEV/App.js +++ b/HEX-DEV/App.js @@ -56,6 +56,9 @@ const [fontsLoaded, fontError] = useFonts({ + {/* + + */} @@ -72,7 +75,7 @@ const [fontsLoaded, fontError] = useFonts({ const styles = StyleSheet.create({ container: { flex: 1, - backgroundColor: '#fff', + backgroundColor: '#FFFFFF', paddingTop: 40, }, }); diff --git a/HEX-DEV/App/Screens/Admin/Verification.jsx b/HEX-DEV/App/Screens/Admin/Verification.jsx new file mode 100644 index 000000000..17769276f --- /dev/null +++ b/HEX-DEV/App/Screens/Admin/Verification.jsx @@ -0,0 +1,191 @@ +import { useNavigation, useRoute } from '@react-navigation/native'; +import React, { useState } from 'react'; +import { View, Text, Image, StyleSheet, ScrollView, TouchableOpacity, Modal } from 'react-native'; + +const Verification = () => { + const navigation=useNavigation() +const route=useRoute() +const item=route.params?.item + const [selectedImage, setSelectedImage] = useState(null); + const [modalVisible, setModalVisible] = useState(false); + + const companyName = item?.name; + const ownerName = item?.owner; + const selected = item?.category[0]?.name; + const phoneNumber = item?.contact; + const aadharNumber = item?.aadharNumber; + const gstNumber = item?.panNumber; + const aadharImage =item?.aadharImageUrl; + + const gstImage =item?.gstImageUrl; + + const serviceLocation = item?.address; + const photoUri =item?.userPhotoUrl + + + const handleImageClick = (imageUri) => { + setSelectedImage(imageUri); + setModalVisible(true); + }; + + const handleModalClose = () => { + setSelectedImage(null); + setModalVisible(false); + }; + + const renderField = (label, value) => ( + <> + {label}: + {value} + + ); + + const renderImage = (uri) => ( + handleImageClick(uri)}> + + + ); + + const handleAccept = () => { + // Implement your logic for accepting verification + console.log('Verification Accepted'); + navigation.goBack() + + }; + + const handleReject = () => { + // Implement your logic for rejecting verification + console.log('Verification Rejected'); + navigation.goBack() + }; + + return ( + + + + Verification Details + + {renderField('Company Name', companyName)} + {renderField('Owner Name', ownerName)} + {renderField('Category', selected)} + {renderField('Phone Number', phoneNumber)} + {renderField('Owner Aadhar Number', aadharNumber)} + {renderField('GST Number', gstNumber)} + {renderField('Company Location', serviceLocation)} + + Aadhar Image: + {renderImage(aadharImage)} + + GST Image: + {renderImage(gstImage)} + + Profile Photo: + {renderImage(photoUri)} + + + + {/* Modal for displaying enlarged image */} + + + + + Close + + + + + {/* Accept and Reject Buttons */} + + + Accept + + + Reject + + + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, + justifyContent: 'center', + padding: 16, + }, + card: { + margin: 10, + }, + title: { + fontSize: 24, + fontWeight: 'bold', + marginBottom: 20, + borderWidth:2, + padding:10, + borderRadius:10, + textAlign: 'center', + }, + label: { + fontSize: 16, + marginTop: 10, + fontWeight: 'bold', + }, + value: { + fontSize: 18, + marginBottom: 10, + }, + thumbnailImage: { + width: '100%', + height: 150, + borderRadius: 8, + marginVertical: 10, + }, + modalContainer: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: 'rgba(0, 0, 0, 0.7)', + }, + enlargedImage: { + width: '90%', + height: '70%', + borderRadius: 8, + }, + closeButton: { + marginTop: 10, + padding: 10, + backgroundColor: 'blue', + borderRadius: 8, + }, + closeButtonText: { + color: 'white', + fontWeight: 'bold', + }, + buttonContainer: { + flexDirection: 'row', + justifyContent: 'space-between', + margin: 20, + }, + acceptButton: { + flex: 1, + backgroundColor: 'green', + padding: 15, + borderRadius: 8, + marginRight: 10, + alignItems: 'center', + }, + rejectButton: { + flex: 1, + backgroundColor: 'red', + padding: 15, + borderRadius: 8, + marginLeft: 10, + alignItems: 'center', + }, + buttonText: { + color: 'white', + fontWeight: 'bold', + }, +}); + +export default Verification; \ No newline at end of file diff --git a/HEX-DEV/App/Screens/Admin/admin.jsx b/HEX-DEV/App/Screens/Admin/admin.jsx new file mode 100644 index 000000000..61eaa6ae6 --- /dev/null +++ b/HEX-DEV/App/Screens/Admin/admin.jsx @@ -0,0 +1,71 @@ +import { FlatList, Image, SafeAreaView, StyleSheet, Text, TouchableOpacity, View } from 'react-native' +import React, { useEffect, useState } from 'react' +import GlobalApi from '../../Utils/GlobalApi'; +import color from '../../Utils/color'; +import { Ionicons } from '@expo/vector-icons'; +import { useNavigation } from '@react-navigation/native'; + + +export default function admin() { + const navigation=useNavigation() + const [sellerList,setSellerList]=useState([]); + + useEffect(()=>{ + getSellerList(); + },[]); + + const getSellerList=()=>{ + GlobalApi.SellerVerification().then(resp=>{ + setSellerList(resp.businessLists); + }) + } + console.log(sellerList) + return ( + + index.toString()} + renderItem={({ item }) => ( + + navigation.navigate("next_screen",{item})} > + + {item.name} + + + + + )} + /> + + ) +} + +const styles = StyleSheet.create({ + itemContainer: { + marginTop: 10, + display: 'flex', + gap: 10 + }, + bookingItem: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + borderWidth: 2, + padding: 6, + borderColor: color.LIGHT_GRAY, + borderRadius: 15 + }, + userImage: { + height: 40, + width: 40, + borderRadius: 100 + }, + userName: { + width: 120, + fontFamily: 'outfit' + }, + date: { + fontFamily: 'outfit-bold', + color: color.PRIMARY + } +}); diff --git a/HEX-DEV/App/Screens/ProfileScreen/component/OtpVerification.js b/HEX-DEV/App/Screens/ProfileScreen/component/OtpVerification.js index 0de09c8e2..5a6a85df7 100644 --- a/HEX-DEV/App/Screens/ProfileScreen/component/OtpVerification.js +++ b/HEX-DEV/App/Screens/ProfileScreen/component/OtpVerification.js @@ -1,5 +1,5 @@ import React, { useState, useRef, useEffect } from 'react'; -import { View, Text, TextInput, TouchableOpacity, StyleSheet, Alert, Button } from 'react-native'; +import { View, Text, TextInput, TouchableOpacity, StyleSheet, Alert, Button,ActivityIndicator } from 'react-native'; import { FirebaseRecaptchaVerifierModal } from 'expo-firebase-recaptcha' import { useRoute } from "@react-navigation/native" import { firebaseConfig } from '../../../../firebaseConfig' @@ -126,6 +126,7 @@ const VerificationCodePage = ({ navigation }) => { ); firebase.auth().signInWithCredential(credential) .then(() => { + setLoading(false); Alert.alert('OTP verification is Sucesssful.'); navigation.replace('PenddingScreen', { photoUri: photoUri, companyName: companyName, @@ -141,6 +142,7 @@ const VerificationCodePage = ({ navigation }) => { catId:catId }); }) .catch((error) => { + setLoading(false); //show an alert in case of error alert(error); }) @@ -159,6 +161,7 @@ const VerificationCodePage = ({ navigation }) => { /> Verification Code Sent To {phoneNumber} + {loading && } {renderInput(0)} {renderInput(1)} diff --git a/HEX-DEV/App/Screens/ProfileScreen/component/TermsAndConditions.js b/HEX-DEV/App/Screens/ProfileScreen/component/TermsAndConditions.js index 5eb44774a..82a8937b8 100644 --- a/HEX-DEV/App/Screens/ProfileScreen/component/TermsAndConditions.js +++ b/HEX-DEV/App/Screens/ProfileScreen/component/TermsAndConditions.js @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { View, Text, Button } from 'react-native'; +import { View, Text, Button,ScrollView } from 'react-native'; import CheckBox from 'expo-checkbox'; import color from '../../../Utils/color'; @@ -20,18 +20,57 @@ const TermsAndConditionsPage = ({ navigation }) => { return ( + + Terms & Conditions - - By using this platform as a seller, you agree to abide by our terms and conditions. Please review the terms and conditions carefully before proceeding. + + Terms and Conditions for Evehunt + + +Welcome to Evehunt! These Terms and Conditions outline the rules and regulations for the use of our application. +By accessing this application, we assume you accept these Terms and Conditions. Do not continue to use Evehunt if you do not agree to take all of the Terms and Conditions stated on this page. + + +- Evehunt collects information provided by sellers during registration to facilitate transactions between users and sellers. We ensure the security and confidentiality of all entered information in accordance with our Privacy Policy. + + + + - Images uploaded by sellers are utilized solely for the purpose of creating their profiles on Evehunt. We do not distribute, sell, or use these images for any other purpose without explicit consent from the seller. + + + + - Sellers are responsible for the accuracy and legality of the information they provide on Evehunt. Any misleading or fraudulent information may result in the termination of their account. + + + + - Evehunt serves as a platform for communication and transactions between users and sellers. We do not endorse, guarantee, or take responsibility for the quality, legality, or safety of the products or services offered by sellers. + + + + - All content, including but not limited to text, graphics, logos, images, and software, used on Evehunt is the intellectual property of Evehunt and is protected by copyright laws. Unauthorized use, reproduction, or distribution of any content is strictly prohibited. + + + + - Evehunt, its affiliates, directors, officers, employees, and agents shall not be liable for any indirect, incidental, special, consequential, or punitive damages arising out of or in connection with the use or inability to use Evehunt. + + + + - Evehunt reserves the right to modify or replace these Terms and Conditions at any time. Continued use of Evehunt after any such changes shall constitute your consent to such changes. + + + +By using Evehunt, you agree to abide by these Terms and Conditions. If you have any questions or concerns regarding these terms, please contact us at [Your Contact Information]. +These Terms and Conditions have been generated with the help of Terms and Conditions Template and should be used as a guideline only. +Evehunt - + I accept the T&C @@ -41,6 +80,8 @@ const TermsAndConditionsPage = ({ navigation }) => {