|
1 | 1 | use std::marker::PhantomData; |
2 | 2 |
|
3 | | -use frender_attrs::{ |
4 | | - experimental::csr::{CsrAttributes, RenderAttributes}, |
5 | | - IntoAttributes, |
6 | | -}; |
| 3 | +use frender_attrs::{experimental::csr::CsrAttributes, IntoAttributes}; |
7 | 4 | use frender_common::convert::FromMut as _; |
8 | | -use frender_dom::csr::behaviors; |
9 | 5 |
|
10 | 6 | use crate::{ |
11 | 7 | csr::behavior_type::{BehaviorType, UnpinnedNonReactiveRenderStateKind, UnpinnedRenderWithBehavior}, |
12 | 8 | html::{behavior_type_traits, RenderHtml}, |
13 | 9 | }; |
14 | 10 |
|
15 | | -use super::Attrs; |
| 11 | +use frender_dom_values::Attrs; |
16 | 12 |
|
17 | 13 | enum Never {} |
18 | 14 | pub struct StateKind<S>(Never, PhantomData<S>); |
|
35 | 31 | renderer: &mut R, |
36 | 32 | b: &mut <BT as BehaviorType>::OfBehaviorType<R>, |
37 | 33 | ) -> <Self::UnpinnedRenderStateKind as crate::csr::behavior_type::UnpinnedNonReactiveRenderStateKind>::UnpinnedNonReactiveState<R> { |
38 | | - T::into_attributes(this.0).render_init(&mut Render { |
39 | | - renderer, |
40 | | - element: BT::Element::from_mut(b), |
41 | | - }) |
| 34 | + this.csr_render_init(renderer, BT::Element::from_mut(b)) |
42 | 35 | } |
43 | 36 |
|
44 | 37 | fn unpinned_render_update_with_behavior<R: ?Sized + RenderHtml>( |
|
48 | 41 | b: &mut <BT as BehaviorType>::OfBehaviorType<R>, |
49 | 42 | state: &mut <Self::UnpinnedRenderStateKind as crate::csr::behavior_type::UnpinnedNonReactiveRenderStateKind>::UnpinnedNonReactiveState<R>, |
50 | 43 | ) { |
51 | | - T::into_attributes(this.0).render_update( |
52 | | - &mut Render { |
53 | | - renderer, |
54 | | - element: BT::Element::from_mut(b), |
55 | | - }, |
56 | | - state, |
57 | | - ) |
58 | | - } |
59 | | -} |
60 | | - |
61 | | -struct Render<'a, R: ?Sized, E: ?Sized> { |
62 | | - renderer: &'a mut R, |
63 | | - element: &'a mut E, |
64 | | -} |
65 | | - |
66 | | -impl<R: ?Sized, E: ?Sized + behaviors::Element<R>> RenderAttributes for Render<'_, R, E> { |
67 | | - fn set_attribute(&mut self, name: &str, value: &str) { |
68 | | - self.element.set_attribute(self.renderer, name, value) |
69 | | - } |
70 | | - |
71 | | - fn remove_attribute(&mut self, name: &str) { |
72 | | - self.element.remove_attribute(self.renderer, name) |
| 44 | + this.csr_render_update(renderer, BT::Element::from_mut(b), state) |
73 | 45 | } |
74 | 46 | } |
0 commit comments