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" && ( + + )} +
+
-
+ ) ) : ( <> )}