public HeaderPanel(object header, object body, string width = null) { this.SetClass("header-panel"); if (width != null) { this.Styles["width"] = width; } var dcHeader = new DumpContainer { Content = header }; var divHeader = new Div(dcHeader); divHeader.SetClass("header-panel--header"); var dcBody = new DumpContainer(); if (body != null) { if (body is RefreshPanel) { dcBody.Content = body; } else { ControlExtensions.AddPadding(dcBody, body).GetAwaiter().GetResult(); } } var divBody = new Div(dcBody); divBody.SetClass("header-panel--body"); var divContainer = new Div(divHeader, divBody); divContainer.SetClass("header-panel--container"); this.VisualTree.Add(divContainer); }
public async Task <object> Render() { Container?.RemoveClass("blade-hidden"); try { var dc = new DumpContainer(); var buttons = new List <Control>(); if (Index != -1) { buttons.Add(new IconButton(Icons.Refresh, (_) => { Manager.PopTo(Index, true); }, theme: Theme.PrimaryAlternate)); } if (Index == 0 && Manager.ShowDebugButton) { buttons.Add(new IconButton(Icons.Duck, (_) => { Manager.DebugHtml(); }, theme: Theme.PrimaryAlternate)); } if (Index != 0) { buttons.Add(new IconButton(Icons.Close, (_) => { if (Index == -1) { Manager.CloseSideBlade(false); } else { Manager.PopTo(Index - 1, false); } }, theme: Theme.PrimaryAlternate)); } _titleH1 = Element("h1", null, string.IsNullOrEmpty(Title) ? " " : Title); var div = Div("blade-panel", Div("blade-header", _titleH1, Element("aside", null, buttons.ToArray()) ), Div("blade-content", dc) ); await ControlExtensions.AddPadding(dc, Renderer.Render(this)); return(div); } catch (Exception ex) { return(Layout.Padding(true).Vertical( Typography.H2(ex.GetType().Name), Typography.P(ex.Message), new CollapsablePanel("Stack Trace", Typography.Code(ex.StackTrace)))); } }