fix meta issue with attributes
This commit is contained in:
parent
1e9d345831
commit
b881167b8f
|
@ -19,7 +19,10 @@ use leptos::{
|
|||
hydration::Cursor,
|
||||
reactive_graph::RenderEffectState,
|
||||
renderer::{dom::Dom, Renderer},
|
||||
view::{Mountable, Position, PositionState, Render, RenderHtml},
|
||||
view::{
|
||||
add_attr::AddAnyAttr, Mountable, Position, PositionState, Render,
|
||||
RenderHtml,
|
||||
},
|
||||
},
|
||||
text_prop::TextProp,
|
||||
IntoView,
|
||||
|
@ -114,6 +117,20 @@ impl Render<Dom> for BodyView {
|
|||
}
|
||||
}
|
||||
|
||||
impl AddAnyAttr<Dom> for BodyView {
|
||||
type Output<SomeNewAttr: Attribute<Dom>> = BodyView;
|
||||
|
||||
fn add_any_attr<NewAttr: Attribute<Dom>>(
|
||||
mut self,
|
||||
attr: NewAttr,
|
||||
) -> Self::Output<NewAttr>
|
||||
where
|
||||
Self::Output<NewAttr>: RenderHtml<Dom>,
|
||||
{
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
impl RenderHtml<Dom> for BodyView {
|
||||
type AsyncOutput = Self;
|
||||
|
||||
|
|
|
@ -20,7 +20,10 @@ use leptos::{
|
|||
hydration::Cursor,
|
||||
reactive_graph::RenderEffectState,
|
||||
renderer::{dom::Dom, Renderer},
|
||||
view::{Mountable, Position, PositionState, Render, RenderHtml},
|
||||
view::{
|
||||
add_attr::AddAnyAttr, Mountable, Position, PositionState, Render,
|
||||
RenderHtml,
|
||||
},
|
||||
},
|
||||
text_prop::TextProp,
|
||||
IntoView,
|
||||
|
@ -127,6 +130,20 @@ impl Render<Dom> for HtmlView {
|
|||
}
|
||||
}
|
||||
|
||||
impl AddAnyAttr<Dom> for HtmlView {
|
||||
type Output<SomeNewAttr: Attribute<Dom>> = HtmlView;
|
||||
|
||||
fn add_any_attr<NewAttr: Attribute<Dom>>(
|
||||
mut self,
|
||||
attr: NewAttr,
|
||||
) -> Self::Output<NewAttr>
|
||||
where
|
||||
Self::Output<NewAttr>: RenderHtml<Dom>,
|
||||
{
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
impl RenderHtml<Dom> for HtmlView {
|
||||
type AsyncOutput = Self;
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
|
||||
use futures::{Stream, StreamExt};
|
||||
use leptos::{
|
||||
attr::NextAttribute,
|
||||
component,
|
||||
logging::debug_warn,
|
||||
reactive_graph::owner::{provide_context, use_context},
|
||||
|
@ -60,7 +61,10 @@ use leptos::{
|
|||
},
|
||||
hydration::Cursor,
|
||||
renderer::{dom::Dom, Renderer},
|
||||
view::{Mountable, Position, PositionState, Render, RenderHtml},
|
||||
view::{
|
||||
add_attr::AddAnyAttr, Mountable, Position, PositionState, Render,
|
||||
RenderHtml,
|
||||
},
|
||||
},
|
||||
IntoView,
|
||||
};
|
||||
|
@ -340,6 +344,31 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
impl<E, At, Ch> AddAnyAttr<Dom> for RegisteredMetaTag<E, At, Ch>
|
||||
where
|
||||
E: ElementType + CreateElement<Dom> + Send,
|
||||
At: Attribute<Dom> + Send,
|
||||
Ch: RenderHtml<Dom> + Send,
|
||||
{
|
||||
type Output<SomeNewAttr: Attribute<Dom>> = RegisteredMetaTag<
|
||||
E,
|
||||
<At as NextAttribute<Dom>>::Output<SomeNewAttr>,
|
||||
Ch,
|
||||
>;
|
||||
|
||||
fn add_any_attr<NewAttr: Attribute<Dom>>(
|
||||
mut self,
|
||||
attr: NewAttr,
|
||||
) -> Self::Output<NewAttr>
|
||||
where
|
||||
Self::Output<NewAttr>: RenderHtml<Dom>,
|
||||
{
|
||||
RegisteredMetaTag {
|
||||
el: self.el.map(|inner| inner.add_any_attr(attr)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<E, At, Ch> RenderHtml<Dom> for RegisteredMetaTag<E, At, Ch>
|
||||
where
|
||||
E: ElementType + CreateElement<Dom>,
|
||||
|
@ -439,6 +468,20 @@ impl Render<Dom> for MetaTagsView {
|
|||
fn rebuild(self, state: &mut Self::State) {}
|
||||
}
|
||||
|
||||
impl AddAnyAttr<Dom> for MetaTagsView {
|
||||
type Output<SomeNewAttr: Attribute<Dom>> = MetaTagsView;
|
||||
|
||||
fn add_any_attr<NewAttr: Attribute<Dom>>(
|
||||
self,
|
||||
_attr: NewAttr,
|
||||
) -> Self::Output<NewAttr>
|
||||
where
|
||||
Self::Output<NewAttr>: RenderHtml<Dom>,
|
||||
{
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl RenderHtml<Dom> for MetaTagsView {
|
||||
type AsyncOutput = Self;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
use crate::{use_head, MetaContext, ServerMetaContext};
|
||||
use leptos::{
|
||||
attr::Attribute,
|
||||
component,
|
||||
error::Result,
|
||||
oco::Oco,
|
||||
|
@ -11,7 +12,10 @@ use leptos::{
|
|||
dom::document,
|
||||
hydration::Cursor,
|
||||
renderer::{dom::Dom, Renderer},
|
||||
view::{Mountable, Position, PositionState, Render, RenderHtml},
|
||||
view::{
|
||||
add_attr::AddAnyAttr, Mountable, Position, PositionState, Render,
|
||||
RenderHtml,
|
||||
},
|
||||
},
|
||||
text_prop::TextProp,
|
||||
IntoView,
|
||||
|
@ -222,6 +226,20 @@ impl Render<Dom> for TitleView {
|
|||
}
|
||||
}
|
||||
|
||||
impl AddAnyAttr<Dom> for TitleView {
|
||||
type Output<SomeNewAttr: Attribute<Dom>> = TitleView;
|
||||
|
||||
fn add_any_attr<NewAttr: Attribute<Dom>>(
|
||||
self,
|
||||
attr: NewAttr,
|
||||
) -> Self::Output<NewAttr>
|
||||
where
|
||||
Self::Output<NewAttr>: RenderHtml<Dom>,
|
||||
{
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl RenderHtml<Dom> for TitleView {
|
||||
type AsyncOutput = Self;
|
||||
|
||||
|
|
Loading…
Reference in New Issue