update the update_state method

This commit is contained in:
Evan Almloff committed 2023-01-01 12:10:19 -06:00
1 parent bc2925240e
commit 3c507479cb
7 files changed
+83 -63

No files matched your search

+5 -6
View File
@@ -3,7 +3,7 @@ use crate::{node::PreventDefault, TuiDom};
use dioxus_native_core::{
tree::TreeView,
utils::{ElementProduced, PersistantElementIter},
NodeId, Pass,
NodeId, Pass, SendAnyMap,
};
use dioxus_native_core_macro::sorted_str_slice;
@@ -62,7 +62,6 @@ pub(crate) struct Focus {
}
impl Pass for Focus {
type Ctx = ();
const NODE_MASK: NodeMask =
NodeMask::new_with_attrs(AttributeMask::Static(FOCUS_ATTRIBUTES)).with_listeners();
@@ -73,18 +72,18 @@ impl Pass for Focus {
fn pass<'a>(
&mut self,
node_view: NodeView,
node: <Self::NodeDependencies as dioxus_native_core::Dependancy>::ElementBorrowed<'a>,
parent: Option<
_: <Self::NodeDependencies as dioxus_native_core::Dependancy>::ElementBorrowed<'a>,
_: Option<
<Self::ParentDependencies as dioxus_native_core::Dependancy>::ElementBorrowed<'a>,
>,
children: Option<
_: Option<
impl Iterator<
Item = <Self::ChildDependencies as dioxus_native_core::Dependancy>::ElementBorrowed<
'a,
>,
>,
>,
context: <Self::Ctx as dioxus_native_core::Dependancy>::ElementBorrowed<'a>,
_: &SendAnyMap,
) -> bool {
let new = Focus {
level: if let Some(a) = node_view
+7 -5
View File
@@ -3,7 +3,7 @@ use std::sync::{Arc, Mutex};
use dioxus_native_core::layout_attributes::apply_layout_attributes;
use dioxus_native_core::node::OwnedAttributeView;
use dioxus_native_core::node_ref::{AttributeMask, NodeMask, NodeView};
use dioxus_native_core::Pass;
use dioxus_native_core::{Pass, SendAnyMap};
use dioxus_native_core_macro::sorted_str_slice;
use taffy::prelude::*;
@@ -14,6 +14,7 @@ pub(crate) enum PossiblyUninitalized<T> {
Uninitalized,
Initialized(T),
}
impl<T> PossiblyUninitalized<T> {
pub fn unwrap(self) -> T {
match self {
@@ -41,7 +42,6 @@ pub(crate) struct TaffyLayout {
}
impl Pass for TaffyLayout {
type Ctx = (Arc<Mutex<Taffy>>,);
type ChildDependencies = (Self,);
type ParentDependencies = ();
type NodeDependencies = ();
@@ -52,8 +52,8 @@ impl Pass for TaffyLayout {
fn pass<'a>(
&mut self,
node_view: NodeView,
node: <Self::NodeDependencies as dioxus_native_core::Dependancy>::ElementBorrowed<'a>,
parent: Option<
_: <Self::NodeDependencies as dioxus_native_core::Dependancy>::ElementBorrowed<'a>,
_: Option<
<Self::ParentDependencies as dioxus_native_core::Dependancy>::ElementBorrowed<'a>,
>,
children: Option<
@@ -63,9 +63,11 @@ impl Pass for TaffyLayout {
>,
>,
>,
(taffy,): <Self::Ctx as dioxus_native_core::Dependancy>::ElementBorrowed<'a>,
ctx: &SendAnyMap,
) -> bool {
println!("running layout pass on node: \n{:#?}", node_view);
let mut changed = false;
let taffy: &Arc<Mutex<Taffy>> = ctx.get().unwrap();
let mut taffy = taffy.lock().expect("poisoned taffy");
let mut style = Style::default();
if let Some(text) = node_view.text() {
+2 -4
View File
@@ -1,7 +1,7 @@
use crate::focus::Focus;
use crate::layout::TaffyLayout;
use crate::style_attributes::StyleModifier;
use dioxus_native_core::{real_dom::RealDom, Dependancy, Pass};
use dioxus_native_core::{real_dom::RealDom, Dependancy, Pass, SendAnyMap};
use dioxus_native_core_macro::{sorted_str_slice, AnyMapLike, State};
pub(crate) type TuiDom = RealDom<NodeState>;
@@ -48,8 +48,6 @@ impl Pass for PreventDefault {
type ChildDependencies = ();
type NodeDependencies = ();
type Ctx = ();
const NODE_MASK: dioxus_native_core::node_ref::NodeMask =
dioxus_native_core::node_ref::NodeMask::new_with_attrs(
dioxus_native_core::node_ref::AttributeMask::Static(&sorted_str_slice!([
@@ -66,7 +64,7 @@ impl Pass for PreventDefault {
children: Option<
impl Iterator<Item = <Self::ChildDependencies as Dependancy>::ElementBorrowed<'a>>,
>,
context: <Self::Ctx as Dependancy>::ElementBorrowed<'a>,
context: &SendAnyMap,
) -> bool {
let new = match node_view.attributes().and_then(|mut attrs| {
attrs
+4 -5
View File
@@ -33,7 +33,7 @@ use dioxus_native_core::{
layout_attributes::parse_value,
node::OwnedAttributeView,
node_ref::{AttributeMask, NodeMask, NodeView},
Pass,
Pass, SendAnyMap,
};
use dioxus_native_core_macro::sorted_str_slice;
use taffy::prelude::*;
@@ -47,7 +47,6 @@ pub struct StyleModifier {
}
impl Pass for StyleModifier {
type Ctx = ();
type ParentDependencies = (Self,);
type ChildDependencies = ();
type NodeDependencies = ();
@@ -59,18 +58,18 @@ impl Pass for StyleModifier {
fn pass<'a>(
&mut self,
node_view: NodeView,
node: <Self::NodeDependencies as dioxus_native_core::Dependancy>::ElementBorrowed<'a>,
_: <Self::NodeDependencies as dioxus_native_core::Dependancy>::ElementBorrowed<'a>,
parent: Option<
<Self::ParentDependencies as dioxus_native_core::Dependancy>::ElementBorrowed<'a>,
>,
children: Option<
_: Option<
impl Iterator<
Item = <Self::ChildDependencies as dioxus_native_core::Dependancy>::ElementBorrowed<
'a,
>,
>,
>,
context: <Self::Ctx as dioxus_native_core::Dependancy>::ElementBorrowed<'a>,
_: &SendAnyMap,
) -> bool {
let mut new = StyleModifier::default();
if parent.is_some() {