From e2ac6803be009de4cbbfb84e776b70f9b884e939 Mon Sep 17 00:00:00 2001
From: Mohammad Torkashvand <mohammad.torkashvand@geant.org>
Date: Tue, 4 Jun 2024 14:30:21 +0200
Subject: [PATCH] rfactor types

---
 components/NetworkMap/NetworkMap.tsx | 34 +---------------------------
 pages/maps/index.tsx                 | 34 +---------------------------
 types/types.ts                       | 32 ++++++++++++++++++++++++++
 3 files changed, 34 insertions(+), 66 deletions(-)
 create mode 100644 types/types.ts

diff --git a/components/NetworkMap/NetworkMap.tsx b/components/NetworkMap/NetworkMap.tsx
index 373271c..842f978 100644
--- a/components/NetworkMap/NetworkMap.tsx
+++ b/components/NetworkMap/NetworkMap.tsx
@@ -1,3 +1,4 @@
+import { NetworkTopologyData } from '@/types/types';
 import {
   EuiToolTip,
   EuiSelect,
@@ -11,39 +12,6 @@ import React, { useEffect, useState, useRef } from 'react';
 
 cytoscape.use(fcose);
 
-interface IptrunkSideNode {
-  subscription_instance_id: string;
-  router_fqdn: string;
-  router_access_via_ts: boolean;
-  router_lo_ipv4_address: string;
-  router_lo_ipv6_address: string;
-  router_lo_iso_address: string;
-  router_role: string;
-  vendor: string;
-  router_site: {
-    site_internal_id: string;
-    site_name: string;
-    site_city: string;
-    site_country: string;
-    site_latitude: number;
-    site_longitude: number;
-  };
-}
-
-interface Iptrunk {
-  subscription_instance_id: string;
-  iptrunk_isis_metric: string;
-  iptrunk_capacity: string;
-  iptrunk_type: string;
-  iptrunk_ipv4_network: string;
-  iptrunk_ipv6_network: string;
-  iptrunk_sides: Array<{ iptrunk_side_node: IptrunkSideNode }>;
-}
-
-interface NetworkTopologyData {
-  iptrunks: Array<{ iptrunk: Iptrunk; insync: boolean }>;
-}
-
 interface NetworkMapProps {
   data: NetworkTopologyData | null;
 }
diff --git a/pages/maps/index.tsx b/pages/maps/index.tsx
index d1b9b45..06cb76a 100644
--- a/pages/maps/index.tsx
+++ b/pages/maps/index.tsx
@@ -1,42 +1,10 @@
 import NetworkMap from '@/components/NetworkMap/NetworkMap';
+import { NetworkTopologyData } from '@/types/types';
 import axios from 'axios';
 import { NextPage, GetServerSideProps } from 'next';
 import Head from 'next/head';
 import React from 'react';
 
-interface IptrunkSideNode {
-  subscription_instance_id: string;
-  router_fqdn: string;
-  router_access_via_ts: boolean;
-  router_lo_ipv4_address: string;
-  router_lo_ipv6_address: string;
-  router_lo_iso_address: string;
-  router_role: string;
-  vendor: string;
-  router_site: {
-    site_internal_id: string;
-    site_name: string;
-    site_city: string;
-    site_country: string;
-    site_latitude: number;
-    site_longitude: number;
-  };
-}
-
-interface Iptrunk {
-  subscription_instance_id: string;
-  iptrunk_isis_metric: string;
-  iptrunk_capacity: string;
-  iptrunk_type: string;
-  iptrunk_ipv4_network: string;
-  iptrunk_ipv6_network: string;
-  iptrunk_sides: Array<{ iptrunk_side_node: IptrunkSideNode }>;
-}
-
-interface NetworkTopologyData {
-  iptrunks: Array<{ iptrunk: Iptrunk; insync: boolean }>;
-}
-
 interface MapsProps {
   networkTopologyData: NetworkTopologyData;
 }
diff --git a/types/types.ts b/types/types.ts
new file mode 100644
index 0000000..e62d6af
--- /dev/null
+++ b/types/types.ts
@@ -0,0 +1,32 @@
+export interface IptrunkSideNode {
+  subscription_instance_id: string;
+  router_fqdn: string;
+  router_access_via_ts: boolean;
+  router_lo_ipv4_address: string;
+  router_lo_ipv6_address: string;
+  router_lo_iso_address: string;
+  router_role: string;
+  vendor: string;
+  router_site: {
+    site_internal_id: string;
+    site_name: string;
+    site_city: string;
+    site_country: string;
+    site_latitude: number;
+    site_longitude: number;
+  };
+}
+
+export interface Iptrunk {
+  subscription_instance_id: string;
+  iptrunk_isis_metric: string;
+  iptrunk_capacity: string;
+  iptrunk_type: string;
+  iptrunk_ipv4_network: string;
+  iptrunk_ipv6_network: string;
+  iptrunk_sides: Array<{ iptrunk_side_node: IptrunkSideNode }>;
+}
+
+export interface NetworkTopologyData {
+  iptrunks: Array<{ iptrunk: Iptrunk; insync: boolean }>;
+}
-- 
GitLab