From bba707fa98cd23a5c82a52aa7c7bc194417658bf Mon Sep 17 00:00:00 2001 From: pacnpal <183241239+pacnpal@users.noreply.github.com> Date: Thu, 13 Feb 2025 10:29:57 -0500 Subject: [PATCH] Refactor search functionality: remove obsolete JavaScript and HTML templates; enhance error handling and response rendering for park search results --- parks/static/parks/css/search.css | 36 ++++++++- parks/static/parks/js/search.js | 28 ------- parks/templates/parks/park_list.html | 50 ++++++++++-- .../parks/partials/park_list_item.html | 78 +++++++++++++++++++ .../parks/partials/park_search_results.html | 58 -------------- parks/views.py | 15 ++-- .../search/partials/park_results.html | 72 ----------------- 7 files changed, 164 insertions(+), 173 deletions(-) delete mode 100644 parks/static/parks/js/search.js create mode 100644 parks/templates/parks/partials/park_list_item.html delete mode 100644 parks/templates/parks/partials/park_search_results.html delete mode 100644 search/templates/search/partials/park_results.html diff --git a/parks/static/parks/css/search.css b/parks/static/parks/css/search.css index 250a8745..15cfba9a 100644 --- a/parks/static/parks/css/search.css +++ b/parks/static/parks/css/search.css @@ -1,21 +1,47 @@ /* Loading indicator */ .htmx-indicator { opacity: 0; + transition: opacity 200ms ease-in-out; } .htmx-request .htmx-indicator { opacity: 1; } -/* Search results spacing */ +/* Search results container */ #search-results { margin-top: 0.5rem; + border: 1px solid #e5e7eb; + border-radius: 0.5rem; + background-color: white; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); + max-height: 400px; + overflow-y: auto; +} + +#search-results:empty { + display: none; +} + +/* Search result items */ +#search-results .border-b { + border-color: #e5e7eb; +} + +#search-results a { + display: block; + transition: background-color 150ms ease-in-out; +} + +#search-results a:hover { + background-color: #f3f4f6; } /* Dark mode adjustments */ @media (prefers-color-scheme: dark) { - #search-results .bg-white { + #search-results { background-color: #1f2937; + border-color: #374151; } #search-results .text-gray-900 { @@ -26,7 +52,11 @@ color: #9ca3af; } - #search-results .hover\:bg-gray-50:hover { + #search-results .border-b { + border-color: #374151; + } + + #search-results a:hover { background-color: #374151; } } \ No newline at end of file diff --git a/parks/static/parks/js/search.js b/parks/static/parks/js/search.js deleted file mode 100644 index f022966e..00000000 --- a/parks/static/parks/js/search.js +++ /dev/null @@ -1,28 +0,0 @@ -document.addEventListener('DOMContentLoaded', function() { - const searchInput = document.getElementById('search'); - const searchResults = document.getElementById('search-results'); - - if (!searchInput || !searchResults) return; - - // Clear search results when clicking outside - document.addEventListener('click', function(e) { - if (!searchResults.contains(e.target) && e.target !== searchInput) { - searchResults.innerHTML = ''; - } - }); - - // Clear results on escape key - searchInput.addEventListener('keydown', function(e) { - if (e.key === 'Escape') { - searchResults.innerHTML = ''; - searchInput.value = ''; - searchInput.blur(); - } - }); - - // Handle back button - window.addEventListener('popstate', function() { - searchResults.innerHTML = ''; - searchInput.value = ''; - }); -}); \ No newline at end of file diff --git a/parks/templates/parks/park_list.html b/parks/templates/parks/park_list.html index 1606969a..05be74c4 100644 --- a/parks/templates/parks/park_list.html +++ b/parks/templates/parks/park_list.html @@ -38,19 +38,54 @@ Browse and filter amusement parks, theme parks, and water parks from around the
No parks found matching your search.
-