diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx index 27f5c22..c5baa1d 100644 --- a/src/components/Sidebar.tsx +++ b/src/components/Sidebar.tsx @@ -1,124 +1,128 @@ import React, { Dispatch, SetStateAction, useEffect, useRef } from "react"; import { TbHexagon } from "react-icons/tb"; -import GeologicalEvent from "@appTypes/Event"; +import GeologicalEvent from "@appTypes/GeologicalEvent"; import getMagnitudeColor from "@utils/getMagnitudeColour"; interface SidebarProps { - logTitle: string; - logSubtitle: string; - recentsTitle: string; - events: GeologicalEvent[]; - selectedEventId: GeologicalEvent["id"]; - setSelectedEventId: Dispatch>; - hoveredEventId: GeologicalEvent["id"]; - setHoveredEventId: Dispatch>; - button1Name: string; - button2Name: string; - onButton2Click?: () => void; - onButton1Click?: () => void; - button1Disabled?: boolean; + logTitle: string; + logSubtitle: string; + recentsTitle: string; + events: GeologicalEvent[]; + selectedEventId: GeologicalEvent["id"]; + setSelectedEventId: Dispatch>; + hoveredEventId: GeologicalEvent["id"]; + setHoveredEventId: Dispatch>; + button1Name: string; + button2Name: string; + onButton2Click?: () => void; + onButton1Click?: () => void; + button1Disabled?: boolean; } function MagnitudeNumber({ magnitude }: { magnitude: number }) { - const magnitudeStr = magnitude.toFixed(1); - const [whole, decimal] = magnitudeStr.split("."); - return ( -
- -
-
- {whole} - . - {decimal} -
-
-
- ); + const magnitudeStr = magnitude.toFixed(1); + const [whole, decimal] = magnitudeStr.split("."); + return ( +
+ +
+
+ {whole} + . + {decimal} +
+
+
+ ); } export default function Sidebar({ - logTitle, - logSubtitle, - recentsTitle, - events, - selectedEventId, - setSelectedEventId, - hoveredEventId, - setHoveredEventId, - button1Name, - button2Name, - onButton2Click, - onButton1Click, - button1Disabled = false, + logTitle, + logSubtitle, + recentsTitle, + events, + selectedEventId, + setSelectedEventId, + hoveredEventId, + setHoveredEventId, + button1Name, + button2Name, + onButton2Click, + onButton1Click, + button1Disabled = false, }: SidebarProps) { - const eventsContainerRef = useRef(null); - useEffect(() => { - if (selectedEventId && eventsContainerRef.current) { - const selectedEventElement = eventsContainerRef.current.querySelector(`[data-event-id="${selectedEventId}"]`); - if (selectedEventElement) { - selectedEventElement.scrollIntoView({ - block: "center", - behavior: "smooth", - }); - } - } - }, [selectedEventId]); + const eventsContainerRef = useRef(null); + useEffect(() => { + if (selectedEventId && eventsContainerRef.current) { + const selectedEventElement = eventsContainerRef.current.querySelector(`[data-event-id="${selectedEventId}"]`); + if (selectedEventElement) { + selectedEventElement.scrollIntoView({ + block: "center", + behavior: "smooth", + }); + } + } + }, [selectedEventId]); - return ( -
-
-
-

{logTitle}

-

{logSubtitle}

- - -
-
-

{recentsTitle}

-
-
-
- {events.map((event) => ( - - ))} -
-
-
-
- ); -} \ No newline at end of file + return ( +
+
+
+

{logTitle}

+

{logSubtitle}

+ + +
+
+

{recentsTitle}

+
+
+
+ {events.map((event) => ( + + ))} +
+
+
+
+ ); +}