From ccb8c4d11056d61860b73278b490efa65816997b Mon Sep 17 00:00:00 2001 From: erinz2020 Date: Fri, 31 Jan 2025 19:28:08 +0000 Subject: [PATCH] separate jsp and css --- .../components/header/HeaderQuickSearch.jsx | 30 +++++-- frontend/src/css/dropdown.css | 6 ++ src/main/webapp/css/header.css | 89 +++++++++++++++++++ src/main/webapp/header.jsp | 69 +++++++------- 4 files changed, 150 insertions(+), 44 deletions(-) diff --git a/frontend/src/components/header/HeaderQuickSearch.jsx b/frontend/src/components/header/HeaderQuickSearch.jsx index f9addba82d..d88bca05d4 100644 --- a/frontend/src/components/header/HeaderQuickSearch.jsx +++ b/frontend/src/components/header/HeaderQuickSearch.jsx @@ -1,13 +1,16 @@ import React, { useState } from "react"; -import { Col, Dropdown, FormControl } from "react-bootstrap"; +import { Dropdown, FormControl } from "react-bootstrap"; import MainButton from "../MainButton"; import { FormattedMessage } from "react-intl"; import ThemeColorContext from "../../ThemeColorProvider"; +import { useNavigate } from "react-router-dom"; export default function HeaderQuickSearch() { const [search, setSearch] = useState(""); + const navigate = useNavigate(); const [searchResults, setSearchResults] = useState([{ + uuid: "5a746580-df85-40cd-976f-ae0d53155ec4", name: "5a746580-df85-40cd-976f-ae0d53155ec4", species: "Species 1", }, { @@ -16,22 +19,22 @@ export default function HeaderQuickSearch() { }, { name: "Name 3", species: "Species 3", - },{ + }, { name: "Name 3", species: "Species 3", - },{ + }, { name: "Name 3", species: "Species 3", - },{ + }, { name: "Name 3", species: "Species 3", - },{ + }, { name: "Name 3", species: "Species 3", - },{ + }, { name: "Name 3", species: "Species 3", - },{ + }, { name: "Name 3", species: "Species 3", }, @@ -40,7 +43,7 @@ export default function HeaderQuickSearch() { species: "Species 3", }, -]); + ]); const [showDropdown, setShowDropdown] = useState(false); const theme = React.useContext(ThemeColorContext); @@ -99,7 +102,16 @@ export default function HeaderQuickSearch() { maxHeight: "400px", }}> {searchResults.map((result, index) => ( - + { + e.preventDefault(); + console.log("clicked", result); + navigate(`/individuals&id=${result.uuid || result.id}`); + }} + >
0) { - + console.log("Query: ", query); //$.ajax({ //url: wildbookGlobals.baseUrl + '../quickSearch', @@ -315,33 +317,39 @@ if(request.getUserPrincipal()!=null){ context: "Context 5", }, ]; - resultsDropdown.innerHTML = datas.map(data => { - const { id, value, species, context } = data; - console.log("value: ", JSON.stringify(value)); - return '' + - '
' + - '
' + - '
'+ data.value +'
' + - '
'+ data.species +'
' + - '
'+ data.context +'
' + - '
' ; - }).join(""); - } else { - resultsDropdown.innerHTML = "Your search results will appear here."; - } - + + if(datas.length > 0) { + resultsDropdown.innerHTML = datas.map(data => { + const { id, value, species, context } = data; + console.log("value: ", JSON.stringify(value)); + return '' + + '
' + + '
' + + '
'+ data.value +'
' + + '
'+ data.species +'
' + + '
'+ data.context +'
' + + '
' ; + }).join(""); + } + else { + resultsDropdown.innerHTML = "No matching results."; + } }); // Event listener for close button closeButton.addEventListener("click", function() { searchInput.value = ""; - resultsDropdown.innerHTML = ""; + resultsDropdown.style.display = "none"; }); // Event listener to close dropdown when clicking outside document.addEventListener("click", function(event) { - if (!event.target.closest(".search-wrapper")) { - resultsDropdown.innerHTML = ""; + const searchInput = document.getElementById("quick-search-input"); + const resultsDropdown = document.getElementById("quick-search-results"); + + if (!searchInput.contains(event.target) && !resultsDropdown.contains(event.target)) { + resultsDropdown.style.display = "none"; + searchInput.value = ""; } }); }); @@ -654,26 +662,17 @@ if(request.getUserPrincipal()!=null){ <% if(user != null && !loggingOut){ %> -
-