Commit Graph
100 Commits
Author SHA1 Message Date
Evan Almloff 84221f55a0 Wait for the suspense boundary above the router to resolve before sending the first streaming chunk (#3891)
* 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
2025-04-08 16:01:21 -05:00
Evan Almloff 4f74ef81d1 Fix escaped text in ssr stylesheets and scripts (#3933) 2025-04-07 18:38:46 -07:00
Evan Almloff 16cae8abaf fix key validation logic (#3936) 2025-04-07 17:29:53 -07:00
Evan Almloff 5e9a505465 Fix select multiple default value (#3953)
* Fix select multiple default value

* Add a playwright test for select multiple
2025-04-07 17:28:26 -07:00
Evan Almloff cbb91d694f Fix component macro with where clause (#3951) 2025-04-07 16:36:16 -07:00
Evan Almloff 589440b9cb Allow spread attributes to be set directly (#3881)
* allow spread attributes to be set directly

* Remove ordering requirement
2025-04-07 16:35:16 -07:00
Evan Almloff 8c866b783d Remove default features when fullstack is enabled and one platform is enabled in the default features (#3925)
* Don't enable default features when only either the server or client is enabled
2025-04-07 16:19:48 -07:00
dependabot[bot] 23286ade2b build(deps): bump openssl from 0.10.68 to 0.10.72 (#3955)
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.68 to 0.10.72.
- [Release notes](https://github.com/sfackler/rust-openssl/releases)
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.68...openssl-v0.10.72)

---
updated-dependencies:
- dependency-name: openssl
  dependency-version: 0.10.72
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-04 13:52:55 -07:00
dependabot[bot] fc861327dc build(deps): bump tar-fs from 2.1.1 to 2.1.2 in /packages/extension (#3954)
Bumps [tar-fs](https://github.com/mafintosh/tar-fs) from 2.1.1 to 2.1.2.
- [Commits](https://github.com/mafintosh/tar-fs/compare/v2.1.1...v2.1.2)

---
updated-dependencies:
- dependency-name: tar-fs
  dependency-version: 2.1.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-04 11:59:28 -07:00
Henry 3ee3d0610d feat: Add head ordering doc part (#3771) 2025-04-04 10:55:27 -07:00
Henry 2e856ecb3b doc: Fix spawn doc (#3871) 2025-04-04 10:44:20 -07:00
Henry 83ea89b88c fix comment (#3929) 2025-04-04 10:43:28 -07:00
Evan Almloff 44025340c7 Fix windows CI by removing virtual file system cache (#3912)
* try to fix windows CI

* just remove the vfs logic
2025-04-04 10:40:54 -07:00
Avinash jainandEvan Almloff bdf87aadc7 fixed the bug when future restarts the state goes to ready instead of pending (#3617)
* 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>
2025-03-27 08:28:20 -05:00
Gabi dfc359cdfb adds feature server_fn_axum that compiles for wasm target (#3840)
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
2025-03-27 00:51:53 -06:00
MintSoup dc0f0dbd2c Fix later-attached wry event handlers not getting called (#3908) 2025-03-26 21:50:43 -06:00
Juan Vásquez 6bdb69e235 Fixed android app crashing when changing phone orientation (#3905) 2025-03-24 17:12:17 -07:00
Casey Kneale 9e09bcf3f7 trivial fix for documentation example for onclick handler of buttons (#3882) 2025-03-16 16:25:17 -07:00
Evan Almloff 09a4b5eb4e Return a 404 when paring the route fails (#3860)
* 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
2025-03-14 00:51:44 -07:00
hackartist 7b7357037f fix(server): Provide GoogleBot compatibility. (#3851) 2025-03-11 09:14:53 -07:00
Carlos Diaz-Padron dfc59a8465 Rename wgpu child window example for discoverability (#3837)
* rename wgpu child window example

* rename child window example in Cargo.toml
2025-03-10 11:01:23 -07:00
dependabot[bot] ae1ec6f3be build(deps): bump ring from 0.17.8 to 0.17.13 (#3841)
Bumps [ring](https://github.com/briansmith/ring) from 0.17.8 to 0.17.13.
- [Changelog](https://github.com/briansmith/ring/blob/main/RELEASES.md)
- [Commits](https://github.com/briansmith/ring/commits)

---
updated-dependencies:
- dependency-name: ring
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-10 10:59:08 -07:00
Sabin Regmi 8b4ccb7817 update: modify outlet context initialization level (#3830) 2025-03-06 11:14:05 -06:00
hackartist 64106ba9af fix(fullstack): correct suspense handling in SSR renderer (#3829)
Move suspense handling to the correct position in the SSR renderer to ensure proper rendering when streaming is disabled.
2025-03-05 12:41:31 -06:00
Jonathan Kelley 650605f4d1 fix: merge conflict resulting in windows lint 2025-03-04 16:31:29 -06:00
SmileSky 91a218039e Update wry version to 0.50.1 (#3810)
Signed-off-by: SmileSky <mzdk100@foxmail.com>
2025-03-04 14:36:19 -06:00
Miles Murgaw 7c2cea9df7 Revision: Cleanup Dioxus.toml (#3802)
* revision: remove unused config options

* remove: unsused icon
2025-03-04 14:30:44 -06:00
Evan Almloff 8dbb652628 update the server function crate to 0.7 (#3560) 2025-03-04 14:29:56 -06:00
Miles Murgaw bcd34e9a98 update: tauri-bundler, tauri-utils (#3801) 2025-03-04 14:28:44 -06:00
Philipp Herzog 87d113bddd adjust muda requirements to rely on a single version (#3533) 2025-03-04 14:21:40 -06:00
Evan Almloff eccd75a1fe Switch the default server function codec to json (#3602)
* Switch the default server function codec to json

* test both input and output encoding
2025-03-04 14:20:56 -06:00
Jim 9967118784 Make GenericRouterContext pub (#3812) 2025-03-04 14:11:12 -06:00
Sabin Regmi 6a0ae17d56 Expose Outlet Context (#3788)
* Expose Outlet Context

* feat(router): expose OutletContext and use_outlet_context for improved accessibility

* Hide OutletContext properties

* Starts from 0 ?

* Clippy fix with Default
2025-03-04 12:34:22 -06:00
Evan Almloff f4c59e1188 Fix span locations in ifmt and components (#3823)
* Fix span locations in ifmt

* Fix component spans

* Blame extra children on the first child element

* fix clippy
2025-03-04 12:25:07 -06:00
Evan Almloff 0251221c69 Fix the typo checking CI (#3824) 2025-03-03 21:32:59 -06:00
David Tolnay 9361c3ecd9 Support concat! and other macros in asset path (#3809) 2025-03-03 12:55:59 -06:00
wdcocq 062ea02e07 Fix opened browser blocking dx serve (#3818) 2025-03-03 12:53:20 -06:00
Marco BergaminandMiles Murgaw b5381e748c Fix --target flag not passed to cargo when Platform == Server (#3595)
* Fix --target flag not passed to cargo when Platform == Server

* revision: use --server-target flag

---------

Co-authored-by: Miles Murgaw <milesmurgaw@gmail.com>
2025-02-27 16:14:10 -08:00
Evan Almloff 1fa172486b Add helper methods to provide a single clone server only context (#3483)
* Add helper methods to provide a single clone server only context

* fix clippy
2025-02-27 10:19:16 -08:00
Miles Murgaw b91d374479 Revision: Open Browser With Localhost (#3776)
* revision: open browser in localhost

* revision: use displayed address
2025-02-27 10:11:17 -08:00
Miles Murgaw 9c5f9882d9 Feat: CLI Debug Warning (#3779)
* feat: cli debug warning

* fix: fmt
2025-02-27 10:08:59 -08:00
Evan Almloff ceb1a0e796 Prevent default if an onclick event is triggered on a button under a form (#3804) 2025-02-27 10:08:26 -08:00
damccull ac8a5402f3 Add missing optional dependency to web feature (#3805)
The 'web' feature in Cargo.toml listed `dioxus-web` as a dependency but
it also needed to have `dioxus/web` in order to compile properly.
2025-02-27 09:55:33 -08:00
Evan Almloff 797e7492a1 Fix hot reloading component removal with formatted attribute values (#3559)
* Fix hot reloading component removal with formatted attribute values

* fix semvar
2025-02-24 13:18:21 -08:00
Klemen eff2e5d18e fixed wix assets path (#3763) 2025-02-24 12:08:48 -08:00
Jonathan Kelley bdeedc13eb feat: router-based wasm bundle splitting (#3683)
* 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
2025-02-13 18:54:38 -08:00
Jonathan Kelley 14eb7597df fix: enable optimizations in cli builds for releases 2025-02-13 18:42:07 -08:00
Youn Mélois c13fb06bfa fix(interpreter): missing scrollTo boolean return value (#3734)
* fix(interpreter): missing scrollTo boolean return value

* docs(examples): unwrap scroll_to instead of discarding result values
2025-02-13 11:37:13 -08:00
Jonathan Kelley fc1f1c26f1 Release 0.6.3
dioxus@0.6.3
dioxus-cli@0.6.3
dioxus-cli-config@0.6.3
dioxus-core@0.6.3
dioxus-core-macro@0.6.3
dioxus-desktop@0.6.3
dioxus-document@0.6.3
dioxus-fullstack@0.6.3
dioxus-html@0.6.3
dioxus-router@0.6.3
dioxus-router-macro@0.6.3
dioxus-signals@0.6.3
dioxus-web@0.6.3

Generated by cargo-workspaces
2025-02-07 16:38:13 -08:00
Evan Almloff b443309f6e Hash and compare templates by value in debug mode (#3630)
* 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
2025-02-07 16:35:32 -08:00
Andrew Voynov 9b71a33098 docs: improved issue templates (#3698) 2025-02-07 16:17:17 -08:00
Miles Murgaw 18feb0b38d feat: disable drop handler (#3680) 2025-02-07 16:10:05 -08:00
Miles Murgaw 8b9e246044 fix: stop failing silently (#3682) 2025-02-07 16:09:25 -08:00
Miles MurgawandJonathan Kelley 4199d545fe Allow Missing Prop Docs (#3692)
* revision: allow missing prop docs

* fix: link

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-02-07 16:09:08 -08:00
oletf f594a65b7e use main exe name without extension for bundler (#3696) 2025-02-07 16:08:23 -08:00
Youn Mélois ab91965cc0 fix onload and onerror parsing error (#3707)
regression error induced by 299b123 where serde default got removed from `load_error` attribute of `ImageData`.

```diff
pub struct ImageData {
-     #[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
-     pub load_error: bool,
+     inner: Box<dyn HasImageData>,
}

// ...

+ struct SerializedImageData {
+     load_error: bool,
+ }
```
2025-02-07 16:08:00 -08:00
Evan Almloff 1c902ab729 Fix serving desktop+fullstack apps that have not set a server url (#3701)
* Fix serving desktop+fullstack apps that have not set a server url

* revert fullstack desktop example changes
2025-02-07 16:07:06 -08:00
Jonathan Kelley 36353eb90b fix cli link since we deleted it 2025-02-05 12:41:56 -08:00
Z 68ca4c3289 feat(examples): add Context API state management example (#3657)
* feat(examples): add Context API state management example (fixes #3612)

* refactor: code cleanup
2025-01-31 15:38:24 -08:00
Evan AlmloffandJonathan Kelley 5bb7f51cba Remove the stylesheet component (#3176)
* Remove the stylesheet component

* add props to style component

* don't remove stylesheet

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-01-31 15:06:14 -08:00
Vishwanath Martur 2fd7684a93 Add examples for LaunchBuilder methods (#3629)
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.
2025-01-31 14:34:45 -08:00
Evan Almloff 2d188452ae Fix additional attributes for js renderers (#3625) 2025-01-31 14:31:31 -08:00
Andrew Voynov 67515ce812 Allow to connect to the dev server from a physical Android device (#3634)
* fix(android): now dev server just works on devices

* fix: allow custom port for Android app development

* refactor: simplified URL creation in LaunchBuilder
2025-01-31 14:29:54 -08:00
Jonathan Kelley d7e64d5d24 fix: ci line 2025-01-30 16:03:31 -08:00
Jonathan Kelley 202f2e81d7 use apt-caching, don't cargo install during test 2025-01-30 15:55:35 -08:00
Marc Espin c5f43dd13e feat: Allow using NavigationTarget outside router (#3633)
* feat: Allow using `NavigationTarget` outside of router

* chore: Update import

* chore: Update imports

* fmt
2025-01-28 10:52:48 -08:00
Jonas Pleyer 4e955d0e3b remove html! macro mentioning (#3654) 2025-01-28 10:40:16 -08:00
Jonathan Kelley 155a2467be fix: don't emit hash fragment for internal links if hash is empty (#3660)
* fix: don't emit hash fragment for internal links if hash is empty

* add test
2025-01-28 10:09:27 -08:00
Marc Espin 861e6c1984 fix: Downgrade publish ci to ubuntu 22.04 (#3663) 2025-01-28 10:08:15 -08:00
Evan Almloff 4c8e8567cf Fix the pwa example (#3664) 2025-01-28 09:40:44 -08:00
Evan Almloff c85018300b Ignore write while rendering warning in memo lazy recompute (#3647) 2025-01-27 14:33:15 -08:00
Evan Almloff bd30516490 Fix web eval return (#3656)
* Fix web eval return

* add regression test to playwright
2025-01-27 12:57:20 -08:00
Evan Almloff fb7b1a30bf Use the launch builder instead of web launch in the fullstack auth example (#3640) 2025-01-24 16:24:08 -08:00
Jonathan Kelley 041c570efe publish: v0.6.2 2025-01-21 19:29:30 -08:00
Jonathan Kelley 5d4893493b revert ring pr 2025-01-21 18:55:15 -08:00
Jonathan Kelley 03c2d6711d fix: pass off env vars to android apps (#3621)
* fix: pass off env vars to android apps

* move to jni_onload

* fix clippy
2025-01-21 18:52:56 -08:00
Vinicius Gobbo Antunes de Oliveira ce2b223af9 CryptoProvider error. (#3619) 2025-01-21 18:46:59 -08:00
Jonathan Kelley 08f2180bbd fix: use a different temp path to not confuse image opt (#3620) 2025-01-21 18:33:43 -08:00
Evan Almloff 13dcd80fbf Optimize wasm bindgen asset with manganis (#3531) 2025-01-21 15:14:45 -08:00
Jonathan Kelley d8850c7666 fix: don't have Rc cycles in DioxusElement or Queries (#3618) 2025-01-21 14:57:31 -08:00
Jonathan Kelley d42b1d5146 fix: too much padding for small frames (#3616) 2025-01-21 11:33:00 -08:00
Ikko Eltociear Ashimine 23d9178154 docs: update translations/ja-jp/README.md (#3615)
* docs: update translations/ja-jp/README.md

* docs: update translations/ja-jp/README.md
2025-01-21 10:52:07 -08:00
Evan Almloff 640a3e00af Remove the todo list from the examples readme (#3613) 2025-01-21 09:17:23 -08:00
Evan Almloff f99e50b0aa Fix hot reload diffing to empty rsx (#3567)
* 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
2025-01-21 00:33:29 -08:00
Jonathan Kelley 2c6a5212fc fix: loop panic on process exit in serve 2025-01-21 00:32:39 -08:00
Jonathan Kelley 439e3e7723 fix: dont unwrap as much in desktop (#3609) 2025-01-21 00:13:05 -08:00
Miles Murgaw 4342ca92a3 Fix: always-on-top setting (#3347)
* fix: always-on-top

* revision: remove setting override
2025-01-20 23:34:30 -08:00
Jonathan Kelley d342630a0a feat: android bundling, red/blue exe names, session cache (#3608)
* feat: android bundling

* fix: add hashing to exe names for red/blue exes

* feat: implement session cache for window restoration
2025-01-20 21:16:55 -08:00
Jonathan Kelley 024285c548 fix: don't send hot-reload if app is building (#3607) 2025-01-20 18:58:50 -08:00
Jonathan Kelley 6c907b1c20 fix: restore file in release mode 2025-01-20 18:36:17 -08:00
Jonathan Kelley b6475bdc0a fix: don't ignore manganis assets (#3606) 2025-01-20 18:35:41 -08:00
Jonathan Kelley c2ad99406d Fix: don't overwrite pos/size when dx-rebuilding 2025-01-20 18:02:59 -08:00
Jonathan Kelley 8334f7fbaa feat: device hot-reload, tools-relative adb, auto port bind (#3586)
* 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
2025-01-20 17:42:13 -08:00
Evan Almloff e199e86dad Fix fullstack hackernews example instructions (#3597) 2025-01-20 16:35:32 -08:00
Evan Almloff aba2e73025 Simplify fullstack auth example (#3598) 2025-01-20 16:35:19 -08:00
Christopher Serr eaf9f80abd Fix: Only Resize WebView Associated With Window (#3584)
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.
2025-01-17 12:00:38 -08:00
Jonathan Kelley a729968ee4 fix: window state preservation by soft-killing the process (#3579) 2025-01-16 17:53:09 -08:00
Evan AlmloffandJonathan Kelley e22ea0c2ff Fix repeated subscription to dropped scope leak (#3569)
* Fix repeated subscription to dropped scope leak

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-01-16 17:35:14 -08:00
CathalandJonathan Kelley c7951b7dd5 feat(cli): add feature to disable downloads (#3465)
* feat(cli): add feature to disable downloads

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-01-16 16:49:30 -08:00
Jonathan Kelley cd121f2828 fix: messy ui for package types in bundle 2025-01-16 15:34:18 -08:00