Ajuste para paginación y ajuste a terminal por defecto de 24x80

This commit is contained in:
luisgulo committed 2026-10-31 20:33:08 +01:00
1 parent 74b7a0c448
commit fe1962e892
2 files changed
+39 -10

No files matched your search

+39 -10
View File
@@ -97,7 +97,30 @@ func (m Model) View() string {
s += fmt.Sprintf("│ %-21s │ %-40s │\n", "", msgEmpty)
s += "└───────────────────────┴──────────────────────────────────────────┘\n"
} else {
for i, row := range m.rows {
// --- VENTANA DESLIZANTE REDUCIDA A 6 FILAS PARA TERMINALES DE 24 LÍNEAS ---
maxVisibleRows := 6
startIdx := 0
endIdx := len(m.rows)
if len(m.rows) > maxVisibleRows {
startIdx = m.cursor - (maxVisibleRows / 2)
if startIdx < 0 {
startIdx = 0
}
endIdx = startIdx + maxVisibleRows
if endIdx > len(m.rows) {
endIdx = len(m.rows)
startIdx = endIdx - maxVisibleRows
}
}
if startIdx > 0 {
s += fmt.Sprintf("│ ... (%d elementos más arriba) │\n", startIdx)
s += "├───────────────────────┼──────────────────────────────────────────┤\n"
}
for i := startIdx; i < endIdx; i++ {
row := m.rows[i]
displayProj := row.Project
if displayProj == "(raíz)" {
displayProj = ""
@@ -124,30 +147,36 @@ func (m Model) View() string {
s += lineContent + "\n"
if i < len(m.rows)-1 {
if i < endIdx-1 {
s += "├───────────────────────┼──────────────────────────────────────────┤\n"
}
}
if endIdx < len(m.rows) {
s += "├───────────────────────┼──────────────────────────────────────────┤\n"
s += fmt.Sprintf("│ ... (%d elementos más abajo) │\n", len(m.rows)-endIdx)
}
s += "└───────────────────────┴──────────────────────────────────────────┘\n"
}
// Ruta completa seleccionada
// Ruta completa seleccionada (compacta)
if len(m.rows) > 0 {
selected := m.rows[m.cursor]
fullRef := fmt.Sprintf("%s:%s", selected.RepoName, selected.Tag)
s += fmt.Sprintf(" Ruta completa: %s\n", fullNameStyle.Render(fullRef))
s += fmt.Sprintf("Ruta: %s\n", fullNameStyle.Render(fullRef))
} else {
s += "\n"
}
total := len(m.rows)
statusInfo := fmt.Sprintf(" Total: %d imágenes (%s)", total, modeStr)
statusInfo := fmt.Sprintf("Total: %d imágenes (%s)", total, modeStr)
if m.statusMsg != "" {
statusInfo = " " + successStyle.Render("✔ "+m.statusMsg)
statusInfo = successStyle.Render("✔ " + m.statusMsg)
}
s += fmt.Sprintf("%-70s\n\n", statusInfo)
s += fmt.Sprintf("%-70s\n", statusInfo)
// Barra de botones inferior estilo MC uniforme para ambos modos
// Barra de botones inferior estilo MC
btnR := footerKeyStyle.Render(" R ") + footerDescStyle.Render(" Registry ")
btnL := footerKeyStyle.Render(" L ") + footerDescStyle.Render(" Local ")
btnT := footerKeyStyle.Render(" t ") + footerDescStyle.Render(" Tagear ")
@@ -156,9 +185,9 @@ func (m Model) View() string {
btnQ := footerKeyStyle.Render(" q ") + footerDescStyle.Render(" Salir ")
if m.mode == ModeLocal {
s += fmt.Sprintf(" %s %s %s %s %s %s\n", btnR, btnL, btnP, btnT, btnD, btnQ)
s += fmt.Sprintf("%s %s %s %s %s %s", btnR, btnL, btnP, btnT, btnD, btnQ)
} else {
s += fmt.Sprintf(" %s %s %s %s %s\n", btnR, btnL, btnT, btnD, btnQ)
s += fmt.Sprintf("%s %s %s %s %s", btnR, btnL, btnT, btnD, btnQ)
}
return s