based/examples/ui.rs

51 lines
1.1 KiB
Rust
Raw Normal View History

2025-01-14 22:56:07 +01:00
use based::request::{RequestContext, StringResponse};
2025-01-15 18:28:59 +01:00
use based::ui::components::{AppBar, Shell};
use based::ui::htmx::{Event, HTMXAttributes};
use based::ui::{prelude::*, render_page};
2025-01-14 22:56:07 +01:00
use maud::Render;
use maud::html;
use rocket::get;
use rocket::routes;
#[get("/")]
pub async fn index_page(ctx: RequestContext) -> StringResponse {
let content = AppBar("MyApp", None).render();
let content = html!(
h1 { "Hello World!" };
2025-01-15 18:28:59 +01:00
(Hover(
Padding(Text("").color(Gray::_400)).x(10),
Link("/test", Text("Hello")).hx_get("/test").hx_get("/test").hx_trigger(
Event::on_load().delay("2s")
.and(Event::on_revealed())
)
))
2025-01-14 22:56:07 +01:00
(content)
);
render_page(
content,
"Hello World",
ctx,
&Shell::new(
html! {
script src="https://cdn.tailwindcss.com" {};
},
html! {},
Some(String::new()),
),
)
.await
}
#[rocket::launch]
async fn launch() -> _ {
// Logging
env_logger::init();
rocket::build().mount("/", routes![index_page])
}