renderDiffView renders the full-screen diff view.
()
| 775 | |
| 776 | // renderDiffView renders the full-screen diff view. |
| 777 | func (a *App) renderDiffView() string { |
| 778 | if a.width == 0 || a.height == 0 { |
| 779 | return "Loading..." |
| 780 | } |
| 781 | |
| 782 | var header, footer string |
| 783 | if a.isNarrowMode() { |
| 784 | header = a.renderNarrowDiffHeader() |
| 785 | footer = a.renderNarrowFooter() |
| 786 | } else { |
| 787 | header = a.renderDiffHeader() |
| 788 | footer = a.renderFooter() |
| 789 | } |
| 790 | |
| 791 | // Calculate content area height (same approach as log view) |
| 792 | contentHeight := a.height - headerHeight - footerHeight - 2 |
| 793 | |
| 794 | // Render diff content |
| 795 | a.diffViewer.SetSize(a.width-4, contentHeight) |
| 796 | diffContent := a.diffViewer.Render() |
| 797 | |
| 798 | // Wrap in a panel |
| 799 | diffPanel := panelStyle.Width(a.width - 2).Height(contentHeight).Render(diffContent) |
| 800 | |
| 801 | // Stack header, content, and footer |
| 802 | return lipgloss.JoinVertical(lipgloss.Left, header, diffPanel, footer) |
| 803 | } |
| 804 | |
| 805 | // renderDiffHeader renders the header for the diff view. |
| 806 | func (a *App) renderDiffHeader() string { |
no test coverage detected