Skip to content
Snippets Groups Projects
index.tsx 1.14 KiB
import NetworkMap from '@/components/NetworkMap/NetworkMap';
import { GSOPolicyResource } from '@/types/policyResources';
import { NetworkTopologyData } from '@/types/types';
import { WfoPolicyRenderPageFallback } from '@orchestrator-ui/orchestrator-ui-components';
import axios from 'axios';
import { NextPage, GetServerSideProps } from 'next';
import React from 'react';

interface MapsProps {
  networkTopologyData: NetworkTopologyData;
}

const MapsPage: NextPage<MapsProps> = ({ networkTopologyData }) => {
  return (
    <WfoPolicyRenderPageFallback resource={GSOPolicyResource.NAVIGATION_MAPS}>
      <NetworkMap data={networkTopologyData} />
    </WfoPolicyRenderPageFallback>
  );
};

export const getServerSideProps: GetServerSideProps = async () => {
  try {
    const response = await axios.get(process.env.NETWORK_TOPOLOGY_API_URL!);
    const networkTopologyData: NetworkTopologyData = response.data;

    return {
      props: {
        networkTopologyData,
      },
    };
  } catch (error) {
    console.error('Failed to fetch data', error);
    return {
      props: {
        networkTopologyData: null,
      },
    };
  }
};

export default MapsPage;