Commit graph

6162 commits

Author SHA1 Message Date
Evan Almloff
34bdcd15cf
Switch to a pool of dynamic values for hot reloading (#2705)
* create the dynamic value pool

* assign ids to dynamic formatted segments

* separate the rendering and literal pools

* rsx output compiles again

* more examples compiling with new rsx expansion

* update template body explanation

* all workspace examples compile

* fix formatted segments in keys

* start hot reload diffing

* fix component literal hot reloading

* start integrate new hot reloading with the CLI

* simple hot reloads working

* Fix hot reloading blocks with components

* implement hot reloading for if chains

* Fix hot reloading after a template requires a full rebuild

* Fix hot reloading any attribute values

* remove unsafe from hot reload utils

* Fix hot reloading empty rsx

* add more hot reloading tests

* reorganize hot reload module

* fix web hydration

* fix empty rsx nodes in autoformatting

* fix tests

* remove path sorting logic from core

* make template names more consistent in debug mode

* fix quote_as_hot_reload_literal for explicitly typed literals

* fix can_be_shorthand for string literals

* fix formatted single dynamic expression

* Fix usize component properties and playwright tests

* remove default implementation for TemplateBody

* add a bunch more comments for diffing, scoring and why this scoring system is optimal
2024-07-30 17:16:27 +00:00
Matt Hunzinger
f3ca1484a1
Pass --package to Cargo #1547 (#2740)
* Fix tests

* Pass package argument to Cargo

* Fix git rev
2024-07-29 23:11:24 -04:00
Matt Hunzinger
e12acb417e
Add short p option for package to match cargo (#2738)
* Add short package CLI option
2024-07-29 18:37:12 -07:00
Miles Murgaw
67c0f1c5f0
fix: enable/disable hot reload (#2737) 2024-07-29 14:52:04 -07:00
Jonathan Kelley
0e84d00d9c
Fix #2309: rfd doesn't need async-std (#2712)
* Fix #2309: rfd doesn't need to be async
* just use tokio instead of async std
2024-07-29 15:24:31 -05:00
Jonathan Kelley
8aa07b0a75
speed up incremental cli builds by making wasm-opt optional (#2720)
* speed up incremental builds by making wasm-opt optional
2024-07-29 13:20:46 -07:00
Matt Hunzinger
6558fd95a2
Follow-up for error messages in core (#2719)
* Fix tests

* Replace unwraps on RuntimeError with panics and add track_caller for better error output

* Convert more unwraps

* Fix git
2024-07-29 13:15:06 -07:00
Adam Kundrát
a1dfc4b4f0
fix issue 1586 followup (#2733) 2024-07-29 13:00:59 -07:00
Miles Murgaw
b7127ad6ae
Fix WSL Hot Reload (#2721)
* feat: poll watcher
* progress: wsl hot reload setting
* feat: wsl poll setting
2024-07-29 12:33:03 -07:00
Adam Kundrát
4e338accad
implement HasMouseData for WheelEvent (#2728) 2024-07-29 12:28:06 -07:00
Adam Kundrát
23dfe39bdf
desktop app saves window position fix (#2730)
* desktop app saves window position fix

* debug cfg

* cargo fmt
2024-07-29 12:25:34 -07:00
Adam Kundrát
3db24934d6
fix issue 1586 (#2725) 2024-07-28 23:48:49 -07:00
opensource-inemar-net
e73484795a
This fixes issue (#2724) 2024-07-28 12:06:09 -07:00
Jonathan Kelley
c4e55c7fb6
Fix #2378: CLI MSRV and add MSRV to CI (#2716)
* Fix: bump msrv up to be valid for cli
* add binstall check to ci
* adjust msrv of tomls
2024-07-26 19:24:40 -05:00
Matt Hunzinger
c48232f386
TUI tweaks (#2685)
* Clear builds logs on clear screen key event and fix keybinds rendering
* Clear the currently selected build logs
* Add placeholder for / screen
* Change tabs to be 1-indexed
* Redirect build errors to build tab
* Open the running app with 'o'
2024-07-26 17:12:54 -07:00
Jonathan Kelley
1a66987245
Fix: enable dangerous_inner_html for svgs (#2717) 2024-07-26 23:29:24 +00:00
Miles Murgaw
810f8bbfb8
Feat: always_on_top CLI Setting (#2715)
* feat: always_on_top cli setting

* revision: add user message for configuring settings
2024-07-26 16:27:56 -07:00
Jonathan Kelley
e42b71b1ba
Fix #2612: adjust readable trait to allow try_peek (#2714)
* Fix #2612: adjust readable trait to allow try_peek

Our implementation for Readable was inconsistent.
We had a try_unchecked variant for read but not for peek.
This resolves that by making a breaking change to the
Readable interface.

* fix doctests too
2024-07-26 18:20:16 -05:00
Evan Almloff
443b9a4af6
Parse redirects in the same order they appear in (#2650)
* Parse redirects in the same order they appear in
2024-07-25 17:47:38 -07:00
Evan Almloff
c6a2e5b6c8
Use head elements and new manganis syntax in examples (#2688)
* use head elements and new manganis syntax in examples
* only enable desktop workspace example scraping during a dioxus release

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-25 21:58:00 +00: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
Matt Hunzinger
beeee0dda1
Update tasks.rs (#2703) 2024-07-25 12:37:49 -05:00
Evan Almloff
163586c3ff
Make the web config optional in dioxus.toml (#2700) 2024-07-24 19:23:09 -07:00
Evan Almloff
7f210633eb
fix formatting and merging if chains in attributes (#2697)
* fix formatting and merging if chains in attributes

* fix autoformat if attribute chains

* Fix IfAttributeValue ToTokens implementation

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-24 18:56:21 -07:00
Evan Almloff
a6e41e9d68
Make dioxus-cli a binary - not a library (#2698) 2024-07-24 18:09:57 -07:00
Evan Almloff
942e701f02 Fix signal warnings in release mode 2024-07-24 17:55:57 -07:00
Evan Almloff
8636ada3a4
Add a deprecation warning for the resource option in dioxus.toml (#2642)
* Add a deprecation warning for the resource option in dioxus.toml

* fix name of resource config

* fix tab spacing issue

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-24 17:52:28 -07:00
Evan Almloff
a6c025c8ef
Unify the warning system (#2649)
* unify the warning system

* fix VirtualDom::new warning with a component

* move warnings to dioxuslabs

* also allow writes in the component body when converting from T -> ReadOnlySignal<T>

* fix clippy from merge conflict

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-24 15:50:36 -07:00
Andrew Voynov
f8cb07e673
feat(cli): added git commit hash to version output (#2696) 2024-07-24 13:44:45 -07:00
Evan Almloff
bd484842bd
Fix playwright tests (#2695) 2024-07-24 12:48:30 -07:00
Evan Almloff
9479d2376d fix RuntimeError message formatting 2024-07-24 11:33:28 -07:00
Matt Hunzinger
d07e81005f
Better expect error messages (#2629)
* Replace expect error messages

* Change message

* Create RuntimeError struct

* Pass error through core methods

* Fix use of Runtime::current in signals package

* Fix tests

* Add #[track_caller] for better error output and fix maybe_with_rt

* provide a help message along with RuntimeError

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2024-07-24 13:31:56 -05:00
Tristan F.
9167cd9dec
fix most typos, add crate-ci/typos to CI (#2653)
* fix most typos, add crate-ci/typos to CI

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-23 17:49:33 -07:00
Evan Almloff
841b447d2a
improve error message when the CLI and dioxus versions don't match (#2683) 2024-07-23 17:27:52 -07:00
Evan Almloff
ea3d88c1dd
Fix spread props diffing (#2679)
* Fix spread props diffing

* Add a regression test for extends prop diffing
2024-07-23 16:57:05 -07:00
Jonathan Kelley
6148941825
CI: re-reorder free disk space action to clear free up space earlier (#2690) 2024-07-23 16:53:56 -07:00
Evan Almloff
3bb9a535d8
Parse raw elements, attributes, and web components in rsx (#2655)
* parse raw elements and attributes in rsx

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-23 16:48:40 -07:00
Evan Almloff
fa4e5dbf62
Fix rsx autocomplete and diagnostics in the root; provide better completions after attributes are finished (#2656)
* fix rsx autocomplete and diagnostics in the root; provide better completions after attributes are finished

* clean up pr to use internal child parsing

* Fix peek_lowercase name

* fix comma diagnostics in the root

* Fix parsing components with a path

* remove simple routes trailing comma

* Fix incomplete_root_elements test

* Remove trailing commas from root body node in tests

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-23 16:34:50 -07:00
Miles Murgaw
71a48686dc
fix: gitignore builder (#2689) 2024-07-23 16:12:54 -07:00
Miles Murgaw
4ccd9ffe19
revision: use JSON compatible serializer (#2592) 2024-07-23 14:36:37 -07:00
Miles Murgaw
9ca5396343
fix: windows hot reload (#2687) 2024-07-23 13:18:31 -07:00
Miles Murgaw
117c9d18ae
fix: actually drain logs (#2686) 2024-07-23 12:40:09 -07:00
FragrantArmpit
28d1b305c4
Add a signal handler to reset the cursor on interrupt (#2603)
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-23 11:00:57 -07:00
Evan Almloff
1dcfc44c23
prevent the reload shortcut on windows (#2654) 2024-07-23 10:58:17 -07:00
Evan Almloff
52656348d5
Fix cli readme local installation instructions (#2671)
Fixes #2669
2024-07-23 10:57:51 -07:00
Evan Almloff
163d66e9d7
Expand to a partial Component if a shorthand attribute starts with a capital letter (#2652) 2024-07-23 10:57:15 -07:00
Evan Almloff
7e279e5eb9
Allow no trailing comma after attributes (#2651) 2024-07-23 10:41:22 -07:00
Oskar Manhart
aa1a928b91
Make VirtualDom constructor take an impl Fn() instead of a function pointer (#2583)
* feat: don't use function pointer to allow capturing context

* fix: make virtualdom factory take a function of type ComponentFunction with empty props

* fix: remove redundant generic arg

* fix: bruh

* fix: bruh
2024-07-23 10:40:48 -07:00
opensource-inemar-net
c6126f688e
Remove Dioxus CLI NASM dependency #2666 (#2682)
* fix issue with AWS-LC-SYS

* after mergo of manganis revert back to original

---------

Co-authored-by: Oliver Schnabl <oliver.schnabl@drei.com>
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-23 10:39:21 -07:00
Evan Almloff
c7c0f4481a
Fix generation race condition with sync storage (#2638)
* Fix generation race condition with sync storage

* Document GenerationalPointer

* check generation before recycling generational box

* fix clippy

* make race_condition_regression test panic if it fails
2024-07-23 10:30:57 -07:00