Skip to content

Instantly share code, notes, and snippets.

@jspuij
Created January 2, 2020 11:39
Show Gist options
  • Save jspuij/8a8324826ae4dc41811073da5ed457f9 to your computer and use it in GitHub Desktop.
Save jspuij/8a8324826ae4dc41811073da5ed457f9 to your computer and use it in GitHub Desktop.
Example of Weaved component
// Cortex.Net.BlazorTodo.Components.TodoOverview
using Cortex.Net;
using Cortex.Net.Blazor;
using Cortex.Net.BlazorTodo;
using Cortex.Net.BlazorTodo.Components;
using Cortex.Net.BlazorTodo.Models;
using Cortex.Net.BlazorTodo.Stores;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.CompilerServices;
using Microsoft.AspNetCore.Components.Rendering;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.CompilerServices;
[Observer]
public class TodoOverview : ComponentBase, IReactiveObject
{
[CompilerGenerated]
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
private ObserverObject cortex_Net_H90skjHYJKq9_ObserverObject;
[CompilerGenerated]
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
private int cortex_Net_Fvclsnf97SxcMxlkizajkz_BuildRenderTree_EntranceCount;
[Inject]
private ViewStore ViewStore
{
get;
set;
}
[Inject]
private TodoStore TodoStore
{
get;
set;
}
ISharedState IReactiveObject.SharedState
{
get;
}
protected override void BuildRenderTree(RenderTreeBuilder __builder)
{
if (this.cortex_Net_H90skjHYJKq9_ObserverObject != null)
{
this.cortex_Net_Fvclsnf97SxcMxlkizajkz_BuildRenderTree_EntranceCount++;
if (this.cortex_Net_Fvclsnf97SxcMxlkizajkz_BuildRenderTree_EntranceCount % 2 == 1)
{
this.cortex_Net_H90skjHYJKq9_ObserverObject.BuildRenderTree(__builder);
this.cortex_Net_Fvclsnf97SxcMxlkizajkz_BuildRenderTree_EntranceCount -= 2;
return;
}
}
if (this.TodoStore.Todos.Count > 0)
{
__builder.AddMarkupContent(0, " \r\n ");
__builder.OpenElement(1, "section");
__builder.AddAttribute(2, "class", "main");
__builder.AddMarkupContent(3, "\r\n ");
__builder.OpenElement(4, "input");
__builder.AddAttribute(5, "id", "toggle-all");
__builder.AddAttribute(6, "class", "toggle-all");
__builder.AddAttribute(7, "type", "checkbox");
__builder.AddAttribute(8, "onchange", EventCallback.Factory.Create((object)this, (Action<ChangeEventArgs>)this.ToggleAll));
__builder.AddAttribute(9, "checked", this.TodoStore.ActiveCount == 0);
__builder.CloseElement();
__builder.AddMarkupContent(10, "\r\n ");
__builder.AddMarkupContent(11, "<label for=\"toggle-all\">Mark all as complete</label>\r\n ");
__builder.OpenElement(12, "ul");
__builder.AddAttribute(13, "class", "todo-list");
__builder.AddMarkupContent(14, "\r\n \r\n \r\n");
foreach (Todo visibleTodo in this.GetVisibleTodos())
{
__builder.AddContent(15, " ");
__builder.OpenComponent<TodoItem>(16);
__builder.AddAttribute(17, "Todo", Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck(visibleTodo));
__builder.SetKey(visibleTodo.Id);
__builder.CloseComponent();
__builder.AddMarkupContent(18, "\r\n");
}
__builder.AddContent(19, " ");
__builder.CloseElement();
__builder.AddMarkupContent(20, "\r\n ");
__builder.CloseElement();
__builder.AddMarkupContent(21, "\r\n");
}
}
/// <summary>
/// Gets the visible Todos.
/// </summary>
/// <returns></returns>
private IEnumerable<Todo> GetVisibleTodos()
{
if (this.ViewStore.TodoFilter == TodoFilter.All)
{
return this.TodoStore.Todos;
}
return from x in this.TodoStore.Todos
where (this.ViewStore.TodoFilter == TodoFilter.Completed) ? x.Completed : (!x.Completed)
select x;
}
/// <summary>
/// Event handler for the toggle-all checkbox.
/// </summary>
/// <param name="args">The change event args.</param>
private void ToggleAll(ChangeEventArgs args)
{
this.TodoStore.ToggleAll((bool)args.Value);
}
public TodoOverview()
{
this.Cortex.Net.Api.IReactiveObject.set_SharedState(SharedState.ResolveState(null));
}
public virtual void Dispose()
{
if (this.cortex_Net_H90skjHYJKq9_ObserverObject != null)
{
this.cortex_Net_H90skjHYJKq9_ObserverObject.Dispose();
}
}
[CompilerGenerated]
private void Cortex.Net.Api.IReactiveObject.set_SharedState(ISharedState value)
{
this.Cortex.Net.Api.IReactiveObject.SharedState = value;
if (value != null)
{
this.cortex_Net_H90skjHYJKq9_ObserverObject = new ObserverObject(value, "TodoOverview", this.BuildRenderTree, base.StateHasChanged);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment