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