// React and component imports
import { useEffect, useState } from "react";
import InvestorInfo from "./InvestorInfo.js";
// CSS import
import '../css/UserCheckin.css';
import Hub from "./HubList.js";
import Search from "./Search.js";
/**
* Component that build the checkin list and displays checkin info.
* @returns {import('react').HtmlHTMLAttributes} A div with the hubs
* in a vertical layout.
*/
function Search(props) {
const [queryString, setQueryString] = useState("");
const [displayedItems, setDisplayedItems] = useState([]);
/**
* Method that determines whehter the Hub should be showed.
* @returns {Boolean} True if to be shown, false if not.
*/
const toInclude = (holder) => {
// TODO: add number search or differentiate between it
// TODO: add sus score range....
const matchingId = queryString.toLowerCase().includes(holder?.id ?? "");
const matchingName = queryString.toLowerCase().includes(holder?.name ?? "");
return matchingId || matchingName;
}
/**
* Filters the items to be shown, then created the iteams and sets the state with the items.
*/
const filterItems = () => {
const criteria = props.data.filter(holder => toInclude(holder));
setDisplayedItems(criteria.map(hub =>