🔥 Remove body and region, not context-specific

This commit is contained in:
Manuel Cillero 2024-04-23 21:40:29 +02:00
parent ece78b2b4a
commit 2d906621de
6 changed files with 76 additions and 170 deletions

View file

@ -7,7 +7,8 @@ use crate::base::action;
use crate::core::component::{AnyComponent, AnyOp, ComponentTrait};
use crate::core::component::{AssetsOp, Context};
use crate::fn_builder;
use crate::html::{html, ClassesOp, Favicon, Markup, OptionTranslated, DOCTYPE};
use crate::html::{html, Favicon, Markup, DOCTYPE};
use crate::html::{ClassesOp, OptionClasses, OptionId, OptionTranslated};
use crate::locale::L10n;
use crate::service::HttpRequest;
@ -15,24 +16,30 @@ use unic_langid::CharacterDirection;
#[rustfmt::skip]
pub struct Page {
title : OptionTranslated,
description: OptionTranslated,
metadata : Vec<(&'static str, &'static str)>,
properties : Vec<(&'static str, &'static str)>,
favicon : Option<Favicon>,
context : Context,
title : OptionTranslated,
description : OptionTranslated,
metadata : Vec<(&'static str, &'static str)>,
properties : Vec<(&'static str, &'static str)>,
favicon : Option<Favicon>,
context : Context,
body_id : OptionId,
body_classes: OptionClasses,
body_skip_to: OptionId,
}
impl Page {
#[rustfmt::skip]
pub fn new(request: HttpRequest) -> Self {
Page {
title : OptionTranslated::default(),
description: OptionTranslated::default(),
metadata : Vec::default(),
properties : Vec::default(),
favicon : None,
context : Context::new(request),
title : OptionTranslated::default(),
description : OptionTranslated::default(),
metadata : Vec::default(),
properties : Vec::default(),
favicon : None,
context : Context::new(request),
body_id : OptionId::default(),
body_classes: OptionClasses::default(),
body_skip_to: OptionId::default(),
}
}
@ -76,19 +83,19 @@ impl Page {
#[fn_builder]
pub fn alter_body_id(&mut self, id: impl Into<String>) -> &mut Self {
self.context.alter_body_id(id);
self.body_id.alter_value(id);
self
}
#[fn_builder]
pub fn alter_body_classes(&mut self, op: ClassesOp, classes: impl Into<String>) -> &mut Self {
self.context.alter_body_classes(op, classes);
self.body_classes.alter_value(op, classes);
self
}
#[fn_builder]
pub fn alter_body_skip_to(&mut self, id: impl Into<String>) -> &mut Self {
self.context.alter_body_skip_to(id);
self.body_skip_to.alter_value(id);
self
}
@ -146,6 +153,18 @@ impl Page {
&mut self.context
}
pub fn body_id(&self) -> &OptionId {
&self.body_id
}
pub fn body_classes(&self) -> &OptionClasses {
&self.body_classes
}
pub fn body_skip_to(&self) -> &OptionId {
&self.body_skip_to
}
// Page RENDER.
pub fn render(&mut self) -> ResultPage<Markup, ErrorPage> {