diff --git a/src/app/context/AppContext.tsx b/src/app/context/AppContext.tsx index 189499d..485a122 100644 --- a/src/app/context/AppContext.tsx +++ b/src/app/context/AppContext.tsx @@ -1,14 +1,14 @@ "use client" import { createContext, useEffect, useState } from "react"; import TabData from "../interface/TabData"; -import AppContextInterface from "../interface/AppContextInterface"; +import AppContextInterface, { SiteData } from "../interface/AppContextInterface"; export const AppContext = createContext({} as AppContextInterface); export const AppContextProvider = ({ children }: { children: React.ReactNode }) => { const [tabs, setTabs] = useState([]); - const [data, setData] = useState(); + const [data, setData] = useState({} as SiteData); const [loading, setLoading] = useState(true); useEffect(() => { @@ -22,9 +22,9 @@ export const AppContextProvider = ({ children }: { children: React.ReactNode }) const res = await fetch("/data.json", { signal }); const data = await res.json(); setData(data); - } catch(err: any) { - setData({}) - if (err.name === 'AbortError') { + } catch(err) { + setData({} as SiteData) + if ((err as Error).name === 'AbortError') { console.log('Fetch aborted'); } else { console.log(err); diff --git a/src/app/interface/AppContextInterface.ts b/src/app/interface/AppContextInterface.ts index a7eeac1..5ae2f6e 100644 --- a/src/app/interface/AppContextInterface.ts +++ b/src/app/interface/AppContextInterface.ts @@ -1,23 +1,23 @@ import { Dispatch, SetStateAction } from "react"; import TabData from "./TabData"; -interface MemberData { +export interface MemberData { id: number; name: string; username: string; about: string; link: string; } - +export interface SiteData { + members: MemberData[] +} // interface BlogData {} // interface EventData {} export default interface AppContextInterface { tabs: TabData[], setTabs: Dispatch>, - data: { - members: MemberData[] - }, + data: SiteData, loading: boolean, setLoading: Dispatch>, } \ No newline at end of file