api integration for joined user

This commit is contained in:
Jaanu423
2025-09-22 18:50:06 +05:30
parent ff8c0439f6
commit bcd41f81e6
12 changed files with 213 additions and 113 deletions
+14 -6
View File
@@ -13,6 +13,7 @@ import {
import { Ionicons } from '@react-native-vector-icons/ionicons';
import colors from '../../components/colors';
import DeclineModal from './DeclineModal';
import * as keychain from 'react-native-keychain'
// Define TypeScript interfaces
interface GroupRequest {
@@ -40,11 +41,18 @@ const RequestList: React.FC = () => {
const [error, setError] = useState<string | null>(null);
const [searchQuery, setSearchQuery] = useState<string>('');
const [processingRequest, setProcessingRequest] = useState<string | null>(null);
const [showDeclineModal, setShowDeclineModal] = useState<{modal: boolean, requestId: string | null}>({modal: false, requestId: null});
const [showDeclineModal, setShowDeclineModal] = useState<{ modal: boolean, requestId: string | null }>({ modal: false, requestId: null });
const [selectedRequestId, setSelectedRequestId] = useState<string | null>(null);
// Fetch data from API
const fetchRequests = async (): Promise<void> => {
const credentials = await keychain.getGenericPassword();
if (!credentials) {
Alert.alert("Error", "You are not logged in");
return;
}
const token = credentials.password;
try {
setRefreshing(true);
setError(null);
@@ -55,7 +63,7 @@ const RequestList: React.FC = () => {
method: "GET",
headers: {
accept: "*/*",
Authorization: "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI2MjY1MjI5MzcxIiwidXNlcklkIjoiMTAwMDAxIiwiaWF0IjoxNzU4MDkxMjEzLCJleHAiOjE3NTgxNzc2MTN9.T3BvU7nl8fnjwwVobIWRmSFFxQzOjtyIct1Ba0i9lIU"
Authorization: `Bearer ${token}`
}
}
);
@@ -156,7 +164,7 @@ const RequestList: React.FC = () => {
};
const handleDeclineConfirm = async (requestedId: string | null, reason: string) => {
setShowDeclineModal({modal: false, requestId: null});
setShowDeclineModal({ modal: false, requestId: null });
try {
setProcessingRequest(requestedId);
@@ -197,7 +205,7 @@ const RequestList: React.FC = () => {
}// call your API
};
const onRefresh = (): void => {
fetchRequests();
@@ -332,7 +340,7 @@ const RequestList: React.FC = () => {
<View style={styles.actions}>
<TouchableOpacity
style={[styles.button, styles.declineButton]}
onPress={() => setShowDeclineModal({modal:true, requestId: request.requestId})}
onPress={() => setShowDeclineModal({ modal: true, requestId: request.requestId })}
disabled={processingRequest === request.requestId}
>
{processingRequest === request.requestId ? (
@@ -361,7 +369,7 @@ const RequestList: React.FC = () => {
{showDeclineModal.modal && (
<DeclineModal
visible={showDeclineModal.modal}
onClose={() => setShowDeclineModal({modal: false, requestId: null})}
onClose={() => setShowDeclineModal({ modal: false, requestId: null })}
onSubmit={(reason) => handleDeclineConfirm(showDeclineModal.requestId, reason)}
/>
)}