| 1 | namespace AgentForge.Plugin.View.Components.Layout; |
| 2 | |
| 3 | internal static class ForgeViewAppHeader |
| 4 | { |
| 5 | public static string Render(ForgeViewPageContext? ctx) |
| 6 | { |
| 7 | var parts = new List<string> { ForgeViewBrandLogo.Render() }; |
| 8 | |
| 9 | if (ctx is not null && !string.IsNullOrWhiteSpace(ctx.RepoName)) |
| 10 | { |
| 11 | parts.Add(ForgeViewHeaderRepositoryPicker.Render(ctx)); |
| 12 | parts.Add(ForgeViewHeaderTabs.Render(ctx)); |
| 13 | } |
| 14 | |
| 15 | parts.Add(ForgeHtml.Div("header-spacer", "")); |
| 16 | parts.Add(ForgeViewCommandBarTrigger.Render()); |
| 17 | |
| 18 | if (ctx is not null && !string.IsNullOrWhiteSpace(ctx.RepoName)) |
| 19 | parts.Add(ForgeViewHeaderSearch.Render(ctx)); |
| 20 | |
| 21 | parts.Add(ForgeViewHeaderAvatar.Render(ctx?.Viewer)); |
| 22 | parts.Add(ForgeViewHeaderUtils.Render()); |
| 23 | |
| 24 | return ForgeHtml.Header("app-header", |
| 25 | ForgeHtml.Div("app-header-inner", [.. parts])); |
| 26 | } |
| 27 | } |
| 28 | |
View only · write via MCP/CIDE