bodged refactor

This commit is contained in:
2026-03-08 20:10:15 +01:00
parent 71e63e4410
commit b10326b242
12 changed files with 801 additions and 339 deletions
+8 -15
View File
@@ -1,14 +1,6 @@
use livevue_rs::RenderContext;
use maud::{html, Markup};
/// Second page component: a simple "About" page.
///
/// This exists specifically to exercise:
/// - The `tree` signal page routing (resolve_root match arm)
/// - SPA-like navigation via tree signal mutation
/// - Round-trip: TodoList → About → TodoList without full page reload
///
/// In a real app this might show user info, settings, etc.
pub async fn about(_cx: &mut RenderContext) -> anyhow::Result<Markup> {
Ok(html! {
div.about-page {
@@ -16,7 +8,7 @@ pub async fn about(_cx: &mut RenderContext) -> anyhow::Result<Markup> {
nav {
button.nav-link
data-on:click="$tree = {page: 'TodoList'}; @post('/render')" {
data-on:click="$tree = {page: 'TodoList'}" {
"Todos"
}
" | "
@@ -34,14 +26,15 @@ pub async fn about(_cx: &mut RenderContext) -> anyhow::Result<Markup> {
strong { "full rerender is cheap" }
", so skip diffing, skip partial updates, skip client-side state management."
}
h2 { "v0 Status" }
h2 { "Architecture" }
ul {
li { "Single process, single node" }
li { "SQLite for storage" }
li { "Subscription keys collected (Phase 2 seam)" }
li { "No cache, no auth, no WAL consumer" }
li { "Actions post signals → 202, no response body" }
li { "Rerenders come down the SSE pipe from the fanout task" }
li { "KV store writes auto-publish broadcast invalidation events" }
li { "SubscriptionRegistry maps CacheKeys → connections" }
li { "Clock ticks via " code { "store.kv.set(\"clock\", ...)" } " every second" }
}
}
}
})
}
}