From 5ec9a8a07a56a236385bcda54e65e467a6dca771 Mon Sep 17 00:00:00 2001
From: Noah Hernandez <63211322+oahnh@users.noreply.github.com>
Date: Sat, 2 Dec 2023 15:36:55 -0800
Subject: [PATCH] feat(map): adds preview component, updates UI
---
src/app/siteMapPage/page.tsx | 28 ++--
.../FilterButton/FilterButton.tsx | 21 ++-
.../userComponents/SiteMap/Control.tsx | 85 +++++++++++
.../SiteMap/DisplayPreviewCard.tsx | 102 +++++++++++++
.../userComponents/SiteMap/SiteMap.tsx | 124 +++++++++++-----
src/supabase/media/queries.ts | 22 +++
src/supabase/tours/queries.tsx | 14 ++
src/types/supabase.ts | 137 +++++++++++++++++-
8 files changed, 476 insertions(+), 57 deletions(-)
create mode 100644 src/components/userComponents/SiteMap/Control.tsx
create mode 100644 src/components/userComponents/SiteMap/DisplayPreviewCard.tsx
diff --git a/src/app/siteMapPage/page.tsx b/src/app/siteMapPage/page.tsx
index f12e594d..6c3e9b6a 100644
--- a/src/app/siteMapPage/page.tsx
+++ b/src/app/siteMapPage/page.tsx
@@ -19,23 +19,33 @@ const SiteMap = dynamic(
},
);
+
+
/**
* @returns Page for the interactive map
*/
function MapPage() {
+
+ // move tour logic here: need to share state between filter
+ const handleFilter = () => {};
+
+ const renderFilterContainer = () => (
+
+
FILTER BY
+
+ {filterButtonContent &&
+ filterButtonContent.map(text => (
+
+ ))}
+
+
+ );
+
return (
<>
-
-
Site Map
-
- {filterButtonContent &&
- filterButtonContent.map(text => (
-
- ))}
-
-
+ {renderFilterContainer()}
diff --git a/src/components/userComponents/FilterButton/FilterButton.tsx b/src/components/userComponents/FilterButton/FilterButton.tsx
index cd304413..019ca7e9 100644
--- a/src/components/userComponents/FilterButton/FilterButton.tsx
+++ b/src/components/userComponents/FilterButton/FilterButton.tsx
@@ -5,11 +5,22 @@ interface FilterButtonProps {
onClick?: () => void;
}
-function FilterButton({ content, ...children }: FilterButtonProps) {
+/**
+ *
+ * @param onClick.content
+ * @param onClick function to handle the functionality we want to tie to our filter buttons
+ * @param content is the content to be rendered in the button
+ * @param root0.onClick
+ * @param onClick.onClick
+ */
+function FilterButton({ content, onClick, ...children }: FilterButtonProps) {
const [isSelected, setIsSelected] = useState
(false);
- const defaultStyle = 'bg-[#4b711d]/[0.13] text-[#4B711D] border-[#547829]';
- const selectedStyle = 'bg-[#547829] text-white border-[#547829]';
+ const selectedStyle = 'bg-[#7ca24e]/[0.3]';
+
+ const buttonClass = `py-2 px-4 rounded-2xl whitespace-nowrap border-[0.8px] border-[#386131] border-solid flex-nowrap text-[#386131] ${
+ isSelected ? selectedStyle : ''
+ }`;
const handleClick = () => {
setIsSelected(!isSelected);
@@ -18,9 +29,7 @@ function FilterButton({ content, ...children }: FilterButtonProps) {
return (