fix: UI layout overflow in dashboard by separating files and overview into 3 tabs

This commit is contained in:
itexpert228 2026-07-20 19:12:19 +03:00
parent 264d73cdc5
commit 832ed6f81f

View file

@ -631,9 +631,9 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
case key.Matches(msg, keys.TabNetwork): case key.Matches(msg, keys.TabNetwork):
m.activeTab = 1 m.activeTab = 1
case key.Matches(msg, keys.NextTab): case key.Matches(msg, keys.NextTab):
m.activeTab = (m.activeTab + 1) % 2 m.activeTab = (m.activeTab + 1) % 3
case key.Matches(msg, keys.PrevTab): case key.Matches(msg, keys.PrevTab):
m.activeTab = (m.activeTab - 1 + 2) % 2 m.activeTab = (m.activeTab - 1 + 3) % 3
case key.Matches(msg, keys.PauseResume): case key.Matches(msg, keys.PauseResume):
phase := m.status.Phase phase := m.status.Phase
@ -1665,6 +1665,7 @@ func (m model) renderTabs() string {
count int count int
}{ }{
{" Обзор", -1}, {" Обзор", -1},
{" Файлы", len(m.status.Files)},
{" Сеть", len(m.status.Peers) + len(m.status.Trackers)}, {" Сеть", len(m.status.Peers) + len(m.status.Trackers)},
} }
@ -1705,7 +1706,7 @@ func (m model) renderTabContent() string {
} }
switch m.activeTab { switch m.activeTab {
case 1: case 2:
peersView := m.peersTable.View() peersView := m.peersTable.View()
trackersView := m.trackersTable.View() trackersView := m.trackersTable.View()
return lipgloss.JoinVertical(lipgloss.Left, return lipgloss.JoinVertical(lipgloss.Left,
@ -1715,15 +1716,14 @@ func (m model) renderTabContent() string {
lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color(ColorCyan)).Render(" ТРЕКЕРЫ"), lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color(ColorCyan)).Render(" ТРЕКЕРЫ"),
trackersView, trackersView,
) )
default: case 1:
overview := m.renderOverview(contentH)
filesView := m.filesTable.View() filesView := m.filesTable.View()
return lipgloss.JoinVertical(lipgloss.Left, return lipgloss.JoinVertical(lipgloss.Left,
overview,
"",
lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color(ColorCyan)).Render(" ФАЙЛЫ"), lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color(ColorCyan)).Render(" ФАЙЛЫ"),
filesView, filesView,
) )
default:
return m.renderOverview(contentH)
} }
} }
@ -1939,7 +1939,7 @@ func (m model) renderHelpBar() string {
return StyleHelpKey.Render(key) + StyleHelpDesc.Render(" "+desc) return StyleHelpKey.Render(key) + StyleHelpDesc.Render(" "+desc)
} }
parts := []string{ parts := []string{
k("Tab/1-2", "вкладки"), k("Tab/1-3", "вкладки"),
k("Enter", "приоритет"), k("Enter", "приоритет"),
k("Пробел", "пауза/старт"), k("Пробел", "пауза/старт"),
k("?", "дополнительно"), k("?", "дополнительно"),