// Copyright (c) Tailscale Inc & AUTHORS // SPDX-License-Identifier: BSD-3-Clause import cx from "classnames" import React from "react" import { ReactComponent as ArrowRight } from "src/assets/icons/arrow-right.svg" import { ReactComponent as ConnectedDeviceIcon } from "src/assets/icons/connected-device.svg" import ExitNodeSelector from "src/components/exit-node-selector" import { NodeData, NodeUpdaters } from "src/hooks/node-data" import { Link } from "wouter" export default function HomeView({ readonly, node, nodeUpdaters, }: { readonly: boolean node: NodeData nodeUpdaters: NodeUpdaters }) { return (

This device

{node.DeviceName}

{/* TODO(sonia): display actual status */}

Connected

{node.IP}

{(node.Features["advertise-exit-node"] || node.Features["use-exit-node"]) && ( )} View device details →

Settings

{node.Features["advertise-routes"] && ( )} {node.Features["ssh"] && ( , } : undefined } /> )} {/* TODO(sonia,will): hiding unimplemented settings pages until implemented */} {/* */}
) } function SettingsCard({ title, link, body, badge, className, }: { title: string link: string body: string badge?: { text: string icon?: JSX.Element } className?: string }) { return (

{title}

{badge && (
{badge.icon}
{badge.text}
)}

{body}

) }