1
0
mirror of https://github.com/tw93/Mole.git synced 2026-03-22 15:00:07 +00:00

refactor(status): extract view height padding helper

This commit is contained in:
Tw93
2026-03-21 06:48:06 +08:00
parent e3a4fa2bbd
commit 78fe1d124a

View File

@@ -59,6 +59,21 @@ type model struct {
catHidden bool // true = hidden, false = visible
}
// padViewToHeight ensures the rendered frame always overwrites the full
// terminal region by padding with empty lines up to the current height.
func padViewToHeight(view string, height int) string {
if height <= 0 {
return view
}
contentHeight := lipgloss.Height(view)
if contentHeight >= height {
return view
}
return view + strings.Repeat("\n", height-contentHeight)
}
// getConfigPath returns the path to the status preferences file.
func getConfigPath() string {
home, err := os.UserHomeDir()
@@ -194,17 +209,7 @@ func (m model) View() string {
}
parts = append(parts, cardContent)
output := lipgloss.JoinVertical(lipgloss.Left, parts...)
// Pad output to exactly fill the terminal height so every frame fully
// overwrites the alt screen buffer, preventing ghost lines on resize.
if m.height > 0 {
contentHeight := lipgloss.Height(output)
if contentHeight < m.height {
output += strings.Repeat("\n", m.height-contentHeight)
}
}
return output
return padViewToHeight(output, m.height)
}
func (m model) collectCmd() tea.Cmd {