users should understand how to view details

This commit is contained in:
Robin Olsen
2026-03-20 10:47:27 +01:00
parent d78e9d4ded
commit 977d0e2df0

View File

@@ -3,6 +3,7 @@ package components
import (
"charm.land/lipgloss/v2"
"github.com/LazyBachelor/LazyPM/internal/models"
"github.com/LazyBachelor/LazyPM/internal/style"
"github.com/LazyBachelor/LazyPM/pkg/tui/styles"
)
@@ -202,9 +203,6 @@ func RenderModals(
return mainView
}
// RenderFooter renders the shared footer with the help bar and optional
// validation feedback message.
// truncateToWidth trims the given text so that its rendered width does not
// exceed maxWidth. If truncation occurs and there is room, an ellipsis is
// appended to indicate that the text was shortened.
@@ -237,12 +235,14 @@ func truncateToWidth(text string, maxWidth int) string {
return current + ellipsis
}
// RenderFooter renders the shared footer with the help bar and optional
// validation feedback message.
func RenderFooter(width int, helpBar *HelpBar, feedback models.ValidationFeedback) string {
feedbackStatus := feedback.Message
// Ensure the feedback message does not exceed the total available width.
if feedback.Message != "" {
feedbackStatus = truncateToWidth(feedbackStatus+" [Press Shift+S to re-submit]", width)
feedbackStatus = truncateToWidth(style.ErrorStyle.Render(feedbackStatus+" [Press '?' for details]"), width)
if helpBar.IsExpanded() && feedbackStatus != "" {
for _, check := range feedback.Checks {
@@ -254,10 +254,7 @@ func RenderFooter(width int, helpBar *HelpBar, feedback models.ValidationFeedbac
}
// Ensure each check line does not exceed the available width.
remainingWidth := width - lipgloss.Width(prefix)
if remainingWidth < 0 {
remainingWidth = 0
}
remainingWidth := max(width-lipgloss.Width(prefix), 0)
truncatedMsg := truncateToWidth(check.Message, remainingWidth)
feedbackStatus += "\n" + prefix + truncatedMsg
@@ -269,10 +266,7 @@ func RenderFooter(width int, helpBar *HelpBar, feedback models.ValidationFeedbac
return helpBar.View()
}
helpWidth := width - lipgloss.Width(feedbackStatus)
if helpWidth < 0 {
helpWidth = 0
}
helpWidth := max(width-lipgloss.Width(feedbackStatus), 0)
helpBar.SetWidth(helpWidth)
return lipgloss.JoinHorizontal(lipgloss.Left, helpBar.View(), feedbackStatus)