From c4f075343f557f278b1bacb4b92891e646f8fb2a Mon Sep 17 00:00:00 2001 From: Michael Foiani Date: Tue, 20 Apr 2021 07:55:53 -0400 Subject: Finished up the front end functionality. Some issues with the backend (small NaN issues), and some elements need a little more love (styling) before demo. --- react-frontend/src/components/HubWidget.js | 69 +++++++++++++++++++++++++----- 1 file changed, 59 insertions(+), 10 deletions(-) (limited to 'react-frontend/src/components/HubWidget.js') diff --git a/react-frontend/src/components/HubWidget.js b/react-frontend/src/components/HubWidget.js index de0ae32..7a82c61 100644 --- a/react-frontend/src/components/HubWidget.js +++ b/react-frontend/src/components/HubWidget.js @@ -1,12 +1,11 @@ // React and component imports -import { useEffect, useState } from "react"; +import { useEffect, useState, useRef } from "react"; import Hub from "./Hub.js"; import InvestorInfo from "./InvestorInfo.js"; // CSS import import '../css/UserCheckin.css'; import HubList from "./HubList.js"; -import HubSearch from "./HubSearch.js"; /** * Component that build the checkin list and displays checkin info. @@ -14,20 +13,70 @@ import HubSearch from "./HubSearch.js"; * in a vertical layout. */ function HubWidget(props) { + // States for selected person + const [followers, setFollowers] = useState([]); + const [selectedName, setSelectedName] = useState([]); + + const [searching, setSearching] = useState(false); + const textInput = useRef(); + + const [showSelectedInfo, setShowSelectedInfo] = useState(false); + + const updateSelected = () => { + props.data.forEach(holder => { + if (holder.id === props.selectedId) { + console.log(holder); + setFollowers(holder.followers); + setSelectedName(holder.name); + } + }); + } + + // Don't need to fetch if repeat id... + const updateSelectedId = id => { + setShowSelectedInfo(true); + props.setSelectedId(id); + } + + // Hook to update and show the info when a user is clicked on ... + useEffect(() => { + updateSelected(); + }, [props.selectedId]); + // On init, don't show... + useEffect(() => setShowSelectedInfo(false), []); + + useEffect(() => { + if (searching) { + return; + } + textInput.current.value = ""; + setQueryString(""); + }, [searching]) + + const [queryString, setQueryString] = useState(""); + return ( <>
-

Suspicion Ranks

- +

+ + setQueryString(e.target.value)} placeholder="Search by name"> + setSearching(true)} src="assets/outline_search_white_18dp.png" alt="image"/> + setSearching(false)} src="assets/outline_cancel_white_18dp.png" alt="image"/> +

+
- +
- ); } -- cgit v1.2.3-70-g09d2