diff --git a/app/types.ts b/app/types.ts new file mode 100644 index 0000000..c08d69d --- /dev/null +++ b/app/types.ts @@ -0,0 +1,14 @@ +export interface Site { + id: string; + name: string; + description: string; + networks: Network[]; +} + +export interface Network { + id: string; + name: string; + ipv4Subnet?: string; + ipv6Subnet?: string; + gateway?: string; +} \ No newline at end of file diff --git a/components/cards/Sites.tsx b/components/cards/Sites.tsx index 230bcbc..d9a7141 100644 --- a/components/cards/Sites.tsx +++ b/components/cards/Sites.tsx @@ -1,22 +1,8 @@ "use client" import { useRouter } from "next/navigation"; +import { Site } from "@/app/types"; -interface SitesProps { - id: string; - name: string; - description: string; - networks: Network[]; -} - -interface Network { - id: number; - name: string; - ipv4Subnet?: string; - ipv6Subnet?: string; - gateway?: string; -} - -export default function Sites({ id, name, description, networks }: SitesProps) { +export default function Sites({ id, name, description, networks }: Site) { const router = useRouter(); return (
diff --git a/hooks/useNetworks.ts b/hooks/useNetworks.ts index 1abda76..a60d2df 100644 --- a/hooks/useNetworks.ts +++ b/hooks/useNetworks.ts @@ -1,21 +1,14 @@ import { useState, useEffect, useCallback } from "react"; import axios from "axios"; - -interface AddNetwork { - siteId: number; - name: string; - ipv4Subnet: string; - ipv6Subnet: string; - gateway: string; -} +import { Network } from "@/app/types"; const useNetworks = () => { - const addNetwork = (network: AddNetwork) => { + const addNetwork = (network: Network) => { axios.post('/api/sites/networks/add', network); }; - const deleteNetwork = (networkId: number) => { + const deleteNetwork = (networkId: string) => { axios.delete('/api/sites/networks/delete', { params: { networkId } }); diff --git a/hooks/useSite.ts b/hooks/useSite.ts index c641269..99ded96 100644 --- a/hooks/useSite.ts +++ b/hooks/useSite.ts @@ -1,24 +1,10 @@ import { useState, useEffect, useCallback } from "react"; import axios from "axios"; - -interface Network { - id?: number; - name: string; - ipv4Subnet?: string; - ipv6Subnet?: string; - gateway?: string; -} - -interface Site { - id: number; - name: string; - description: string; - networks: Network[]; -} +import { Site } from "@/app/types"; const useSite = () => { const [site, setSite] = useState({ - id: 0, + id: "", name: "", description: "", networks: []