1
0
mirror of https://github.com/tw93/Mole.git synced 2026-02-14 15:52:29 +00:00

feat: cat hide toggle and critical fixes (#272)

- Add 'k' key to hide/show cat in mo status
- Hand-crafted mirror frames for better left-walking animation
- Fix extra blank lines bug (strings.Lines → strings.Split)
- Fix battery power overflow (ParseInt for negative values)
- Optimize README Tips section (8 → 5 items)
This commit is contained in:
Tw93
2026-01-08 11:27:47 +08:00
parent 7d6d5eb8b0
commit 64a580b3a7
4 changed files with 83 additions and 24 deletions

View File

@@ -34,11 +34,13 @@ type model struct {
lastUpdated time.Time
collecting bool
animFrame int
catHidden bool // true = hidden, false = visible
}
func newModel() model {
return model{
collector: NewCollector(),
catHidden: false,
}
}
@@ -52,6 +54,10 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
switch msg.String() {
case "q", "esc", "ctrl+c":
return m, tea.Quit
case "k":
// Toggle cat visibility
m.catHidden = !m.catHidden
return m, nil
}
case tea.WindowSizeMsg:
m.width = msg.Width
@@ -89,7 +95,7 @@ func (m model) View() string {
return "Loading..."
}
header := renderHeader(m.metrics, m.errMessage, m.animFrame, m.width)
header := renderHeader(m.metrics, m.errMessage, m.animFrame, m.width, m.catHidden)
cardWidth := 0
if m.width > 80 {
cardWidth = maxInt(24, m.width/2-4)
@@ -104,10 +110,20 @@ func (m model) View() string {
}
rendered = append(rendered, renderCard(c, cardWidth, 0))
}
return header + "\n" + lipgloss.JoinVertical(lipgloss.Left, rendered...)
result := header + "\n" + lipgloss.JoinVertical(lipgloss.Left, rendered...)
// Add extra newline if cat is hidden for better spacing
if m.catHidden {
result = header + "\n\n" + lipgloss.JoinVertical(lipgloss.Left, rendered...)
}
return result
}
return header + "\n" + renderTwoColumns(cards, m.width)
twoCol := renderTwoColumns(cards, m.width)
// Add extra newline if cat is hidden for better spacing
if m.catHidden {
return header + "\n\n" + twoCol
}
return header + "\n" + twoCol
}
func (m model) collectCmd() tea.Cmd {