renderLogView renders the full-screen log view.
()
| 891 | |
| 892 | // renderLogView renders the full-screen log view. |
| 893 | func (a *App) renderLogView() string { |
| 894 | if a.width == 0 || a.height == 0 { |
| 895 | return "Loading..." |
| 896 | } |
| 897 | |
| 898 | var header, footer string |
| 899 | if a.isNarrowMode() { |
| 900 | header = a.renderNarrowLogHeader() |
| 901 | footer = a.renderNarrowFooter() |
| 902 | } else { |
| 903 | header = a.renderLogHeader() |
| 904 | footer = a.renderFooter() |
| 905 | } |
| 906 | |
| 907 | // Calculate content area height |
| 908 | contentHeight := a.height - headerHeight - footerHeight - 2 |
| 909 | |
| 910 | // Render log content |
| 911 | a.logViewer.SetSize(a.width-4, contentHeight) |
| 912 | logContent := a.logViewer.Render() |
| 913 | |
| 914 | // Wrap in a panel |
| 915 | logPanel := panelStyle.Width(a.width - 2).Height(contentHeight).Render(logContent) |
| 916 | |
| 917 | // Stack header, content, and footer |
| 918 | return lipgloss.JoinVertical(lipgloss.Left, header, logPanel, footer) |
| 919 | } |
| 920 | |
| 921 | // renderLogHeader renders the header for the log view. |
| 922 | func (a *App) renderLogHeader() string { |
no test coverage detected