40 lines
1002 B
JavaScript
40 lines
1002 B
JavaScript
|
import React, { useEffect, useState } from 'react';
|
||
|
import { View, Text, FlatList } from 'react-native';
|
||
|
import { useAsyncStorage } from '@react-native-async-storage/async-storage';
|
||
|
|
||
|
const LikesScreen = ({ route }) => {
|
||
|
const { switId } = route.params;
|
||
|
const [likes, setLikes] = useState([]);
|
||
|
|
||
|
|
||
|
|
||
|
useEffect(() => {
|
||
|
fetchLikes();
|
||
|
}, []);
|
||
|
|
||
|
const fetchLikes = async () => {
|
||
|
const apiUrl = await AsyncStorage.getItem('apiEndpoint')
|
||
|
|
||
|
// replace with your server's address and correct route
|
||
|
const response = await fetch(`${apiUrl}/api/v1/app/swit/swits/${switId}/likes`, {
|
||
|
headers: {
|
||
|
Authorization: 'Bearer ' + token, // replace 'token' with the actual token
|
||
|
},
|
||
|
});
|
||
|
const data = await response.json();
|
||
|
setLikes(data);
|
||
|
};
|
||
|
|
||
|
return (
|
||
|
<View>
|
||
|
<FlatList
|
||
|
data={likes}
|
||
|
keyExtractor={(item) => item._id}
|
||
|
renderItem={({ item }) => <Text>{item.username}</Text>}
|
||
|
/>
|
||
|
</View>
|
||
|
);
|
||
|
};
|
||
|
|
||
|
export default LikesScreen;
|