Skip to content

Commit df43eac

Browse files
committed
Add security and synchronization features to Blazor Store sample
- Implement SecurityDemo.razor to showcase sensitive data handling with filtering and validation. - Create TabSyncDemo.razor for real-time state synchronization across browser tabs using BroadcastChannel API. - Introduce LoggingPlugin, ValidationPlugin, and AnalyticsDemoPlugin for enhanced state management and logging. - Add various state models including ActionsDemoState, EditorHistoryState, ImmerDemoState, OptimisticDemoState, PluginDemoState, QueryDemoState, SecurityDemoState, and TabSyncDemoState. - Update Program.cs to register new stores and plugins. - Refactor ProduceExtensions to improve handling of nested record types in Immer-style updates.
1 parent 3fe94fd commit df43eac

23 files changed

Lines changed: 3291 additions & 1175 deletions

README.md

Lines changed: 595 additions & 1020 deletions
Large diffs are not rendered by default.

samples/EasyAppDev.Blazor.Store.Sample/Layout/NavMenu.razor

Lines changed: 70 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<div class="top-row ps-3 navbar navbar-dark">
1+
<div class="top-row ps-3 navbar navbar-dark">
22
<div class="container-fluid">
3-
<a class="navbar-brand" href="">EasyAppDev.Blazor.Store.Sample</a>
3+
<a class="navbar-brand" href="">EasyAppDev.Blazor.Store</a>
44
<button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
55
<span class="navbar-toggler-icon"></span>
66
</button>
@@ -11,77 +11,127 @@
1111
<nav class="flex-column">
1212
<div class="nav-item px-3">
1313
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
14-
<span aria-hidden="true">🏠</span> Home
14+
<span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Home
1515
</NavLink>
1616
</div>
1717

1818
<div class="nav-item px-3 mt-3">
19-
<small class="text-muted ps-2">EXAMPLES</small>
19+
<small class="text-muted ps-2">CORE FEATURES</small>
2020
</div>
2121

2222
<div class="nav-item px-3">
2323
<NavLink class="nav-link" href="counter">
24-
<span aria-hidden="true">🔢</span> Counter
24+
<span aria-hidden="true">+</span> Counter
2525
</NavLink>
2626
</div>
2727
<div class="nav-item px-3">
2828
<NavLink class="nav-link" href="todos">
29-
<span aria-hidden="true">📝</span> Todo List
29+
<span aria-hidden="true">*</span> Todo List
3030
</NavLink>
3131
</div>
3232
<div class="nav-item px-3">
3333
<NavLink class="nav-link" href="profile">
34-
<span aria-hidden="true">👤</span> User Profile
34+
<span aria-hidden="true">&#64;</span> User Profile
3535
</NavLink>
3636
</div>
3737
<div class="nav-item px-3">
3838
<NavLink class="nav-link" href="cart">
39-
<span aria-hidden="true">🛒</span> Shopping Cart
39+
<span aria-hidden="true">$</span> Shopping Cart
4040
</NavLink>
4141
</div>
4242
<div class="nav-item px-3">
4343
<NavLink class="nav-link" href="theme">
44-
<span aria-hidden="true">🎨</span> Theme Settings
44+
<span aria-hidden="true">#</span> Theme Settings
4545
</NavLink>
4646
</div>
47+
48+
<div class="nav-item px-3 mt-3">
49+
<small class="text-muted ps-2">ASYNC HELPERS</small>
50+
</div>
51+
4752
<div class="nav-item px-3">
4853
<NavLink class="nav-link" href="debounce-demo">
49-
<span aria-hidden="true">⏱️</span> Debounce Demo
54+
<span aria-hidden="true">~</span> Debounce/Throttle
5055
</NavLink>
5156
</div>
5257
<div class="nav-item px-3">
5358
<NavLink class="nav-link" href="async-data-demo">
54-
<span aria-hidden="true">🔄</span> AsyncData Demo
59+
<span aria-hidden="true">^</span> AsyncData
5560
</NavLink>
5661
</div>
5762
<div class="nav-item px-3">
5863
<NavLink class="nav-link" href="execute-async-demo">
59-
<span aria-hidden="true"></span> ExecuteAsync Demo
64+
<span aria-hidden="true">!</span> ExecuteAsync
6065
</NavLink>
6166
</div>
6267
<div class="nav-item px-3">
6368
<NavLink class="nav-link" href="lazy-load-demo">
64-
<span aria-hidden="true">📦</span> LazyLoad Demo
69+
<span aria-hidden="true">&</span> LazyLoad
6570
</NavLink>
6671
</div>
72+
73+
<div class="nav-item px-3 mt-3">
74+
<small class="text-muted ps-2">ADVANCED FEATURES</small>
75+
</div>
76+
6777
<div class="nav-item px-3">
68-
<NavLink class="nav-link" href="form-validation">
69-
<span aria-hidden="true"></span> Form Validation
78+
<NavLink class="nav-link" href="optimistic-demo">
79+
<span aria-hidden="true">&gt;</span> Optimistic Updates
7080
</NavLink>
7181
</div>
7282
<div class="nav-item px-3">
73-
<NavLink class="nav-link" href="cross-store-demo">
74-
<span aria-hidden="true">🔄</span> Cross-Store Demo
83+
<NavLink class="nav-link" href="history-demo">
84+
<span aria-hidden="true">&lt;</span> Undo/Redo History
85+
</NavLink>
86+
</div>
87+
<div class="nav-item px-3">
88+
<NavLink class="nav-link" href="query-demo">
89+
<span aria-hidden="true">?</span> Query System
90+
</NavLink>
91+
</div>
92+
<div class="nav-item px-3">
93+
<NavLink class="nav-link" href="tab-sync-demo">
94+
<span aria-hidden="true">=</span> Cross-Tab Sync
95+
</NavLink>
96+
</div>
97+
<div class="nav-item px-3">
98+
<NavLink class="nav-link" href="immer-demo">
99+
<span aria-hidden="true">%</span> Immer-Style Updates
100+
</NavLink>
101+
</div>
102+
<div class="nav-item px-3">
103+
<NavLink class="nav-link" href="actions-demo">
104+
<span aria-hidden="true">:</span> Redux-Style Actions
105+
</NavLink>
106+
</div>
107+
<div class="nav-item px-3">
108+
<NavLink class="nav-link" href="plugin-demo">
109+
<span aria-hidden="true">[</span> Plugin System
110+
</NavLink>
111+
</div>
112+
<div class="nav-item px-3">
113+
<NavLink class="nav-link" href="security-demo">
114+
<span aria-hidden="true">]</span> Security Features
75115
</NavLink>
76116
</div>
77117

78118
<div class="nav-item px-3 mt-3">
79-
<small class="text-muted ps-2">COMPREHENSIVE</small>
119+
<small class="text-muted ps-2">MORE EXAMPLES</small>
80120
</div>
81121

122+
<div class="nav-item px-3">
123+
<NavLink class="nav-link" href="form-validation">
124+
<span aria-hidden="true">.</span> Form Validation
125+
</NavLink>
126+
</div>
127+
<div class="nav-item px-3">
128+
<NavLink class="nav-link" href="cross-store-demo">
129+
<span aria-hidden="true">,</span> Cross-Store Updates
130+
</NavLink>
131+
</div>
82132
<div class="nav-item px-3">
83133
<NavLink class="nav-link" href="comprehensive-demo">
84-
<span aria-hidden="true">🎯</span> All Features Demo
134+
<span aria-hidden="true">/</span> All Features Demo
85135
</NavLink>
86136
</div>
87137

@@ -91,7 +141,7 @@
91141

92142
<div class="nav-item px-3">
93143
<NavLink class="nav-link" href="diagnostics">
94-
<span aria-hidden="true">🔍</span> Diagnostics
144+
<span aria-hidden="true">;</span> Diagnostics
95145
</NavLink>
96146
</div>
97147
</nav>

0 commit comments

Comments
 (0)