@@ -23,6 +23,7 @@ import Separator from "@components/Separator";
23
23
import FullScreenLoading from "@components/ui/FullScreenLoading" ;
24
24
import LoginExpiredBadge from "@components/ui/LoginExpiredBadge" ;
25
25
import TextWithTooltip from "@components/ui/TextWithTooltip" ;
26
+ import { getOperatingSystem } from "@hooks/useOperatingSystem" ;
26
27
import useRedirect from "@hooks/useRedirect" ;
27
28
import { IconCloudLock , IconInfoCircle } from "@tabler/icons-react" ;
28
29
import useFetchApi from "@utils/api" ;
@@ -54,15 +55,12 @@ import PeerProvider, { usePeer } from "@/contexts/PeerProvider";
54
55
import RoutesProvider from "@/contexts/RoutesProvider" ;
55
56
import { useLoggedInUser } from "@/contexts/UsersProvider" ;
56
57
import { useHasChanges } from "@/hooks/useHasChanges" ;
57
- import { getOperatingSystem } from "@/hooks/useOperatingSystem" ;
58
58
import { OperatingSystem } from "@/interfaces/OperatingSystem" ;
59
59
import type { Peer } from "@/interfaces/Peer" ;
60
60
import PageContainer from "@/layouts/PageContainer" ;
61
- import { AddExitNodeButton } from "@/modules/exit-node/AddExitNodeButton" ;
62
- import { useHasExitNodes } from "@/modules/exit-node/useHasExitNodes" ;
63
61
import 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 " ;
66
64
67
65
export default function PeerPage ( ) {
68
66
const queryParameter = useSearchParams ( ) ;
@@ -72,7 +70,7 @@ export default function PeerPage() {
72
70
useRedirect ( "/peers" , false , ! peerId ) ;
73
71
74
72
return peer && ! isLoading ? (
75
- < PeerProvider peer = { peer } >
73
+ < PeerProvider peer = { peer } key = { peerId } >
76
74
< PeerOverview />
77
75
</ PeerProvider >
78
76
) : (
@@ -133,7 +131,6 @@ function PeerOverview() {
133
131
} ;
134
132
135
133
const { isUser } = useLoggedInUser ( ) ;
136
- const hasExitNodes = useHasExitNodes ( peer ) ;
137
134
138
135
return (
139
136
< PageContainer >
@@ -336,30 +333,19 @@ function PeerOverview() {
336
333
</ div >
337
334
</ div >
338
335
339
- < Separator />
340
-
341
336
{ 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
+ </ >
362
341
) : null }
342
+
343
+ { peer ?. id && (
344
+ < >
345
+ < Separator />
346
+ < AccessiblePeersSection peerID = { peer . id } />
347
+ </ >
348
+ ) }
363
349
</ RoutesProvider >
364
350
</ PageContainer >
365
351
) ;
0 commit comments