feat(ssr): render Gosuda badge conditionally in SSR view based on lease metadata hide field
sinwoojin committed
Nov 14, 2025 at 15:34 UTC
e8c4b9dbec2cecf5a040fe3bb486f629bc1992e1
3 files changed
+6
-29
cmd/relay-server/static/app.js
-28
@@ -1,28 +0,0 @@
1
-document.addEventListener("DOMContentLoaded", fetchAndRenderLeases);
2
-
3
-async function fetchAndRenderLeases() {
4
- try {
5
- const res = await fetch("/api/leases");
6
- const data = await res.json();
7
- renderLeaseList(data);
8
- } catch (err) {
9
- console.error("Failed to fetch leases:", err);
10
- }
11
-}
12
-
13
-function renderLeaseList(leases) {
14
- const list = document.getElementById("lease-list");
15
- if (!list) return;
16
- list.innerHTML = "";
17
- leases.forEach((lease) => {
18
- const item = document.createElement("div");
19
- item.className = "lease-item";
20
- item.innerHTML = `
21
- <span class="lease-name">${lease.metadata?.description || lease.id}</span>
22
- <span id="gosuda-badge-${lease.id}" class="gosuda-badge">고수다</span>`;
23
- if (lease.metadata?.hide) {
24
- item.querySelector(`#gosuda-badge-${lease.id}`).style.display = "none";
25
- }
26
- list.appendChild(item);
27
- });
28
-}
cmd/relay-server/static/index.html
+3
@@ -90,6 +90,9 @@
90
<div class="title">
91
{{if .Name}}{{.Name}}{{else}}(unnamed){{end}}
92
</div>
93
+ {{ if not .Hide }}
94
+ <span class="gosuda-badge">고수다</span>
95
+ {{ end }}
96
<svg
97
class="chevron"
98
xmlns="http://www.w3.org/2000/svg"
cmd/relay-server/view.go
+3
-1
@@ -168,6 +168,7 @@ type leaseRow struct {
168
TTL string
169
Link string
170
StaleRed bool
171
+ Hide bool
172
}
173
174
type adminPageData struct {
@@ -198,7 +199,7 @@ func convertLeaseEntriesToRows(serv *portal.RelayServer) []leaseRow {
199
Hide bool `json:"hide"`
200
}
201
if err := json.Unmarshal([]byte(lease.Metadata), &meta); err == nil && meta.Hide {
201
- continue
202
+ // leaseRow에 Hide 정보만 넣고 리스트에는 포함
203
}
204
205
// Calculate TTL
@@ -280,6 +281,7 @@ func convertLeaseEntriesToRows(serv *portal.RelayServer) []leaseRow {
281
TTL: ttlStr,
282
Link: link,
283
StaleRed: !connected && since >= 15*time.Second,
284
+ Hide: meta.Hide,
285
}
286
287
rows = append(rows, row)