api integration for joined user
This commit is contained in:
@@ -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)}
|
||||
/>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user