From d467a55ace24a77a17080eefc6a3863e62176c79 Mon Sep 17 00:00:00 2001 From: Nick Pang Date: Wed, 23 Oct 2024 10:47:20 +1000 Subject: [PATCH] Changed as requested. Added return status code if fetch unsuccessfully. --- src/pages/index.tsx | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 0ebb1cca..bb93e6c1 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -44,12 +44,22 @@ const Home: NextPage = () => { try { const response = await fetch(dataFilePath, { signal }); if (!response.ok) { - throw new Error(`Error fetching data from ${dataFilePath}!`); + throw new Error( + `Error fetching data from ${dataFilePath}: ${response.status}` + ); } const data = await response.json(); setData(data); - } catch (error) { - console.error(error); + } catch (error: unknown) { + if (error instanceof Error) { + if (error.name === "AbortError") { + console.log(`Fetch aborted for ${dataFilePath}`); + } else { + console.error("Error: ", error); + } + } else { + console.error("Unknown error occurred: ", error); + } } }; @@ -58,17 +68,17 @@ const Home: NextPage = () => { const signal = controller.signal; // Initial fetch - const fetchAllData = async (signal: AbortSignal) => { - await fetchData("./status.json", signal, setStatusData); - await fetchData("./incidents.json", signal, setIncidentData); - await fetchData( + const fetchAllData = (signal: AbortSignal) => { + fetchData("./status.json", signal, setStatusData); + fetchData("./incidents.json", signal, setIncidentData); + fetchData( "./planned_maintenance.json", signal, setPlannedMaintenanceData ); }; - fetchAllData(signal).then(); + fetchAllData(signal); // Poll every 60 seconds const intervalId = setInterval(async () => {