30 lines
950 B
Rust
30 lines
950 B
Rust
pub use crate::templates::FRIENDS;
|
|
|
|
pub fn add_to_context(env: &mut minijinja::Environment) {
|
|
if env.get_template("template.html").is_err() {
|
|
crate::meta_template::add_to_context(env);
|
|
}
|
|
if env.get_template("open_modal.html").is_err() {
|
|
crate::open_modal::add_to_context(env);
|
|
}
|
|
|
|
env.add_template("friends.html", FRIENDS).unwrap();
|
|
}
|
|
|
|
pub fn render(env: &minijinja::Environment, data: FriendsData) -> Result<String, minijinja::Error> {
|
|
let template = env.get_template("friends.html")?;
|
|
template.render(data)
|
|
}
|
|
|
|
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Eq, Hash)]
|
|
pub struct Friend {
|
|
pub name: smol_str::SmolStr,
|
|
pub image: String,
|
|
pub position: Option<smol_str::SmolStr>,
|
|
pub last_active: Option<smol_str::SmolStr>,
|
|
}
|
|
|
|
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Eq, Hash)]
|
|
pub struct FriendsData {
|
|
pub friends: Vec<Friend>,
|
|
}
|