* Change the suspense streaming context after suspense is resolved in the router
* Wait for the suspense context before streaming the first chunk in ssr
* forward more response parts
* warn
* extract the hydration format into a crate
* Fix hydration when no data is sent
* forward web and server features
* Fix suspense that starts on the client
* fix use_server_future on the client
* Add documentation for fullstack hooks and protocol
* downgrade rust edition
* fix clippy
* fix tests
* fix clippy
* Fix pure web compile
* undo changes to the fullstack router example
* fix formatting
* fiexed the bug when future restarts the state goes to ready instead of pending
* fix typo
* Fix future and formatting
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
The current `axum` feature and `server` feature are incompatible with wasm32-unknown-unknown target
due to:
1. depends on axum features not compatible with wasm
2. SSR requires reading the filesystem for index.html
With this patch I add the `server_fn_axum` feature which disables SSR and enables targeting
wasm32-unknown-unknown with server functions enabled.
Note that for this to work, `server_fn` depends on `inventory` and as stated in this docs depending on
the context you might need to expose and call [`__wasm_call_ctors`](https://docs.rs/inventory/latest/inventory/#webassembly-and-constructors)
(I needed that specifically for cloudflare workers)
change axum_server_fn feature for axum_wasm and include SSR tools there
This change additionaly make axum_server_fn feature additive by exposing a different
`DioxusRouterWasmExt` with only the wasm-compatible parts instead of exposing the
`DioxusRouter` trait under the same name.
Docs are updated to reflect this change.
rename axum_wasm to axum_core and update docs
fix typo
re-enable default-features for axum in dioxus-cli
re-enable axum default-features for liveview
re-enable default-features for axum for playwright-tests
* return a 404 when paring the route fails
* add a playwright test for fullstack routing status codes
* Fix new playwright test
* document SSRError
* Make SSRError public and fix clippy
* Move the error display bound to the routable trait
* fix clippy
* return a more generic 404 message
* fix router tests
* Fix --target flag not passed to cargo when Platform == Server
* revision: use --server-target flag
---------
Co-authored-by: Miles Murgaw <milesmurgaw@gmail.com>
* feat: wasm-split base implementation
* kinda sorta works with the cli
* okay great it actually works
* fix: cache busting for chunks
* cleaned up version
* it works with the router
* wip: migrate to a faster linear solution using id remapping
* add a good harness
* it works completely on the docsite
* the super tight build works too
* make parallelizable
* works on the docsite but not the harness
* light cleanups, fix for both harness and docsite
* make codegen smaller by extract some shared functions to prevent monos
* chunking works, but tbd on tuning heuristics
* extract used module
* wip: cleaning up module
* wip: much better understanding of how imports work
* fix the call graph
* working again...
* wip: thinking about ifuncs
* ifunc approach works
* yes the ifunc approach works!!
* it all works completely even with chunks
* small cleanups
* comments
* actually locate all of the symbols
* clean up final implementation
* clean up tomls, revert some mono changs
* clean up, add some more comments / docs in places
* hoist more packages
* clean up impl a bit more
* clean cli
* move harness to playwright
* update playwright
* extract codgen
* add lazy to components
* Add docs to split loader
* clippy
* typos
* clippy, don't generate splits if not on wasm
* whoops, const
* Typos and docs
* enable optimizations in ci
* add optimizations to ci
* add wasm-split router feature
* parallel playwright?
* fix no case check
* disable pre-compress... think that might be the issue
* better logging, no default pre-compress, caching of shared symbols
* Fix: compressing assets
* fix non-interactive logging for serve
* cache playwright even on failure, use the cli with optimizations
* fix prebuild
* fix playwright webserver
* Hash and compare templates by value in debug mode
* add a regression test for layout state persisting after navigation
* More reliable static item merged detection
Related to #3530
Add examples for `with_cfg`, `with_context`, and `with_context_provider` methods in the `LaunchBuilder` documentation.
* **with_context_provider**: Add an example demonstrating how to inject state into the root component's context created on the thread that the app is launched on.
* **with_context**: Add an example demonstrating how to inject state into the root component's context.
* **with_cfg**: Add an example demonstrating how to provide a platform-specific config to the builder.
* fix(android): now dev server just works on devices
* fix: allow custom port for Android app development
* refactor: simplified URL creation in LaunchBuilder
* Fix hot reloading to empty rsx
* Only normalize the template when hot reloading and rendering
* add a test for emptying out an rsx block in hot reloading
* wip: bind to 0.0.0.0 instead of 127.0.0.1
* dont hang in background - ignore suspend commands when tty is disabled
* use system adb
* pass configs through to android mobile launch
* fix: line sizes + clear pushes frame
* dont resume window state on mobile
* fix screen sizing for ipad
* attempt and fail to implement codesigning
* Clippy and note about safety in android bindings
When resizing a window, Dioxus previously accidentally resized every
single webview to the dimensions of the window that just got resized.
This fixes it so only the webview that is associated with the window is
resized.