import React, { useState, useEffect } from 'react'; import { View, Text, Button } from 'react-native'; import { useTailwind } from 'tailwind-rn'; import AsyncStorage from '@react-native-async-storage/async-storage'; function UserProfileScreen({ route, navigation }) { const { userId } = route.params; // get the user ID from the parameters const [username, setUsername] = useState(''); const [following, setFollowing] = useState([]); const tailwind = useTailwind(); console.log(userId) async function fetchUserData() { const token = await AsyncStorage.getItem('token'); const apiUrl = await AsyncStorage.getItem('apiEndpoint') const response = await fetch(`${apiUrl}/api/v1/app/user/data/${userId}`, { headers: { 'Authorization': token }, }); if (!response.ok) { console.error(`Error: ${response.status}`); return; } const user = await response.json(); console.warn("user: ", user) setUsername(user.username); setFollowing(user.following.count); } useEffect(() => { fetchUserData(); }, []); async function followUser() { const token = await AsyncStorage.getItem('token'); const apiUrl = await AsyncStorage.getItem('apiEndpoint') console.log(userId) const response = await fetch(`${apiUrl}/api/v1/app/user/follow/${userId}`, { method: 'POST', headers: { 'Authorization': token }, }); const data = await response.json(); setFollowing(data.count); console.log('followed') // Update the user state to reflect the new following status } async function unfollowUser() { const token = await AsyncStorage.getItem('token'); const apiUrl = await AsyncStorage.getItem('apiEndpoint') const response = await fetch(`$[apiUrl}/api/v1/app/user/unfollow/${userId}`, { method: 'POST', headers: { 'Authorization': token }, }); if (response.ok) { const data = await response.json(); console.warn(data) setFollowing(data.count) } // Update the user state to reflect the new following status } if (!username) return null; return ( @{username} {/* Display the user's swits here */}