From e9d74c89415048f172f2923b74f094b637550069 Mon Sep 17 00:00:00 2001
From: Eric Bower <me@erock.io>
Date: Fri, 10 Jan 2025 11:48:48 -0500
Subject: [PATCH] chore(tui): copy tweaks

---
 tui/analytics/analytics.go         | 12 +++---------
 tui/menu/menu.go                   |  8 ++++----
 tui/notifications/notifications.go |  2 +-
 tui/plus/plus.go                   |  4 ++++
 4 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/tui/analytics/analytics.go b/tui/analytics/analytics.go
index 3f26854a..7515f771 100644
--- a/tui/analytics/analytics.go
+++ b/tui/analytics/analytics.go
@@ -74,8 +74,8 @@ Shortcuts:
 
 - esc: leave page
 - tab: toggle between viewport and input box
-- ctrl+u: scroll viewport up a page
-- ctrl+d: scroll viewport down a page
+- u: scroll viewport up a page
+- d: scroll viewport down a page
 - j,k: scroll viewport
 
 Commands: [help, stats, site {domain}, post {slug}]
@@ -138,7 +138,6 @@ func (m Model) Init() tea.Cmd {
 func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
 	var cmds []tea.Cmd
 	var cmd tea.Cmd
-	updateViewport := true
 	switch msg := msg.(type) {
 	case tea.WindowSizeMsg:
 		m.viewport.Width = headerWidth(msg.Width)
@@ -161,11 +160,6 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
 		switch msg.String() {
 		case "q", "esc":
 			return m, pages.Navigate(pages.MenuPage)
-		// when typing in input, ignore viewport updates
-		case " ", "k", "j":
-			if m.input.Focused() {
-				updateViewport = false
-			}
 		case "tab":
 			if m.input.Focused() {
 				m.input.Blur()
@@ -215,7 +209,7 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
 
 	m.input, cmd = m.input.Update(msg)
 	cmds = append(cmds, cmd)
-	if updateViewport {
+	if !m.input.Focused() {
 		m.viewport, cmd = m.viewport.Update(msg)
 		cmds = append(cmds, cmd)
 	}
diff --git a/tui/menu/menu.go b/tui/menu/menu.go
index 4a58bed4..5e4eab35 100644
--- a/tui/menu/menu.go
+++ b/tui/menu/menu.go
@@ -16,12 +16,12 @@ type MenuChoiceMsg struct {
 const (
 	KeysChoice menuChoice = iota
 	TokensChoice
-	NotificationsChoice
-	PlusChoice
 	SettingsChoice
 	LogsChoice
 	AnalyticsChoice
 	ChatChoice
+	NotificationsChoice
+	PlusChoice
 	ExitChoice
 	UnsetChoice // set when no choice has been made
 )
@@ -30,12 +30,12 @@ const (
 var menuChoices = map[menuChoice]string{
 	KeysChoice:          "Manage pubkeys",
 	TokensChoice:        "Manage tokens",
-	NotificationsChoice: "Notifications",
-	PlusChoice:          "Pico+",
 	SettingsChoice:      "Settings",
 	LogsChoice:          "Logs",
 	AnalyticsChoice:     "Analytics",
 	ChatChoice:          "Chat",
+	NotificationsChoice: "Notifications",
+	PlusChoice:          "Pico+",
 	ExitChoice:          "Exit",
 }
 
diff --git a/tui/notifications/notifications.go b/tui/notifications/notifications.go
index ef4158e6..bf3c8af4 100644
--- a/tui/notifications/notifications.go
+++ b/tui/notifications/notifications.go
@@ -28,7 +28,7 @@ Add this URL to your RSS feed reader:
 
 ## Using our [rss-to-email](https://pico.sh/feeds) service
 
-Create a feeds file (e.g. pico.txt):`, url)
+Create a feeds file (using list file format, e.g. pico.txt):`, url)
 
 	md += "\n```\n"
 	md += fmt.Sprintf(`=: email rss@myemail.com
diff --git a/tui/plus/plus.go b/tui/plus/plus.go
index 44c4a5eb..d4d1fe99 100644
--- a/tui/plus/plus.go
+++ b/tui/plus/plus.go
@@ -25,8 +25,12 @@ func PlusView(username string, w int) string {
 - prose
   - no inherent storage limits
   - blog analytics
+- irc bouncer
 - 10GB total storage
 
+> You can use this same flow to add additional years to your membership,
+> including if you are already a pico+ user.
+
 There are a few ways to purchase a membership. We try our best to
 provide immediate access to pico+ regardless of payment
 method.