From 348d40d7fd9b453a5ba1e74de165909e5db4b37a Mon Sep 17 00:00:00 2001
From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
Date: Fri, 31 Oct 2025 08:13:54 -0500
Subject: [PATCH] reusable tabs component
---
.../overlay/detail/SearchDetailDialog.tsx | 242 ++++++++----------
1 file changed, 110 insertions(+), 132 deletions(-)
diff --git a/web/src/components/overlay/detail/SearchDetailDialog.tsx b/web/src/components/overlay/detail/SearchDetailDialog.tsx
index d3815d11f..c38c184af 100644
--- a/web/src/components/overlay/detail/SearchDetailDialog.tsx
+++ b/web/src/components/overlay/detail/SearchDetailDialog.tsx
@@ -119,12 +119,6 @@ export default function SearchDetailDialog({
100,
);
- // tracking details state
-
- const [trackingTimeIndex, setTrackingTimeIndex] = useState<
- number | undefined
- >(undefined);
-
// dialog and mobile page
const [isOpen, setIsOpen] = useState(search != undefined);
@@ -184,6 +178,42 @@ export default function SearchDetailDialog({
}
}, [pageToggle, searchTabs, setSearchPage]);
+ // Tabs component for reuse
+ const tabsComponent = (
+
+
+
{
+ if (value) {
+ setPageToggle(value);
+ }
+ }}
+ >
+ {Object.values(searchTabs).map((item) => (
+
+ {item == "details" && }
+ {item == "snapshot" && }
+ {item == "video" && }
+ {item == "tracking_details" && }
+ {t(`type.${item}`)}
+
+ ))}
+
+
+
+
+ );
+
if (!search) {
return;
}
@@ -220,136 +250,88 @@ export default function SearchDetailDialog({
{isDesktop ? (
-
-
- {page === "snapshot" && search.has_snapshot && (
-
{
- search.plus_id = "new_upload";
- }}
- />
- )}
- {page === "video" && search.has_clip && (
-
- )}
- {page === "tracking_details" && (
-
- )}
- {(page === "details" ||
- (!search.has_snapshot && page === "snapshot") ||
- (!search.has_clip && page === "video")) && (
-
- )}
-
-
-
-
-
{
- if (value) {
- setPageToggle(value);
- }
+ page === "tracking_details" ? (
+
+ ) : (
+
+
+ {page === "snapshot" && search.has_snapshot && (
+
{
+ search.plus_id = "new_upload";
}}
- >
- {Object.values(searchTabs).map((item) => (
-
- {item == "details" && (
-
- )}
- {item == "snapshot" && }
- {item == "video" && }
- {item == "tracking_details" && (
-
- )}
-
- {t(`type.${item}`)}
-
-
- ))}
-
-
-
-
-
- {page == "details" && (
-
)}
- {page == "snapshot" && (
-
+ {page === "video" && search.has_clip && (
+
)}
- {page == "video" && (
-
- )}
- {page == "tracking_details" && (
-
)}
+
+ {tabsComponent}
+
+ {page == "details" && (
+
+ )}
+ {page == "snapshot" && (
+
+ )}
+ {page == "video" && (
+
+ )}
+
+
-
+ )
) : (
<>
)}
>