Add a toggle between dark and light theme

This commit is contained in:
Greg Burri 2025-03-31 15:31:06 +02:00
parent d22617538e
commit 559ed139aa
34 changed files with 640 additions and 469 deletions

View file

@ -1,6 +1,7 @@
use askama::Template;
use crate::{
Context,
data::model,
translation::{self, Sentence, Tr},
};
@ -20,8 +21,7 @@ impl Recipes {
#[derive(Template)]
#[template(path = "home.html")]
pub struct HomeTemplate {
pub user: Option<model::User>,
pub tr: Tr,
pub context: Context,
pub recipes: Recipes,
}
@ -29,8 +29,7 @@ pub struct HomeTemplate {
#[derive(Template)]
#[template(path = "message.html")]
pub struct MessageTemplate<'a> {
pub user: Option<model::User>,
pub tr: Tr,
pub context: Context,
pub message: &'a str,
pub as_code: bool, // Display the message in <pre> markup.
@ -39,8 +38,11 @@ pub struct MessageTemplate<'a> {
impl<'a> MessageTemplate<'a> {
pub fn new(message: &'a str, tr: Tr) -> MessageTemplate<'a> {
MessageTemplate {
user: None,
tr,
context: Context {
user: None,
tr,
dark_theme: false,
},
message,
as_code: false,
}
@ -52,8 +54,11 @@ impl<'a> MessageTemplate<'a> {
user: Option<model::User>,
) -> MessageTemplate<'a> {
MessageTemplate {
user,
tr,
context: Context {
user,
tr,
dark_theme: false,
},
message,
as_code: false,
}
@ -63,8 +68,7 @@ impl<'a> MessageTemplate<'a> {
#[derive(Template)]
#[template(path = "sign_up_form.html")]
pub struct SignUpFormTemplate<'a> {
pub user: Option<model::User>,
pub tr: Tr,
pub context: Context,
pub email: String,
pub message: &'a str,
@ -75,8 +79,7 @@ pub struct SignUpFormTemplate<'a> {
#[derive(Template)]
#[template(path = "sign_in_form.html")]
pub struct SignInFormTemplate<'a> {
pub user: Option<model::User>,
pub tr: Tr,
pub context: Context,
pub email: &'a str,
pub message: &'a str,
@ -85,8 +88,7 @@ pub struct SignInFormTemplate<'a> {
#[derive(Template)]
#[template(path = "ask_reset_password.html")]
pub struct AskResetPasswordTemplate<'a> {
pub user: Option<model::User>,
pub tr: Tr,
pub context: Context,
pub email: &'a str,
pub message: &'a str,
@ -96,8 +98,7 @@ pub struct AskResetPasswordTemplate<'a> {
#[derive(Template)]
#[template(path = "reset_password.html")]
pub struct ResetPasswordTemplate<'a> {
pub user: Option<model::User>,
pub tr: Tr,
pub context: Context,
pub reset_token: &'a str,
pub message: &'a str,
@ -107,8 +108,7 @@ pub struct ResetPasswordTemplate<'a> {
#[derive(Template)]
#[template(path = "profile.html")]
pub struct ProfileTemplate<'a> {
pub user: Option<model::User>,
pub tr: Tr,
pub context: Context,
pub username: &'a str,
pub email: &'a str,
@ -121,8 +121,7 @@ pub struct ProfileTemplate<'a> {
#[derive(Template)]
#[template(path = "recipe_view.html")]
pub struct RecipeViewTemplate {
pub user: Option<model::User>,
pub tr: Tr,
pub context: Context,
pub recipes: Recipes,
@ -132,8 +131,7 @@ pub struct RecipeViewTemplate {
#[derive(Template)]
#[template(path = "recipe_edit.html")]
pub struct RecipeEditTemplate {
pub user: Option<model::User>,
pub tr: Tr,
pub context: Context,
pub recipes: Recipes,
@ -143,7 +141,7 @@ pub struct RecipeEditTemplate {
#[derive(Template)]
#[template(path = "recipes_list_fragment.html")]
pub struct RecipesListFragmentTemplate {
pub tr: Tr,
pub context: Context,
pub recipes: Recipes,
}