diff --git a/internal/phonedoor/page.html b/internal/phonedoor/page.html index 412a841..63f840f 100644 --- a/internal/phonedoor/page.html +++ b/internal/phonedoor/page.html @@ -16,8 +16,11 @@

nudge

+
+Refresh +
diff --git a/internal/phonedoor/phonedoor_test.go b/internal/phonedoor/phonedoor_test.go index 626b449..96f5568 100644 --- a/internal/phonedoor/phonedoor_test.go +++ b/internal/phonedoor/phonedoor_test.go @@ -181,6 +181,15 @@ func TestPageCarriesThePushKey(t *testing.T) { } } +func TestPageHasARefreshLink(t *testing.T) { + var box inbox.Inbox + + body := get(t, &box, http.MethodGet, "/").Body.String() + if want := `Refresh`; !strings.Contains(body, want) { + t.Errorf("page = %s, want it to contain %s", body, want) + } +} + func TestDoorServesOnlyItsRoutes(t *testing.T) { tests := []struct { method, path string diff --git a/internal/phonedoor/static/style.css b/internal/phonedoor/static/style.css index 2be0edd..05a5e97 100644 --- a/internal/phonedoor/static/style.css +++ b/internal/phonedoor/static/style.css @@ -182,6 +182,12 @@ button:hover { color: var(--ink); } +.actions { + display: flex; + gap: 20px; + align-items: center; +} + /* The notifications' state and button look like Bakhyard's header links. Their line is no taller than the phone's title, so the header keeps its height when they show. */ .push { @@ -196,15 +202,19 @@ p.push { color: var(--ink-muted); } +a.push, button.push { /* The tap target stays 44 px tall, but the header's row makes room only for the text. */ margin-block: -14px; - padding: 0; + padding: 14px 0; border: 0; background: none; + color: inherit; + text-decoration: none; text-underline-offset: 4px; } +a.push:hover, button.push:enabled:hover { text-decoration-line: underline; }