"use client"; import { useMemo, useState } from "react"; import useSWR from "swr"; import Map from "@components/Map"; import Sidebar from "@components/Sidebar"; import { createPoster } from "@utils/axiosHelpers"; import { Earthquake } from "@prismaclient"; import { getRelativeDate } from "@utils/formatters"; import GeologicalEvent from "@appTypes/Event"; export default function Earthquakes() { const [selectedEventId, setSelectedEventId] = useState(""); const [hoveredEventId, setHoveredEventId] = useState(""); // todo properly integrate loading const { data, error, isLoading } = useSWR("/api/earthquakes", createPoster({ rangeDaysPrev: 5 })); const earthquakeEvents = useMemo( () => data && data.earthquakes ? data.earthquakes .map( (x: Earthquake): GeologicalEvent => ({ id: x.code, title: `Earthquake in ${x.code.split("-")[2]}`, magnitude: x.magnitude, longitude: x.longitude, latitude: x.latitude, text1: "", text2: getRelativeDate(x.date), date: x.date, }) ) .sort((a: GeologicalEvent, b: GeologicalEvent) => new Date(b.date).getTime() - new Date(a.date).getTime()) // Remove Date conversion : [], [data] ); return (
); }