// Copyright (c) Tailscale Inc & contributors // SPDX-License-Identifier: BSD-3-Clause import cx from "classnames" import React, { useMemo } from "react" import { apiFetch } from "src/api" import ArrowRight from "src/assets/icons/arrow-right.svg?react" import Machine from "src/assets/icons/machine.svg?react" import AddressCard from "src/components/address-copy-card" import ExitNodeSelector from "src/components/exit-node-selector" import { AuthResponse, canEdit } from "src/hooks/auth" import { NodeData } from "src/types" import Card from "src/ui/card" import { pluralize } from "src/utils/util" import { Link, useLocation } from "wouter" export default function HomeView({ node, auth, }: { node: NodeData auth: AuthResponse }) { const [allSubnetRoutes, pendingSubnetRoutes] = useMemo( () => [ node.AdvertisedRoutes?.length, node.AdvertisedRoutes?.filter((r) => !r.Approved).length, ], [node.AdvertisedRoutes] ) return (
{node.Status === "Running" ? "Connected" : "Offline"}