refactor(techdemo): use generated render helpers throughout
Route shell, architecture, inspector, hero, activity, and live-feed rendering through generated render_html helpers, removing the last local render_template bridge from the techdemo page composition path. req: component/003 req: view/001 req: html_safety/002
This commit is contained in:
@@ -143,7 +143,7 @@ struct AppShell {
|
|||||||
#[derive(Hemplate)]
|
#[derive(Hemplate)]
|
||||||
#[hemplate = "partials"]
|
#[hemplate = "partials"]
|
||||||
struct InspectorPanel {
|
struct InspectorPanel {
|
||||||
selected: String,
|
selected: SafeHtml,
|
||||||
spotlight: String,
|
spotlight: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -460,8 +460,8 @@ fn page_html(demo: &DemoState) -> String {
|
|||||||
|
|
||||||
fn shell(body: String) -> String {
|
fn shell(body: String) -> String {
|
||||||
// Explicit full-page shell composition boundary for already-rendered hemplate fragments.
|
// Explicit full-page shell composition boundary for already-rendered hemplate fragments.
|
||||||
// req: html_safety/002 req: view/001
|
// req: html_safety/002 req: view/001 req: component/003
|
||||||
render_template(&AppShell { body: SafeHtml::trusted(body) })
|
ui::app_shell::render_html(&AppShell { body: SafeHtml::trusted(body) }).into_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn hero_view(demo: &DemoState) -> HeroMetrics {
|
fn hero_view(demo: &DemoState) -> HeroMetrics {
|
||||||
@@ -478,8 +478,8 @@ fn hero_view(demo: &DemoState) -> HeroMetrics {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn render_hero(demo: &DemoState) -> SafeHtml {
|
fn render_hero(demo: &DemoState) -> SafeHtml {
|
||||||
// req: html_safety/002 req: view/001
|
// req: html_safety/002 req: view/001 req: component/003
|
||||||
slhx::render_html(&hero_view(demo))
|
ui::render_html(&hero_view(demo))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn board_view(demo: &DemoState) -> BoardLanes {
|
fn board_view(demo: &DemoState) -> BoardLanes {
|
||||||
@@ -534,8 +534,8 @@ fn activity_view(demo: &DemoState) -> ActivityFeed {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn render_activity(demo: &DemoState) -> SafeHtml {
|
fn render_activity(demo: &DemoState) -> SafeHtml {
|
||||||
// req: html_safety/002 req: view/001
|
// req: html_safety/002 req: view/001 req: component/003
|
||||||
slhx::render_html(&activity_view(demo))
|
ui::render_html(&activity_view(demo))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn inspector_view(demo: &DemoState) -> InspectorPanel {
|
fn inspector_view(demo: &DemoState) -> InspectorPanel {
|
||||||
@@ -544,9 +544,9 @@ fn inspector_view(demo: &DemoState) -> InspectorPanel {
|
|||||||
.selected_id
|
.selected_id
|
||||||
.and_then(|id| demo.work.iter().find(|item| item.id == id));
|
.and_then(|id| demo.work.iter().find(|item| item.id == id));
|
||||||
let selected = selected.map_or_else(
|
let selected = selected.map_or_else(
|
||||||
|| render_template(&InspectorEmpty),
|
|| ui::render_html(&InspectorEmpty),
|
||||||
|item| {
|
|item| {
|
||||||
render_template(&InspectorSelected {
|
ui::render_html(&InspectorSelected {
|
||||||
title: item.title.clone(),
|
title: item.title.clone(),
|
||||||
lane: LANES[item.lane].1,
|
lane: LANES[item.lane].1,
|
||||||
stage: item.stage.label(),
|
stage: item.stage.label(),
|
||||||
@@ -561,28 +561,28 @@ fn inspector_view(demo: &DemoState) -> InspectorPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn render_inspector(demo: &DemoState) -> SafeHtml {
|
fn render_inspector(demo: &DemoState) -> SafeHtml {
|
||||||
// req: html_safety/002 req: view/001
|
// req: html_safety/002 req: view/001 req: component/003
|
||||||
slhx::render_html(&inspector_view(demo))
|
ui::render_html(&inspector_view(demo))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn architecture_hero() -> SafeHtml {
|
fn architecture_hero() -> SafeHtml {
|
||||||
// req: html_safety/002 req: view/001
|
// req: html_safety/002 req: view/001
|
||||||
slhx::render_html(&ArchitectureHero)
|
ui::render_html(&ArchitectureHero)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn architecture_board() -> SafeHtml {
|
fn architecture_board() -> SafeHtml {
|
||||||
// req: html_safety/002 req: view/001
|
// req: html_safety/002 req: view/001
|
||||||
slhx::render_html(&ArchitectureBoard)
|
ui::render_html(&ArchitectureBoard)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn architecture_inspector() -> SafeHtml {
|
fn architecture_inspector() -> SafeHtml {
|
||||||
// req: html_safety/002 req: view/001
|
// req: html_safety/002 req: view/001
|
||||||
slhx::render_html(&ArchitectureInspector)
|
ui::render_html(&ArchitectureInspector)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn architecture_activity() -> SafeHtml {
|
fn architecture_activity() -> SafeHtml {
|
||||||
// req: html_safety/002 req: view/001
|
// req: html_safety/002 req: view/001
|
||||||
slhx::render_html(&ArchitectureActivity)
|
ui::render_html(&ArchitectureActivity)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn render_control_center(page: ControlCenter) -> String {
|
fn render_control_center(page: ControlCenter) -> String {
|
||||||
@@ -590,13 +590,6 @@ fn render_control_center(page: ControlCenter) -> String {
|
|||||||
ui::render_html(&page).into_string()
|
ui::render_html(&page).into_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn render_template(template: &impl Hemplate) -> String {
|
|
||||||
let mut html = String::new();
|
|
||||||
template
|
|
||||||
.render_into(&mut html)
|
|
||||||
.expect("techdemo hemplate partial renders");
|
|
||||||
html
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
@@ -712,7 +705,7 @@ mod tests {
|
|||||||
// req: html_safety/002 req: view/001 req: test/005
|
// req: html_safety/002 req: view/001 req: test/005
|
||||||
#[test]
|
#[test]
|
||||||
fn live_feed_payload_is_rendered_by_a_hemplate_view() {
|
fn live_feed_payload_is_rendered_by_a_hemplate_view() {
|
||||||
let html = slhx::render_html(&LiveFeed { tick: 7 });
|
let html = ui::render_html(&LiveFeed { tick: 7 });
|
||||||
let document = Html::parse_fragment(html.as_str());
|
let document = Html::parse_fragment(html.as_str());
|
||||||
let row = document
|
let row = document
|
||||||
.select(&selector(".live-row"))
|
.select(&selector(".live-row"))
|
||||||
|
|||||||
Reference in New Issue
Block a user