@@ -23,6 +23,7 @@ import Separator from "@components/Separator";
2323import FullScreenLoading from "@components/ui/FullScreenLoading" ;
2424import LoginExpiredBadge from "@components/ui/LoginExpiredBadge" ;
2525import TextWithTooltip from "@components/ui/TextWithTooltip" ;
26+ import { getOperatingSystem } from "@hooks/useOperatingSystem" ;
2627import useRedirect from "@hooks/useRedirect" ;
2728import { IconCloudLock , IconInfoCircle } from "@tabler/icons-react" ;
2829import useFetchApi from "@utils/api" ;
@@ -54,15 +55,12 @@ import PeerProvider, { usePeer } from "@/contexts/PeerProvider";
5455import RoutesProvider from "@/contexts/RoutesProvider" ;
5556import { useLoggedInUser } from "@/contexts/UsersProvider" ;
5657import { useHasChanges } from "@/hooks/useHasChanges" ;
57- import { getOperatingSystem } from "@/hooks/useOperatingSystem" ;
5858import { OperatingSystem } from "@/interfaces/OperatingSystem" ;
5959import type { Peer } from "@/interfaces/Peer" ;
6060import PageContainer from "@/layouts/PageContainer" ;
61- import { AddExitNodeButton } from "@/modules/exit-node/AddExitNodeButton" ;
62- import { useHasExitNodes } from "@/modules/exit-node/useHasExitNodes" ;
6361import useGroupHelper from "@/modules/groups/useGroupHelper" ;
64- import AddRouteDropdownButton from "@/modules/peer/AddRouteDropdownButton " ;
65- import PeerRoutesTable from "@/modules/peer/PeerRoutesTable " ;
62+ import { AccessiblePeersSection } from "@/modules/peer/AccessiblePeersSection " ;
63+ import { PeerNetworkRoutesSection } from "@/modules/peer/PeerNetworkRoutesSection " ;
6664
6765export default function PeerPage ( ) {
6866 const queryParameter = useSearchParams ( ) ;
@@ -72,7 +70,7 @@ export default function PeerPage() {
7270 useRedirect ( "/peers" , false , ! peerId ) ;
7371
7472 return peer && ! isLoading ? (
75- < PeerProvider peer = { peer } >
73+ < PeerProvider peer = { peer } key = { peerId } >
7674 < PeerOverview />
7775 </ PeerProvider >
7876 ) : (
@@ -133,7 +131,6 @@ function PeerOverview() {
133131 } ;
134132
135133 const { isUser } = useLoggedInUser ( ) ;
136- const hasExitNodes = useHasExitNodes ( peer ) ;
137134
138135 return (
139136 < PageContainer >
@@ -336,30 +333,19 @@ function PeerOverview() {
336333 </ div >
337334 </ div >
338335
339- < Separator />
340-
341336 { isLinux && ! isUser ? (
342- < div className = { "px-8 py-6" } >
343- < div className = { "max-w-6xl" } >
344- < div className = { "flex justify-between items-center" } >
345- < div >
346- < h2 > Network Routes</ h2 >
347- < Paragraph >
348- Access other networks without installing NetBird on every
349- resource.
350- </ Paragraph >
351- </ div >
352- < div className = { "inline-flex gap-4 justify-end" } >
353- < div className = { "gap-4 flex" } >
354- < AddExitNodeButton peer = { peer } firstTime = { ! hasExitNodes } />
355- < AddRouteDropdownButton />
356- </ div >
357- </ div >
358- </ div >
359- < PeerRoutesTable peer = { peer } />
360- </ div >
361- </ div >
337+ < >
338+ < Separator />
339+ < PeerNetworkRoutesSection peer = { peer } />
340+ </ >
362341 ) : null }
342+
343+ { peer ?. id && (
344+ < >
345+ < Separator />
346+ < AccessiblePeersSection peerID = { peer . id } />
347+ </ >
348+ ) }
363349 </ RoutesProvider >
364350 </ PageContainer >
365351 ) ;
0 commit comments