28 lines · 839 B · TypeScript
RawDownload
import type { ScopedThreadRef } from "@t3tools/contracts";import { DiscoveryListRow } from "../ui/discovery-list"; import { PreviewFaviconIcon } from "./PreviewFaviconIcon";import type { PreviewableServer } from "./useDiscoveredLocalServers"; interface Props {  threadRef: ScopedThreadRef;  server: PreviewableServer;  onOpen: () => void;} export function PreviewLocalServerCard({ threadRef, server, onOpen }: Props) {  const subtitle = describeServer(server);  return (    <DiscoveryListRow      onClick={onOpen}      icon={<PreviewFaviconIcon threadRef={threadRef} url={server.requestedUrl} />}      title={subtitle}      description={`${server.host}:${server.port}`}    />  );} function describeServer(server: PreviewableServer): string {  if (server.processName) return server.processName;  return "Listening";}