import React, { useEffect, useRef } from "react";
import { Searchbar, Title, IconButton } from 'react-native-paper';
import { StyleSheet, SafeAreaView, FlatList, View } from 'react-native';
import API from "../API";
import GroupCard from "../components/GroupCard";
const Groups = ({navigation}) => {
const [searchQuery, setSearchQuery] = React.useState('');
const [searchVisible, setSearchVisible] = React.useState(false);
const [groups, setGroups] = React.useState([]);
const [queryTimer, setQueryTimer] = React.useState(0);
const searchTextBox = useRef(null);
useEffect(() => {
let subscribed = true;
API.getFollowingGroups('').then((data) => {
if (subscribed)
setGroups(data?.groups || []);
});
return () => {
subscribed = false;
}
}, [])
const onChangeSearch = query => {
setSearchQuery(query);
if (queryTimer) clearTimeout(queryTimer);
let timerId = setTimeout(() => {
if (!query) {
return API.getFollowingGroups('').then((data) => {
setGroups(data.groups || []);
});
}
API.searchGroups(query).then((data) => {
setGroups(data.groups || []);
})
}, 300);
setQueryTimer(timerId);
};
const renderProfile = (({ item }) => {
return ();
});
return (
item._id}
ListHeaderComponent={
<>
{!searchVisible ?
{
navigation.navigate('NewGroup');
}} />
{
setSearchVisible(true);
console.log(searchTextBox)
//searchTextBox.current.focus();
}} />
:
{
setSearchVisible(false);
}}
forwardRef={searchTextBox}
/>
}
{searchQuery ? "Results:" : "Your Groups:"}
>
}
style={{backgroundColor: "#edf2f7",}}
/>
)
}
export default Groups;
const styles = StyleSheet.create({
container: {
padding: 5,
},
title: {
padding: 10,
paddingTop:5,
fontSize: 30,
marginTop: 15,
fontWeight: "bold",
color: "#777"
}
});