import React, { useEffect, useState } from 'react'; import * as BS from 'react-bootstrap' import MemberCard from './MemberCard.js' import Loading from "./Loading.js"; import API_URL from "../Constants/constants.js"; export default function Memberlist() { const user = JSON.parse(localStorage.getItem('user')); const userId = user.id; const [isLoading, setIsLoading ] = useState(false); const [isError, setIsError ] = useState(false); const [members, setMembers ] = useState([]); const [value, setValue] = useState('') useEffect(() => { setIsLoading(true); setIsError(false); fetch(`${API_URL}s/${userId}/members`,{ method: 'get', headers: { 'Authorization': JSON.stringify(localStorage.getItem("token")).slice(1, -1) }}).then ( res => res.json() ).then (data => { setMembers(data); setIsLoading(false); }) .catch (error => { console.log(error); setIsError(true); setIsLoading(false); }) }, [userId]) const memberList = members.filter(member => { if (!value) return true; if (member.name.toLowerCase().includes(value.toLowerCase())) { return true; } return false; }).sort((a, b) => a.name.localeCompare(b.name)).map((member) => ); return ( <> { isLoading ? : isError ? Error fetching members. : <> setValue(e.target.value)} placeholder="Search"/> {memberList} } ) }