added htmx request for albums
This commit is contained in:
parent
c6cde944f9
commit
749271a0d5
3 changed files with 35 additions and 1 deletions
|
@ -15,6 +15,14 @@ struct HelloTemplate {
|
||||||
name: String
|
name: String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Template)]
|
||||||
|
#[template(path = "album_carousel_item.html")]
|
||||||
|
struct AlbumCarouselItem {
|
||||||
|
title: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() {
|
async fn main() {
|
||||||
tracing_subscriber::fmt::init();
|
tracing_subscriber::fmt::init();
|
||||||
|
@ -25,6 +33,7 @@ async fn main() {
|
||||||
let app = Router::new()
|
let app = Router::new()
|
||||||
.route("/", get(index))
|
.route("/", get(index))
|
||||||
.route("/users", post(create_user))
|
.route("/users", post(create_user))
|
||||||
|
.route("/album/highlights", get(highlight_albums))
|
||||||
.nest_service("/static", static_files_service)
|
.nest_service("/static", static_files_service)
|
||||||
.layer(TraceLayer::new_for_http())
|
.layer(TraceLayer::new_for_http())
|
||||||
.with_state("Nick".to_string())
|
.with_state("Nick".to_string())
|
||||||
|
@ -40,6 +49,17 @@ async fn index (axum::extract::State(name): axum::extract::State<String>) -> Res
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn highlight_albums () -> String {
|
||||||
|
let mut output = String::new();
|
||||||
|
for i in 1..=10 {
|
||||||
|
let item = AlbumCarouselItem {
|
||||||
|
title: format!("Album Item: {}", i.to_string())
|
||||||
|
};
|
||||||
|
output.push_str(&item.render().unwrap());
|
||||||
|
}
|
||||||
|
output
|
||||||
|
}
|
||||||
|
|
||||||
async fn create_user(
|
async fn create_user(
|
||||||
// this argument tells axum to parse the request body␍
|
// this argument tells axum to parse the request body␍
|
||||||
// as JSON into a `CreateUser` type␍
|
// as JSON into a `CreateUser` type␍
|
||||||
|
|
11
artist-alerts/templates/album_carousel_item.html
Normal file
11
artist-alerts/templates/album_carousel_item.html
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<div class="mx-5 my-auto rounded-md aspect-albumCarousel h-56 bg-emerald-500">
|
||||||
|
<div class="aspect-square rounded-t-md bg-slate-800">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="text-white flex justify-center">
|
||||||
|
<p>
|
||||||
|
{{ title }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -41,7 +41,10 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="max-w-7xl pt-6 mx-auto">
|
<div class="max-w-7xl pt-6 mx-auto">
|
||||||
<div class="w-100 h-64 flex overflow-x-auto rounded-lg bg-slate-200">
|
<div class="w-100 h-64 flex overflow-x-auto rounded-lg bg-slate-200"
|
||||||
|
hx-trigger="load"
|
||||||
|
hx-get="/album/highlights"
|
||||||
|
>
|
||||||
<div class="mx-5 my-auto rounded-md overflow-hidden aspect-albumCarousel h-56 bg-emerald-500">
|
<div class="mx-5 my-auto rounded-md overflow-hidden aspect-albumCarousel h-56 bg-emerald-500">
|
||||||
<div class="aspect-square bg-slate-800">
|
<div class="aspect-square bg-slate-800">
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue