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: []