use actix_web::HttpRequest;
use actix_web::Result as AwResult;
use actix_web::get;
use crate::constants::CONTACT_EMAIL;
use crate::view::layout::{is_hx_request, render_layout};
pub(crate) fn contact_info() -> maud::Markup {
maud::html! {
div class="editorial-list contact-list" data-motion-group {
div class="editorial-row contact-row" data-motion-item {
span class="db f6 white-70 mb2" { "Email" }
a href=(format!("mailto:{CONTACT_EMAIL}")) class="link white f5" {
(CONTACT_EMAIL)
}
span class="contact-arrow" aria-hidden="true" { "↗" }
span class="editorial-rule" aria-hidden="true" {}
}
div class="editorial-row contact-row" data-motion-item {
span class="db f6 white-70 mb2" { "Fig" }
a href="https://fig.silenlocatelli.ch" class="link white f5" {
"Fig Git Server"
}
span class="contact-arrow" aria-hidden="true" { "↗" }
span class="editorial-rule" aria-hidden="true" {}
}
div class="editorial-row contact-row" data-motion-item {
span class="db f6 white-70 mb2" { "GitHub" }
a href="https://github.com/silenloc" class="link white f5" {
"github.com/silenloc"
}
span class="contact-arrow" aria-hidden="true" { "↗" }
span class="editorial-rule" aria-hidden="true" {}
}
div class="editorial-row contact-row" data-motion-item {
span class="db f6 white-70 mb2" { "LinkedIn" }
a href="https://linkedin.com/in/silen-locatelli" class="link white f5" {
"www.linkedin.com/in/silen-locatelli"
}
span class="contact-arrow" aria-hidden="true" { "↗" }
span class="editorial-rule" aria-hidden="true" {}
}
}
}
}
#[get("/contact")]
pub async fn contact(req: HttpRequest) -> AwResult<maud::Markup> {
let content = maud::html! {
section class="page-section w-100 pa4 pa5-ns" {
div class="center mw7" {
header class="page-intro mb5" data-motion-group {
p class="eyebrow ma0 mb3" data-motion-item { "Contact" }
h1 class="page-title fw6 white ma0 mb3" data-motion-item { "Get in touch" }
p class="page-lede f4 white-60 ma0" data-motion-item { "For work inquiries and collaboration." }
}
(contact_info())
}
}
};
if is_hx_request(&req) {
Ok(content)
} else {
Ok(render_layout(&content, "/contact"))
}
}