diff --git a/src/components/settings/web-service-settings.tsx b/src/components/settings/web-service-settings.tsx
index e50da91..a8e615b 100644
--- a/src/components/settings/web-service-settings.tsx
+++ b/src/components/settings/web-service-settings.tsx
@@ -1,23 +1,49 @@
"use client"
import { useCallback, useEffect, useState } from "react"
-import { Check, Copy, Eye, EyeOff } from "lucide-react"
+import { Check, Copy, ExternalLink, Eye, EyeOff } from "lucide-react"
import {
startWebServer,
stopWebServer,
getWebServerStatus,
type WebServerInfo,
} from "@/lib/api"
+import { openUrl } from "@/lib/platform"
-function CopyableCard({
- label,
- value,
- masked,
-}: {
- label: string
- value: string
- masked?: boolean
-}) {
+function AddressCard({ label, value }: { label: string; value: string }) {
+ const [hovered, setHovered] = useState(false)
+
+ return (
+
+
{label}
+
setHovered(true)}
+ onMouseLeave={() => setHovered(false)}
+ >
+
+ {value}
+
+
+
+
+
+
+ )
+}
+
+function TokenCard({ label, value }: { label: string; value: string }) {
const [hovered, setHovered] = useState(false)
const [copied, setCopied] = useState(false)
const [revealed, setRevealed] = useState(false)
@@ -28,10 +54,9 @@ function CopyableCard({
setTimeout(() => setCopied(false), 1500)
}
- const displayValue =
- masked && !revealed
- ? value.slice(0, 4) + "\u2022".repeat(Math.max(value.length - 4, 8))
- : value
+ const displayValue = revealed
+ ? value
+ : "\u2022".repeat(Math.max(value.length, 12))
return (
@@ -49,20 +74,18 @@ function CopyableCard({
hovered ? "opacity-100" : "opacity-0"
}`}
>
- {masked && (
-
- )}
+