Commit Graph
5073 Commits
Author SHA1 Message Date
Nico Burns 2bbfccfd04 Native: implement hot-reloading of stylesheets (#4830)
* Make `tracing` feature of dioxus-native enable `tracing` feature of dioxus-native-dom

* Native: implement hotreloading of stylesheet assets

* Add asset support for native-headless-in-bevy example

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Remove println statements

Signed-off-by: Nico Burns <nico@nicoburns.com>

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-10-24 15:56:55 -07:00
Evan Almloff c55a29e930 fix the info message for the dx components subcommand (#4832) 2025-10-22 22:52:08 +01:00
Evan AlmloffandJonathan Kelley 987e41de16 CLI fixes for hotpatching the playground (#4715)
* add component subcommand

* add dx component add, remove and list commands

* handle rust dependencies

* handle component dependencies

* fetch remote registries

* sort components before listing them

* remove local dependency

* move te component manifest into the dioxus workspace

* add additional instalation instructions the first time the component
module is created

* fix mod name

* fix clippy

* improve docs and move to the main branch of components

* fix typos

* more typos

* undo const-serialize changes

* remove a few unwraps

* Allow adding multiple components at once and add a `--all` flag

* add options to the config for the base path, global asset path and
default registry

* component_path -> component_dir

* component_dir is always relative to the crate root

* fix clippy

* fix hot patching with a base path

* read the hot patch file from stdin instead of a CLI arg to allow for longer inputs

* fix request imports

* wip: code style changes

* rename to "components" instead of "component"

* bump lock

* move to method on request

* read until eof in the case of pretty json

* strip is now copy

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-20 17:50:27 -04:00
Evan AlmloffandJonathan Kelley 79613f9db9 DX components command (#4669)
* add component subcommand

* add dx component add, remove and list commands

* handle rust dependencies

* handle component dependencies

* fetch remote registries

* sort components before listing them

* remove local dependency

* move te component manifest into the dioxus workspace

* add additional instalation instructions the first time the component
module is created

* fix mod name

* fix clippy

* improve docs and move to the main branch of components

* fix typos

* more typos

* undo const-serialize changes

* remove a few unwraps

* Allow adding multiple components at once and add a `--all` flag

* add options to the config for the base path, global asset path and
default registry

* component_path -> component_dir

* component_dir is always relative to the crate root

* fix clippy

* fix request imports

* wip: code style changes

* rename to "components" instead of "component"

* bump lock

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-20 17:20:46 -04:00
b3966c3509 Support public dir (#4783)
* Add optional static_dir support

- add optional application.static_dir field defaulting to none
- copy configured static directory into web output during build/serve
- document config knob and add unit tests
- force full rebuild when static_dir contents change
- sync removes stale outputs and logs copy activity
- track static manifest next to platform dir

Tests: cargo fmt

* default to public dir to match vite

* static_dir -> public_dir

* wip

* deser as none...

* wip... use .manifest.json

* implement dumb form of asset manifest generation

* implement manifest using asset system directly

* cleanup

* dont create extra asset dir for server

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-20 17:03:34 -04:00
Jonathan Kelley 2f6be083ce fix merge conflict 2025-10-20 13:00:59 -04:00
Jonathan Kelley 306639ee9f follow up to serveconfig (#4820)
* remove latent dbg!

* cleanup serveconfig
2025-10-20 12:22:35 -04:00
Rick Wong 7408a33be7 Removed wasm rel-preload link from bundle index.html to save bandwidth for Safari users (#4796) 2025-10-20 12:20:46 -04:00
Jasper Bekkers 9a1cbf50a7 👩‍🏫 Add support for (#4811) 2025-10-20 12:05:27 -04:00
Jonathan KelleyandEvan Almloff 19ada89cec resolve the index before rendering (#4806)
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2025-10-19 15:03:57 -04:00
Amos Wenger 5018074a12 Elements: add autocorrect attribute to <input> and <textarea> (#4797)
See https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/autocorrect
2025-10-19 15:03:39 -04:00
Jonathan Kelley 20fa29ac6e feat: allow setting http response header in fullstack 2025-10-15 01:20:16 -07:00
Jonathan Kelley 0aa7351473 datatransfer object, drag_and_drop example, fix drag-and-drop (#4789)
* wip: implement datatransfer

* Editable kanban contents

* desktop sorta works without crashing

* lint
2025-10-15 01:06:13 -07:00
Jonathan Kelley 7856679641 remove --docs cfg to fix docsrs building (#4788) 2025-10-14 20:18:13 -07:00
Jonathan Kelley 056b47fcd0 fix: ios hotpatching due to missing isysroot flag 2025-10-14 19:59:25 -07:00
Jonathan Kelley 7102bc3b6a more fullstack cleanups: loaders serialize, ServeConfig only (#4785)
* some opinionated cleanups in dioxus-server

* add serialize to loader

* add `result` to Resource

* clippy

* fix

* writable memos, resources, `onmount`, `.pending`, and `.value()` on actions

* fix compile issues

* fix typo
2025-10-14 17:34:52 -07:00
Amar Sood a3e40a5ea2 Prevent hot patch from leaving devserver in BuildError state (#4784)
Scenario: without this patch, if you fail a build, fix the code, let the thin build succeed, and then refresh the browser... then after reloading the browser page, it gets stuck on the "One sec" loader because the devserver status never clears the earlier BuildError.

- mark build status ready after sending hot patch messages so refreshes succeed
- reuse the same helper from reload command to avoid stale loading screens
- add set_ready() helper to avoid duplicate status broadcasts
2025-10-14 16:18:35 -07:00
Jonathan Kelley 8f6e7dc1f2 fix: server function custom errors set status codes (#4782)
* fix: handling status codes from errors

* add demo

* clippy + check

* fix clippy again
2025-10-13 16:02:33 -07:00
Herbert MaschkeandHerbert Maschke fc069f0faf Feat: "dx new" check if given project name is available in filesystem (#4773)
Co-authored-by: Herbert Maschke <thyseus@pm.me>
2025-10-13 14:23:59 -07:00
Moritz Hedtke 6d5e1ac8de Don't rely on window (#4775) 2025-10-13 12:44:03 -07:00
Moritz Hedtke cf893dc94a Fix on NixOS (#4776) 2025-10-13 12:43:50 -07:00
Jonathan Kelley 76319005b8 use queue_events instead of process_events to fix ssr issue (#4772)
* use `queue_events` instead of `process_events` to fix ssr issue

* remove suspense wait from liveview
2025-10-11 21:03:54 -07:00
Jonathan Kelley 01db142750 fix collect2 ld error with hotpatching (#4771)
* get repro case

* disable --with-deps for playwright

* extend hotpatch with better path
2025-10-11 20:33:10 -07:00
Moritz Hedtke 16bbabb3e3 Fix base path for wasm splitting (#4770) 2025-10-11 20:04:00 -07:00
Amar Sood 11b2ea7f39 Fix wasm hotpatching for zero-sized data symbols (#4747) 2025-10-10 21:44:15 -07:00
Jonathan Kelley 9243ef4128 redirects, middleware, Transport, set/capture error status (#4751)
* wip: redirect

* redirect example

* fix file upload not in a form

* wip

* deny missing cfgs

* wip: add router fallback but it's not working

* fix suspense bug after rebuilds that queued work

* more cleanup

* add test for error codes

* add helpful comment

* bring back middleware annotation

* fix cfg

* add server feature

* fix doctest

* just disable liveview test for now

* fix liveview

* dont send init

* cache more playwright!

* add more pkgs to cache
2025-10-10 21:43:57 -07:00
Amar Sood 8a81475ba8 Handle wasm-bindgen wbg_cast helper in wasm hotpatching (#4748) 2025-10-10 18:55:33 -07:00
Nico Burns 0ca8c86cbd native: disable debug logs by default (#4740)
Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-10-10 18:04:49 -07:00
Moritz Hedtke b0774510d8 Don't rely on window (#4757) 2025-10-10 11:53:19 -07:00
Klemen 09c1de7574 Fix: File dialogs that are not part of a form (#4752) 2025-10-09 15:19:51 -07:00
Evan Almloff fa5d7e681b Fix ReadOnlySignal alias without storage (#4735) 2025-10-07 23:08:00 -07:00
Jonathan Kelley 92792aded9 More fullstack fixes (#4737)
* allow `--server` only builds!

* rollback example

* capture `/:route` routes

* fix: properly implement file uploads in forms

* implement desktop form uploads

* Performant serialization of form bytes

* finish up file stuff

* cleanups

* add request headers to streaming context

* remove some unwraps
2025-10-07 23:07:43 -07:00
Tom Grushka fc01a002fd fix dx serve https=true error: 'no process-level CryptoProvider available -- call CryptoProvider::install_default() before this point' (#4736) 2025-10-07 13:10:09 -07:00
Nico Burns 9359446017 Upgrade to Blitz v0.2.0 (#4731)
* Bump Rust CI version to 1.88

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Upgrade to Blitz v0.2.0

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Native: enable clipboard and file_dialog support by default

* Fix clippy errors

Signed-off-by: Nico Burns <nico@nicoburns.com>

* See if cargo update magically fixes build

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Fix compile err

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Remove unused wasm-opt dep

* Fix wgpu_child_window example

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Update blitz-shell

Signed-off-by: Nico Burns <nico@nicoburns.com>

* cargo fmt

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Allow clippy lint

Signed-off-by: Nico Burns <nico@nicoburns.com>

* CI: Bump pinned nightly version

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Allow clippy lint in whole module

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Fix more clippy lints

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Use Rust 1.90 for clippy

Signed-off-by: Nico Burns <nico@nicoburns.com>

* cargo update --ignore-rust-version

* revert cargo updates

Signed-off-by: Nico Burns <nico@nicoburns.com>

* Revert another silly clippy lint

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-10-07 11:18:59 -07:00
Moritz HedtkeandJonathan Kelley 0b1f2fc8c2 Update gradle wrapper (#4726)
* Add error context when gradle wrapper fails

* Update gradle wrapper

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-06 16:36:31 -07:00
Moritz HedtkeandJonathan Kelley b35a52f337 Propagate linker failure (#4728)
* Propagate linker failure

* make sure we still write linker error

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-06 16:22:07 -07:00
Jonathan Kelley bee89b795d fix: hotpatching fullstack (#4730)
* fix: hotpatching fullstack

* add hot-patching fullstack test

* add caching to playwright apt-get

* only run playwright on beta

* install binutils?

* dont commit lockfile

* ignore lockfiles

* make sure ld is in path
2025-10-06 16:12:18 -07:00
Amos Wenger a4aef33369 Fix Sse keepalive build error (#4725) 2025-10-04 18:08:01 -07:00
Jonathan Kelley 7a4a0ca181 move before_render and after_render to their respective hooks 2025-10-04 11:06:11 -07:00
Jonathan Kelley 9bf4d97838 fix: don't unwrap Option<Task> 2025-10-04 10:57:46 -07:00
Jonathan Kelley c29cef4ea3 move ScopeId methods to the runtime (#4723)
* move `ScopeId` methods to runtime methods

* cargo check unused

* wip...

* wip...

* fix consume context

* fix test

* guard hoisted

* fix doc comment
2025-10-04 01:55:52 -07:00
Evan AlmloffandJonathan Kelley c56bac04f4 Look for strip settings in inherited profiles and global configs (#4645)
* Look for strip settings in inherited profiles and global configs

* fix clippy

* use cargo home env var if it exists

* fix cargo home config path

* small stylistic changes

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-03 21:11:05 -07:00
HenryandJonathan Kelley c39cae6c57 Improve use_server_future docs (#4558)
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-03 20:56:18 -07:00
Henry abfd39d90e Improve use_hook_did_run docs (#4554) 2025-10-03 20:53:37 -07:00
Jonathan Kelley ea35b4de6f fix merge conflict causing build failure 2025-10-03 20:18:17 -07:00
Evan Almloff da32278b3a Sync ReadSignal and Store (#4608)
* Add some traits read only signal works with sync storage

* seal gats

* minimize diff
2025-10-03 20:05:43 -07:00
Nils LoewenandNils Loewen 022124e512 Fix #4504 where dx fmt fails on eval of JS that contains empty line. (#4506)
https://github.com/DioxusLabs/dioxus/issues/4504

Co-authored-by: Nils Loewen <nils@blockrewards.ca>
2025-10-03 20:00:38 -07:00
Evan AlmloffandJonathan Kelley d0c4376790 Fix route hydration with ssg without early chunk commit (#4654)
* Fix route hydration with ssg without early chunk commit

* fix clobbered port for fullstack spread (merge conflict)

* wait for hydration

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-10-03 19:59:47 -07:00
Omar Mohamed Khallaf d8a6c265ab fix: save cli config as a toml file (#4652)
Signed-off-by: Omar Mohamed <mohamed.omar67492@gmail.com>
2025-10-03 19:46:37 -07:00
Evan Almloff 03801e1312 Fix hydration with empty spread attributes (#4647)
* Fix hydration of empty spread attributes

* add a regression test

* fix doctest
2025-10-03 19:41:23 -07:00