Evan Almloff
6320e00056
Convert closures into Option<Callback> automatcially ( #2538 )
...
* convert from a closure to Option<Callback> in props
* add a test for optional callback conversion
2024-06-18 16:39:35 -07:00
Evan Almloff
a09548d80e
Remove implicit optional dependency features ( #2512 )
...
* remove implicit optional dependency features
* switch to new features in desktop, router and signals crates
2024-06-18 18:39:15 -05:00
Evan Almloff
b0ae9be9c8
Simplify dioxus-config-macro ( #2514 )
...
* refactor config macro code
* fix clippy
2024-06-18 16:10:23 -07:00
Evan Almloff
3a4860add4
Document props and component macro ( #2522 )
...
* document prop attributes
* document children props
* fix children doc test
2024-06-18 16:06:54 -07:00
Evan Almloff
d795995e20
Create closure type; allow async event handlers in props; allow short hand event handlers ( #2437 )
...
* create closure type; allow async event handlers in props; allow shorthand event handlers
* test forwarding event handlers with the shorthand syntax
* fix clippy
* fix imports in spawn async doctest
2024-06-10 18:47:07 -07:00
Evan Almloff
e4764f2bba
switch from slab to slotmap for tasks to fix that ABA problem ( #2488 )
2024-06-07 14:36:08 -07:00
Evan Almloff
5024139e01
Detect components called as functions ( #2461 )
...
* detect components called as functions
* use the existing component name information instead of a thread local
2024-06-07 13:55:10 -07:00
Evan Almloff
0127501dbf
Improve inline docs ( #2460 )
...
Improve inline docs
* improve incorrect event handler return error message
* Improve event handler docs
* document the eval functions
* document spawn and common spawn errors
* fix event handler docs
* add notes about how you use attributes and elements in rsx
* add doc aliases for attributes and events we rename
* add some more aliases for common search terms
* don't doc ignore any public examples in core
* don't ignore public doc examples in ssr
* don't ignore examples in the dioxus package readme
* add a warning when you launch without a renderer enabled
* fix some outdated element docs
* add a bunch of examples to resource
* add notes about desktop events
* add more docs for use_resource
* add on_unimplemented hint to Dependency
* fix some unresolved links
* add examples to each of the router traits
* add not implemented errors for router traits
* add an example to the routable trait
* expand rsx macro docs
* improve memo docs
* update the dioxus readme
* mention dioxus crate features in the docs
* fix a bunch of doc tests
* fix html doc tests
* fix router doc tests
* fix dioxus signals doc tests
* fix dioxus ssr doc tests
* fix use_future example in the hooks cheat sheet
* add a javascript alias for eval
* fix hook explanation values
* remove unused embed-doc-image dependency
2024-06-06 18:15:17 -07:00
Evan Almloff
5494e38cf8
Fix event bubbling inside templates after a hot template reload ( #2484 )
2024-06-06 17:10:38 -07:00
Evan Almloff
b3cd4fac10
set up example scaping for docs.rs ( #2450 )
2024-05-28 13:05:55 -07:00
Evan Almloff
5290b658fd
Fix effects triggered from async tasks; improve work scheduling docs ( #2370 )
...
* outline work scheduling
* move scheduling code from dirty_scope to scheduler
* introduce queue_effect
* Run effects after all tasks are polled if there are no components rerendered
* add a new test for async effects
2024-05-04 15:30:13 +01:00
Evan Almloff
05eaca320f
fix empty docs clippy warning
2024-05-03 13:41:48 -05:00
Evan Almloff
fc2b441ee1
Fix memorization for the fragment component ( #2360 )
2024-04-26 00:48:06 -04:00
Evan Almloff
47c87568e1
Fix event handler memory leak ( #2298 )
...
* fix event handler memory leak and double drops
* Prevent double dropping generational boxes
* recycle instead of dropping
2024-04-26 00:47:22 -04:00
Evan Almloff
08da9a1253
Implement hash fragments in the router ( #2320 )
...
* implement hash fragments in the router
* clean up query and search example
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-04-25 14:30:25 -04:00
Evan Almloff
88f3558419
Fix reclaim element when hot reloading ( #2361 )
...
* Fix reclaim element when hot reloading
* Just disable headless tests on windows
2024-04-25 13:36:43 -04:00
Evan Almloff
5ce91e1bfc
Fix flakey windows tests ( #2332 )
2024-04-17 15:08:38 -07:00
Marc Espin
29f69fa145
fix: Update use_hook
docs ( #2296 )
...
* fix: Update `use_hook` docs
* rust
* fixes
2024-04-11 15:43:58 -05:00
Evan Almloff
a012fb57ab
poll tasks in the same order they are queued ( #2273 )
2024-04-08 18:44:43 -07:00
Evan Almloff
26c109f661
fix volatile attributes ( #2278 )
2024-04-08 18:42:48 -07:00
Ahmet Kaan GÜMÜŞ
e03593cff7
docs: ✏️ unnecessary need to in global_context.rs ( #2268 )
2024-04-08 08:51:14 -05:00
Jonathan Kelley
702509cb7e
Fix recycling on component callbacks ( #2247 )
2024-04-04 16:48:06 -07:00
Jonathan Kelley
633e2a70a4
Fix memory leak in owner ( #2245 )
...
* Fix: memory leak on listeners for elements
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-04-04 15:32:23 -07:00
Jonathan Kelley
44fe2defc2
Fix: memory leak on listeners for elements ( #2244 )
...
* Fix: memory leak on listeners for elements
* Recycle in manuallydrop
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-04-04 14:25:17 -07:00
Jonathan Kelley
6f3c5518ca
Feat: provide root context as method on virtualdom ( #2243 )
2024-04-04 12:00:06 -07:00
Jonathan Kelley
821a650f77
Fix: requeue events, process events ( #2236 )
...
* Fix: requeue events, process events
* Fix test: wait_for_work shouldn't wait 3 times when one update happens while rendering
2024-04-04 11:46:31 -07:00
Evan Almloff
c8140c78b3
reuse placeholder and empty nodes on each thread to reduce allocation ( #2217 )
2024-04-02 10:52:16 -07:00
Evan Almloff
5df333fca2
fix and test spawn_forever ( #2216 )
2024-04-02 10:52:00 -07:00
Marko Lazić
cec6b92e42
Move dioxus_core::diff::node logs from info to trace #2165 ( #2182 )
...
Co-authored-by: Lazić <markolazic@protonmail.com>
2024-03-29 12:17:00 -05:00
Jonathan Kelley
537f064001
Remove some old docs, cleanup some readmes
2024-03-27 17:28:30 -07:00
Miles Murgaw
3cbe6ff96e
Fix Outdated README.md ( #2147 )
...
* fix: outdated readme
* Fix missing readme
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-03-26 19:17:02 -07:00
Evan Almloff
0662033c84
Fix early drop of eventhandlers ( #2126 )
...
* fix early drop of eventhandlers
* add a test for stale props that are memorized in place
* fix clippy
2024-03-22 14:37:02 -07:00
Jonathan Kelley
44e997f7df
Fix eventhandler optional ( #2119 )
2024-03-20 09:04:37 -07:00
Evan Almloff
58f7efafea
Make EventHandler copy ( #2112 )
...
* implement Copy for EventHandler
* implement from closure for event handler and remove special on prefix
* fix props implementation of EventHandler
2024-03-19 19:48:53 -07:00
Jonathan Kelley
2dc6cecf2e
Fix #2043 : use formvalue instead of String for forms ( #2103 )
...
Fix #2043 : use formvalue instead of String for forms
2024-03-18 18:21:08 -07:00
Jonathan Kelley
9c64fc4769
Fix #1938 , allow explicit props
2024-03-18 15:34:46 -07:00
Jonathan Kelley
6ab6e56de9
Make clippy happy
2024-03-17 21:39:29 -07:00
Jonathan Kelley
834d490beb
Fix : #2095 , #1990
...
- Don't merge dynamic attributes together unnecessarily
- Walk the workspace until we find a target dir with the dioxusin handle
2024-03-17 21:14:26 -07:00
Jonathan Kelley
1b8f7023f9
Merge branch 'main' into unwind-into-error-boundary
2024-03-15 12:15:55 -07:00
Jonathan Kelley
9474ad54cc
Make clippy happy
2024-03-14 22:40:23 -07:00
Evan Almloff
2e7b8cb178
unwind panics into error boundaries
2024-03-13 18:55:57 -05:00
Jonathan Kelley
e4f65b7260
Tests: add tests for hotreload and recurse into children
2024-03-13 14:15:34 -07:00
Jonathan Kelley
bca5335f31
fix: hotreloading files with multiple templates, asset hotreloading
2024-03-13 02:13:37 -07:00
Evan Almloff
88e2dc127a
Never remove queued tasks without polling during suspense
2024-03-11 17:43:08 -05:00
Evan Almloff
bbc81b8f9c
fix memos in children; introduce isomorphic spawn
2024-03-08 16:40:31 -06:00
Jonathan Kelley
7461a14cb4
fix 2020: return None if the root nodes are empty in rsx ( #2026 )
2024-03-08 15:57:46 -06:00
Jonathan Kelley
295c29db5d
Merge pull request #2005 from ealmloff/fix-suspense
...
Only poll suspended futures, lazy memos
2024-03-07 23:43:52 -08:00
Evan Almloff
9bad802beb
clean up dirty scopes module
2024-03-07 21:04:48 -06:00
Evan Almloff
cca92b9fed
remove extra logging
2024-03-07 20:51:19 -06:00
Evan Almloff
e72bf5820f
reuse remove_task in handle_task_wakeup
2024-03-07 20:47:43 -06:00
Jonathan Kelley
ae352f8958
Feat: reject invalid keys
2024-03-07 16:03:00 -08:00
Evan Almloff
3d7f419636
fix memos during suspense
2024-03-07 11:49:51 -06:00
Evan Almloff
c9603ea984
only poll suspended futures
2024-03-05 18:24:01 -06:00
Evan Almloff
287416cfa7
rename flush_sync to wait_for_next_render
2024-03-04 19:52:17 -06:00
Evan Almloff
2e3a730ed5
fix clippy
2024-03-04 16:10:04 -06:00
Evan Almloff
3827378f68
Merge branch 'main' into fix-effect
2024-03-04 15:40:37 -06:00
Evan Almloff
b42992bad1
add more internal documentation about tasks
2024-03-04 15:38:28 -06:00
Evan Almloff
fc7efd8006
test child future drop behavior
2024-03-04 15:26:16 -06:00
Evan Almloff
797feb5657
remove logging, clean up some code, and fix effect test
2024-03-04 15:09:31 -06:00
Evan Almloff
c4b8ebc1cf
separate task and scope tasks
2024-03-04 13:04:22 -06:00
Evan Almloff
78b9b157dc
fix formatting
2024-03-04 12:04:09 -06:00
Evan Almloff
a14e5be7ad
Fix effect ordering after reruns
2024-03-01 12:46:07 -06:00
Evan Almloff
26f5fb80cb
clean up the task queue
2024-03-01 12:18:42 -06:00
Jeremy Arnold
9ae3d14e67
Add tracing to virtual_dom ( #1949 )
...
Address #1161 ; Add tracing to virtual dom:
- Added a dependency on [tracing-fluent-assertions](https://github.com/tobz/tracing-fluent-assertions ) for test cases
- Added a test case showing tracing
example log
```
2024-02-28T21:52:25.266474Z TRACE dioxus_core::scope_context: providing context alloc::rc::Rc<dioxus_core::error_boundary::ErrorBoundary> (TypeId { t: 86211292795840746005296084033382154959 }) in app
at packages/core/src/scope_context.rs:189
in dioxus_core::virtual_dom::VirtualDom::new
2024-02-28T21:52:25.266651Z TRACE dioxus_core::scope_context: looking for context generational_box::Owner<generational_box::sync::SyncStorage> (TypeId { t: 16187079142358387300491255137481079601 }) in app
at packages/core/src/scope_context.rs:106
in dioxus_core::scope_arena::render with scope: app
in dioxus_core::virtual_dom::VirtualDom::rebuild
2024-02-28T21:52:25.266662Z TRACE dioxus_core::scope_context: context generational_box::Owner<generational_box::sync::SyncStorage> (TypeId { t: 16187079142358387300491255137481079601 }) not found
at packages/core/src/scope_context.rs:140
in dioxus_core::scope_arena::render with scope: app
in dioxus_core::virtual_dom::VirtualDom::rebuild
2024-02-28T21:52:25.266671Z TRACE dioxus_core::scope_context: providing context generational_box::Owner<generational_box::sync::SyncStorage> (TypeId { t: 16187079142358387300491255137481079601 }) in app
at packages/core/src/scope_context.rs:189
in dioxus_core::scope_arena::render with scope: app
in dioxus_core::virtual_dom::VirtualDom::rebuild
2024-02-28T21:52:25.266713Z TRACE dioxus_core::scope_context: providing context dioxus_signals::reactive_context::ReactiveContext (TypeId { t: 86476382904980360086558195405008306005 }) in app
at packages/core/src/scope_context.rs:189
in dioxus_core::scope_arena::render with scope: app
in dioxus_core::virtual_dom::VirtualDom::rebuild
2024-02-28T21:52:25.266723Z TRACE dioxus_core::scope_context: looking for context generational_box::Owner (TypeId { t: 87785542931436862771411509553978749471 }) in app
at packages/core/src/scope_context.rs:106
in dioxus_core::scope_arena::render with scope: app
in dioxus_core::virtual_dom::VirtualDom::rebuild
2024-02-28T21:52:25.266730Z TRACE dioxus_core::scope_context: context generational_box::Owner (TypeId { t: 87785542931436862771411509553978749471 }) not found
at packages/core/src/scope_context.rs:140
in dioxus_core::scope_arena::render with scope: app
in dioxus_core::virtual_dom::VirtualDom::rebuild
2024-02-28T21:52:25.266769Z TRACE dioxus_core::scope_context: providing context generational_box::Owner (TypeId { t: 87785542931436862771411509553978749471 }) in app
at packages/core/src/scope_context.rs:189
in dioxus_core::scope_arena::render with scope: app
in dioxus_core::virtual_dom::VirtualDom::rebuild
2024-02-28T21:52:25.266828Z INFO dioxus_core::diff::node: creating template, self: VNode { vnode: VNodeInner { key: None, template: Cell { value: Template { name: "packages/core/tests/tracing.rs:60:5:1728", roots: [Element { tag: "div", namespace: None, attrs: [], children: [Element { tag: "button", namespace: None, attrs: [Dynamic { id: 0 }], children: [Text { text: "+" }] }, Element { tag: "button", namespace: None, attrs: [Dynamic { id: 1 }], children: [Text { text: "-" }] }, Element { tag: "ul", namespace: None, attrs: [], children: [Dynamic { id: 0 }] }] }], node_paths: [[0, 2, 0]], attr_paths: [[0, 0], [0, 1]] } }, dynamic_nodes: [Placeholder(VPlaceholder)], dynamic_attrs: [[Attribute { name: "onclick", value: Listener, namespace: None, volatile: false }], [Attribute { name: "onclick", value: Listener, namespace: None, volatile: false }]] }, mount: Cell { value: MountId(0) } }, mount: MountId(0)
at packages/core/src/diff/node.rs:547
in dioxus_core::virtual_dom::VirtualDom::rebuild
2024-02-28T21:52:25.266896Z TRACE dioxus_core::virtual_dom: Calling 1 listeners
at packages/core/src/virtual_dom.rs:695
in dioxus_core::virtual_dom::VirtualDom::handle_bubbling_event with parent: Some(ElementRef { path: ElementPath { path: [0, 0] }, mount: MountId(0) }), name: "click"
in dioxus_core::virtual_dom::VirtualDom::handle_event with name: "click", data: Any { .. }, element: ElementId(2), bubbles: true
2024-02-28T21:52:25.266934Z TRACE dioxus_core::virtual_dom: Marking scope ScopeId(0) (app) as dirty
at packages/core/src/virtual_dom.rs:379
in dioxus_core::virtual_dom::VirtualDom::process_events
2024-02-28T21:52:25.266997Z INFO dioxus_core::diff::node: creating template, self: VNode { vnode: VNodeInner { key: None, template: Cell { value: Template { name: "packages/core/tests/tracing.rs:71:37:2059", roots: [Dynamic { id: 0 }], node_paths: [[0]], attr_paths: [] } }, dynamic_nodes: [Component(VComponent { name: "ChildExample" })], dynamic_attrs: [] }, mount: Cell { value: MountId(1) } }, mount: MountId(1)
at packages/core/src/diff/node.rs:547
in dioxus_core::virtual_dom::VirtualDom::render_immediate
2024-02-28T21:52:25.267026Z INFO dioxus_core::diff::node: creating template, self: VNode { vnode: VNodeInner { key: None, template: Cell { value: Template { name: "packages/core/tests/tracing.rs:81:5:2238", roots: [Element { tag: "li", namespace: None, attrs: [Dynamic { id: 0 }], children: [DynamicText { id: 0 }] }], node_paths: [[0, 0]], attr_paths: [[0]] } }, dynamic_nodes: [Text(VText { value: "0" })], dynamic_attrs: [[Attribute { name: "onmouseover", value: Listener, namespace: None, volatile: false }]] }, mount: Cell { value: MountId(2) } }, mount: MountId(2)
at packages/core/src/diff/node.rs:547
in dioxus_core::virtual_dom::VirtualDom::render_immediate
2024-02-28T21:52:25.267061Z TRACE dioxus_core::virtual_dom: Calling 1 listeners
at packages/core/src/virtual_dom.rs:695
in dioxus_core::virtual_dom::VirtualDom::handle_bubbling_event with parent: Some(ElementRef { path: ElementPath { path: [0, 0] }, mount: MountId(0) }), name: "click"
in dioxus_core::virtual_dom::VirtualDom::handle_event with name: "click", data: Any { .. }, element: ElementId(2), bubbles: true
2024-02-28T21:52:25.267084Z TRACE dioxus_core::virtual_dom: Marking scope ScopeId(0) (app) as dirty
at packages/core/src/virtual_dom.rs:379
in dioxus_core::virtual_dom::VirtualDom::process_events
2024-02-28T21:52:25.267131Z INFO dioxus_core::diff::node: creating template, self: VNode { vnode: VNodeInner { key: None, template: Cell { value: Template { name: "packages/core/tests/tracing.rs:71:37:2059", roots: [Dynamic { id: 0 }], node_paths: [[0]], attr_paths: [] } }, dynamic_nodes: [Component(VComponent { name: "ChildExample" })], dynamic_attrs: [] }, mount: Cell { value: MountId(3) } }, mount: MountId(3)
at packages/core/src/diff/node.rs:547
in dioxus_core::virtual_dom::VirtualDom::render_immediate
2024-02-28T21:52:25.267157Z INFO dioxus_core::diff::node: creating template, self: VNode { vnode: VNodeInner { key: None, template: Cell { value: Template { name: "packages/core/tests/tracing.rs:81:5:2238", roots: [Element { tag: "li", namespace: None, attrs: [Dynamic { id: 0 }], children: [DynamicText { id: 0 }] }], node_paths: [[0, 0]], attr_paths: [[0]] } }, dynamic_nodes: [Text(VText { value: "1" })], dynamic_attrs: [[Attribute { name: "onmouseover", value: Listener, namespace: None, volatile: false }]] }, mount: Cell { value: MountId(4) } }, mount: MountId(4)
at packages/core/src/diff/node.rs:547
in dioxus_core::virtual_dom::VirtualDom::render_immediate
2024-02-28T21:52:25.267206Z TRACE dioxus_core::virtual_dom: Calling 1 listeners
at packages/core/src/virtual_dom.rs:695
in dioxus_core::virtual_dom::VirtualDom::handle_bubbling_event with parent: Some(ElementRef { path: ElementPath { path: [0, 0] }, mount: MountId(0) }), name: "click"
in dioxus_core::virtual_dom::VirtualDom::handle_event with name: "click", data: Any { .. }, element: ElementId(2), bubbles: true
2024-02-28T21:52:25.267229Z TRACE dioxus_core::virtual_dom: Marking scope ScopeId(0) (app) as dirty
at packages/core/src/virtual_dom.rs:379
in dioxus_core::virtual_dom::VirtualDom::process_events
2024-02-28T21:52:25.267274Z INFO dioxus_core::diff::node: creating template, self: VNode { vnode: VNodeInner { key: None, template: Cell { value: Template { name: "packages/core/tests/tracing.rs:71:37:2059", roots: [Dynamic { id: 0 }], node_paths: [[0]], attr_paths: [] } }, dynamic_nodes: [Component(VComponent { name: "ChildExample" })], dynamic_attrs: [] }, mount: Cell { value: MountId(5) } }, mount: MountId(5)
at packages/core/src/diff/node.rs:547
in dioxus_core::virtual_dom::VirtualDom::render_immediate
2024-02-28T21:52:25.267297Z INFO dioxus_core::diff::node: creating template, self: VNode { vnode: VNodeInner { key: None, template: Cell { value: Template { name: "packages/core/tests/tracing.rs:81:5:2238", roots: [Element { tag: "li", namespace: None, attrs: [Dynamic { id: 0 }], children: [DynamicText { id: 0 }] }], node_paths: [[0, 0]], attr_paths: [[0]] } }, dynamic_nodes: [Text(VText { value: "2" })], dynamic_attrs: [[Attribute { name: "onmouseover", value: Listener, namespace: None, volatile: false }]] }, mount: Cell { value: MountId(6) } }, mount: MountId(6)
at packages/core/src/diff/node.rs:547
in dioxus_core::virtual_dom::VirtualDom::render_immediate
```
2024-02-29 17:49:35 -06:00
Jonathan Kelley
d61c3fab20
Merge branch 'main' into debug-subscriptions
2024-02-29 12:30:27 -08:00
Evan Almloff
c7ffdc7b29
rerun tasks in the same order as components
2024-02-29 11:43:07 -06:00
Evan Almloff
277e4677e9
fix clippy
2024-02-26 11:49:05 -06:00
Evan Almloff
f539698963
add debug information for signal subscriptions
2024-02-26 11:46:01 -06:00
Jonathan Kelley
e0b0afc0a9
remove unsafe from tests in core
2024-02-22 17:46:51 -08:00
Evan Almloff
48751d2f98
only subscribe scopes to signals when rendering
2024-02-14 09:33:22 -06:00
Evan Almloff
476b2ac88a
fix client side suspense
2024-02-12 08:56:27 -06:00
Evan Almloff
162b033c36
provide feature hints for the dioxus crate as well
2024-02-09 12:23:57 -06:00
Evan Almloff
c431429448
fix web playwright tests
2024-02-05 15:25:51 -06:00
Jonathan Kelley
7e54039ed2
fix make tests
2024-02-05 12:24:59 -08:00
Evan Almloff
356497df4e
fix some clippy lints
2024-02-05 08:17:25 -06:00
Jonathan Kelley
4a7fe938ad
Make clippy happy
2024-02-04 23:03:52 -08:00
Jonathan Kelley
3295935de7
Fix panic on pausing dead tasks
2024-02-02 14:33:02 -08:00
Jonathan Kelley
f44b72f5e1
server_future uses use_resource
2024-02-02 14:08:21 -08:00
Jonathan Kelley
0fd7799bc2
disable use_future on the server
2024-02-02 13:36:19 -08:00
Jonathan Kelley
8f70a84c70
Use futures_util mutex instead of flume for sending flush lock wakeups
2024-02-02 13:09:26 -08:00
Jonathan Kelley
7c2947a131
Implement effects using reactivecontext
2024-02-01 13:21:52 -08:00
Jonathan Kelley
968f24a7b3
wip: reactive context instead of effect
2024-02-01 13:21:52 -08:00
Jonathan Kelley
0c71b95e82
skeleton of use_server_future with reactivity
2024-02-01 13:21:52 -08:00
Jonathan Kelley
8f07d881a6
Switch todo!() to unreachable!/unimplemented! where it matters
2024-01-31 16:26:20 -08:00
Jonathan Kelley
a14789eebc
rename inner on event to data
2024-01-31 16:26:19 -08:00
Jonathan Kelley
09e14f1936
Implement some clippy fixes
2024-01-30 18:17:45 -08:00
Jonathan Kelley
0bd9692e45
Fix cargo test and a number of little cleanup bugs
2024-01-30 17:33:14 -08:00
Jonathan Kelley
eff1dd6c90
Merge branch 'master' into breaking
2024-01-30 16:20:19 -08:00
Evan Almloff
aa03a6316a
remove Rc from the Component type alias
2024-01-30 12:29:47 -06:00
Jonathan Kelley
cef64d43df
move hooks out of signals crate
2024-01-29 17:02:26 -08:00
Jonathan Kelley
dcdada542b
Properly implement wait_for_suspense
...
Wait_for_suspense now does not call flush_sync, making it
appropriate for deferring effects on the server. Futures will
still run on the server (as needed to progress suspense)
but use_effect / and memo watchers will not run on the server
2024-01-29 14:12:05 -08:00
Evan Almloff
50e3216d8b
convert T into signals automatically
2024-01-29 13:36:39 -06:00
Jonathan Kelley
1847c737e9
Queue effects to run after flush_sync
2024-01-28 02:21:05 -08:00
Jonathan Kelley
7e4a1e9c7c
Move methods
2024-01-28 01:30:59 -08:00
Jonathan Kelley
7b0dcb3206
Add flush_sync and pre_render methods to core
2024-01-28 01:30:33 -08:00
Evan Almloff
c3edf99b63
make anyprops and vprops private again
2024-01-25 09:32:36 -06:00
Evan Almloff
458c13fb74
run effects in the scope they were created in
2024-01-24 18:34:22 -06:00
Evan Almloff
c3555a7ec0
fix Option<String> in props
2024-01-24 16:40:14 -06:00
Jonathan Kelley
c0522bc152
cargo check all
2024-01-23 16:58:29 -08:00
Evan Almloff
c172914b21
drop scopes in order when dropping the virtual dom
2024-01-23 11:40:45 -06:00