add css and js finally

This commit is contained in:
Schrottkatze 2024-11-11 16:52:32 +01:00
parent 8e9dea9aef
commit 81523a444d
Signed by: schrottkatze
SSH key fingerprint: SHA256:hXb3t1vINBFCiDCmhRABHX5ocdbLiKyCdKI4HK2Rbbc
3 changed files with 52 additions and 3 deletions

View file

@ -47,6 +47,7 @@ pub async fn get(
} else { } else {
MarkupResponse::new( MarkupResponse::new(
html! { html! {
link rel="stylesheet" href="/css";
template #chatmessage { template #chatmessage {
div.message { div.message {
p { } p { }
@ -67,7 +68,7 @@ pub async fn get(
button type="submit" { "Send!" } button type="submit" { "Send!" }
} }
} }
script src="/static/chat.js" {}; script src="/js" {};
}, },
"Cursed Messenger from hell", "Cursed Messenger from hell",

View file

@ -1,4 +1,5 @@
use axum::{routing::get, Router}; use axum::{routing::get, Router};
use http::header;
use sqlx::{Pool, Postgres}; use sqlx::{Pool, Postgres};
use state::AppState; use state::AppState;
use tracing::Level; use tracing::Level;
@ -24,11 +25,28 @@ async fn main() -> anyhow::Result<()> {
let app = Router::new() let app = Router::new()
.route("/", get(|| async { "<h1>gay</h1>" })) .route("/", get(|| async { "<h1>gay</h1>" }))
.route(
"/js",
get(|| async {
(
[(header::CONTENT_TYPE, "text/javascript")],
include_str!("../../../static/chat.js"),
)
}),
)
.route(
"/css",
get(|| async {
(
[(header::CONTENT_TYPE, "text/css")],
include_str!("../../../static/chat.css"),
)
}),
)
.route("/:path", get(chat::get).post(chat::post)) .route("/:path", get(chat::get).post(chat::post))
.route("/poll/:msg", get(chat::poll)) .route("/poll/:msg", get(chat::poll))
.with_state(state.clone()) .with_state(state.clone())
.nest("/admin", admin::router(state.clone())) .nest("/admin", admin::router(state.clone()));
.nest("/static", axum_static::static_router("static"));
let listener = tokio::net::TcpListener::bind("0.0.0.0:8080").await.unwrap(); let listener = tokio::net::TcpListener::bind("0.0.0.0:8080").await.unwrap();
axum::serve(listener, app).await?; axum::serve(listener, app).await?;

30
static/chat.css Normal file
View file

@ -0,0 +1,30 @@
html,
body {
background: #222;
}
.message {
display: flex;
flex-direction: column;
}
.message p {
width: fit-content;
background: #333;
border: 2px solid #999;
padding: 10px;
border-radius: 15px;
}
.from_user p,
.from_user .timestamp {
align-self: flex-end;
}
.from_user p {
border-bottom-right-radius: 5px;
}
.from_admin p {
border-bottom-left-radius: 5px;
}