Commit Graph
19 Commits
Author SHA1 Message Date
Jonathan Kelley 4963aa3118 fix autofmt: don't panic when writing blocks out without a srcfile (#2854)
* fix: don't panic when writing blocks out
* also fix serialization for hotreload
* fix windows line endings
2024-08-16 21:55:30 -07:00
Miles Murgaw bd58a92441 CLI: Toasts & Tweaks (#2702)
* progress: cli toasts

* forgot the html

* progress: toasts

* revision: don't open splash on desktop

* fix: fmt, spellcheck
2024-07-25 14:38:45 -07:00
88af3e7eff Hotreloading of for/if/body, formatted strings, literals, component props, nested rsx, light CLI rewrite, cli TUI (#2258)
Hotreload the contents of for loops, if chains, component bodies, props, attributes, and any literals discovered in rsx!
Add a TUI renderer to the CLI.
Improve the CLI build system to be async and parallel.
Refactor RSX to allow partial expansion of expressions.
Merge autofmt implementations for consistency.
Merge the representation of elements and components under the hood.
Add a diagnostics system for rsx for improved error messages.
Drop interprocess and move to websockets for communication between the CLI and the server.
Assign IDs to nodes and attributes in a stable way to be used in non compiler contexts.
Add hotreloading to any body of component/for loop/if chain/etc.

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Liam Mitchell <liamkarlmitchell@gmail.com>
2024-07-17 19:11:18 -07:00
Jonathan Kelley 0b7c7701a3 fmt 2024-04-08 19:24:49 -07:00
Evan Almloff af524d979b Fix empty for loop, if statements and children (#2275)
* fix empty for loop, if statements and children

* fix clippy
2024-04-08 19:23:55 -07:00
Jonathan Kelley e923c6462c Resume window position/size, watch cargo/dioxus tomls, fix css reverting during hotreloading, allow menubar events to be captured from within dioxus (#2116)
* Fix: css hotreloading being invalidated, watcher not watching cargo/dioxus tomls, add feature to restore window state

* Make clappy hippier

* remove console log

* use simpler css invalidator

* Less flash, remove log on web hotreload

* Fix floating window managed behavior on mac

* clippy...
2024-03-20 09:16:18 -07:00
Jonathan Kelley 9474ad54cc Make clippy happy 2024-03-14 22:40:23 -07:00
Jonathan Kelley 982b96074a Add basic hotreload test samples 2024-03-13 13:07:15 -07:00
Jonathan Kelley bca5335f31 fix: hotreloading files with multiple templates, asset hotreloading 2024-03-13 02:13:37 -07:00
Evan Almloff 88e2da6c11 update the web renderer to the new dioxus core 2024-01-06 16:44:07 -06:00
Exotik850 fc31876a57 Wasm target check before build (#1689)
* Add `rustup show` check for wasm32 target

* better place for check

* fmt

* clippy fmt
2023-12-07 12:35:16 -06:00
Evan Almloff 45d386810b create features for large web-sys events/types 2023-07-28 15:38:07 -07:00
Jonathan Kelley 366e46eddf chore: add some fixes to hot reload 2022-12-25 23:22:43 -05:00
Evan Almloff db7a1ec0b0 fix lints 2022-12-21 13:04:57 -06:00
Evan Almloff 96ce704f8e fix serialization 2022-12-19 11:48:28 -06:00
= 0d9c350d5e implement for web and desktop 2022-12-15 21:16:37 -06:00
Jonathan Kelley ba26b1001a chore: clean up web impl 2022-11-30 17:44:00 -05:00
Demonthos 047ed1e553 Subtree memorization / reactive templates (#488)
This commit adds subtree memoization to Dioxus.

Subtree memoization is basically a compile-time step that drastically 
reduces the amount of work the diffing engine needs to do at runtime by
extracting non-changing nodes out into a static "template." Templates 
are then understood by the various renderers in the ecosystem as a 
faster way of rendering the same items. 

For example, in the web, templates are simply a set of DOM Nodes created 
once and then cloned later. This is the same pattern frameworks like Lithtml
and SolidJS use to achieve near-perfect performance. 

Subtree memoization adds an additional level of complexity to Dioxus. The RSX
macro needs to be much smarter to identify changing/nonchanging nodes and
generate a mapping between the Template and its runtime counterparts.

This commit represents a working starter point for this work, adding support 
for templates for the web, desktop, liveview, ssr, and native-core renderers.
In the future we will try to shrink code generation, generally improve 
performance, and simplify our implementation.
2022-09-30 12:03:06 -07:00
Demonthos 3a5d1a2ff8 fix web imports and extract hot reload handlers into seperate files (#484) 2022-07-04 13:18:11 -05:00