Commit graph

3098 commits

Author SHA1 Message Date
tigerros
d9220d4e42
Add it (#1660) 2023-11-23 16:44:39 -06:00
ealmloff
7a459e15d8
Update packages/hooks/src/use_effect.rs
Co-authored-by: Marc Espín <mespinsanz@gmail.com>
2023-11-21 16:28:06 -06:00
Exotik850
f8ce72c605
Fix outdated lazynode documentation (#1648)
* Fix outdated lazynode documentation

* Use expanded rsx! instead of just rsx macro
2023-11-20 09:49:18 -06:00
Evan Almloff
8cf8f66c27 add more logging to desktop hot reloading 2023-11-20 09:47:03 -06:00
Evan Almloff
0ee21dff1e fix missing item in hot reloading diffing 2023-11-20 09:33:39 -06:00
XiaoZhang
aa284d7e93
Fix grammar typo in comment (#1652) 2023-11-20 08:24:16 -06:00
HJin.me
ff6c7efb41
fix: tailwind.css use absolute path (#1649) 2023-11-19 11:22:54 -06:00
Evan Almloff
3c115bbef7 add into attribute value impl for String 2023-11-19 10:03:18 -06:00
Evan Almloff
83f7ef9a44 add an optional cleanup closure to the use effect hook 2023-11-19 09:58:00 -06:00
Raman Hafiyatulin
098689083d
Related to #1547: use dioxus-cli within a workspace (wildcard-members, real package names) (#1642)
* Related to #1547: use `dioxus-cli` within a workspace

Although the `dx` CLI allows to specify a package name to chose from workspace members,
it does not support workspace members specified as glob-wildcards.
Neither it respects the effective package name, specified in the crate's `Cargo.toml`.

This PR addresses that issue:
- upon `dx build ...`, if the `--bin` CLI-argument is provided, treat the current dir as a workspace;
- search through the workspace's `members`: resolve each of them with `glob`;
- assume that any workspace member has a `Cargo.toml` in it (cargo does it, so it's okay);
- read said manifest, and check the package name in it;
- if found — there we have our sought package.

* Use cargo-metadata to find out the workspace structure

* glob is unused
2023-11-15 15:14:16 -06:00
Evan Almloff
7f4e2af0c4 fix string memory leak 2023-11-13 08:17:08 -06:00
tigerros
d4b0451d09
Allow warning in necessary functions (#1626) 2023-11-09 12:31:59 -06:00
Joshua Wolfe
8ea7f076e5
Updated server_fn to 0.5.2 (#1620) 2023-11-08 08:33:41 -06:00
Jonathan Kelley
42faecf942
Merge pull request #1581 from ealmloff/drop-any-attribute-later
Drop any attribute after rendering
2023-11-06 16:52:30 -05:00
xTeKc
ca556ea9cb
update readme (#1615)
* Fix wasm-bindgen version mismatch

* fixes #1613
2023-11-06 13:32:42 -06:00
Evan Almloff
b9554fd744 add a noop evaluator to the ssr renderer 2023-11-05 08:32:39 -06:00
Marc Espín
c18f911429
Update atom_root.rs (#1611) 2023-11-04 14:04:14 -05:00
Lee TaeWoo
be1decf9f2
fix syntax error at derive Props using const generics (#1607) 2023-11-04 13:53:50 -05:00
Marc Espín
bb5738a0ba
fix: Read value from root when calling AtomState::current() (#1609) 2023-11-04 13:22:47 -05:00
Jonathan Kelley
a3e6d0adca
Merge pull request #1602 from ealmloff/fix-scroll-web 2023-11-02 22:35:16 -04:00
Evan Almloff
7590cf822d fix the scroll event on the web renderer 2023-11-02 21:00:43 -05:00
Evan Almloff
0aa4875ec0 fix formating 2023-11-02 13:59:46 -05:00
Evan Almloff
0f2923a385 fix extension types 2023-11-02 13:17:21 -05:00
Alex Parrill
52fb080193 Use indentation settings in dx fmt and vscode extension
Adds the ability to specify an indent string to public autofmt methods - either
a sequence of spaces or a tab character.

Get the indentation style and size from rustfmt for dx fmt, or from the editor
settings for the vscode extension.

Closes #1595
2023-11-01 17:24:18 -04:00
Evan Almloff
fdec47b90b fix clippy 2023-11-01 08:19:35 -05:00
tigerros
bf36fc6def
Fix #[component] expansion Clippy warning (#1599)
Adds a `#[allow(clippy::inline_always)]` attribute to the generated `__dx_inner_comp` function.
2023-11-01 08:14:07 -05:00
Evan Almloff
8a62e4a987 Merge branch 'master' into debug-signals 2023-10-31 13:55:20 -05:00
ealmloff
856fb1874e
Merge branch 'master' into binary-protocal 2023-10-31 13:40:31 -05:00
Evan Almloff
51f342417a add examples to the default watch path 2023-10-30 14:41:41 -05:00
Evan Almloff
c5e647e97d add read untracked to signals 2023-10-30 08:39:37 -05:00
HKalbasi
720bfdf231
Make window invisible until the first render (#1588) 2023-10-29 13:09:07 -05:00
Falco Hirschenberger
d4e6876ff6
Silence desktop build outputs from cargo (#1584)
Silence additional disturbing output from cargo in desktop builds
2023-10-27 08:29:43 -05:00
Emil Boman
f5bc1a9856
Implement LiveView Router Integration (#1505)
* Fix GoForwardButton calling can_go_back instead of can_go_forward

* Add first draft of LiveviewHistory

* Add external URL redirect

* Lock evaluator channel outside loop

* Add liveview to router examples

* fixup! Add liveview to router examples

* Communicate with liveview server on page load

* Add PopState event to Liveview routing

* Call updater callback from liveview history

* Add rudimentary PopState functionality to liveview router.

* Fix linter errors

* Refactor

* Fix navigator external redirection not working.

* Add go back and go forward buttons to router examples

* Finish functionality for timeline stack in liveview router

* Add docs to LiveviewHistory

* Replace Liveview history context attachment with constructor that takes context

* Fix go forward/backward history/future shuffle

* Support history across entire liveview session, if contiguous page jumps.

* Remove unnecessary bounds

* Add query and hash to location string

* Run rustfmt

* fix: Update server function docs link (#1489)

* liveview: Add `interpreter_glue_relative_uri (#1481)

* liveview: Add `interpreter_glue_relative_uri`

By utilizing `window.location.host` in the client-side JavaScript, we can easily derive the WebSocket URI from a relative path URI. This approach obviates the need for host address retrieval on the server side, unlike the method of serving glue code in liveview using `interpreter_glue`.

* liveview: Merge `.._relative_url` functionality

- Merged `.._relative_url` to current API `interpreter_glue`.
- Edit axum example to work with new feature.

* liveview: Fix clippy warning

* Rename modules to use snake_case (#1498)

* Change Scope into &ScopeState

* Move synchronization of state into router and make it opt-in

---------

Co-authored-by: Marc Espín <mespinsanz@gmail.com>
Co-authored-by: Seungwoo Kang <ki6080@gmail.com>
Co-authored-by: Leonard <tigerros.gh@gmail.com>
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2023-10-26 14:19:51 -05:00
Evan Almloff
eea4a02ef5 add comments about the cause of the leak 2023-10-26 13:23:12 -05:00
Evan Almloff
fca9d95519 fix props memory leak 2023-10-26 13:06:42 -05:00
Evan Almloff
370c6cb9d2 fix clippy 2023-10-25 16:47:04 -05:00
Evan Almloff
b99f081c08 drop any attribute after rendering 2023-10-25 16:37:04 -05:00
Jonathan Kelley
035f26d4bf
Merge pull request #1573 from tigerros/fix-props-docs-line-breaks
Fix prop docs line breaks
2023-10-25 17:03:46 -04:00
Stephen Andary
b25fada776
Add Newtype so that Rust-url can be IntoRoutable (#1579)
* add newtype so that rust-url can IntoRoutable

* add doc line

* implement From<Url> directly

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2023-10-25 15:36:38 -05:00
Evan Almloff
6e85ecea12 fix use shared state lint in release mode 2023-10-25 10:23:23 -05:00
Evan Almloff
3bb6042e42 fix web renderer imports 2023-10-25 10:22:05 -05:00
Evan Almloff
dc306a51ba fix desktop inner html 2023-10-24 13:17:34 -05:00
Evan Almloff
9de56c00f3 fix multiple types of desktop/liveview listeners in the same app 2023-10-24 13:09:10 -05:00
Leonard
613f2f9aca Revert "Fix random clippy warning"
This reverts commit 85839abe56.
2023-10-24 01:41:46 +02:00
Leonard
85839abe56 Fix random clippy warning 2023-10-24 01:35:59 +02:00
Leonard
33d4721fbe Fix 2023-10-24 00:10:56 +02:00
Jonathan Kelley
647815fa6f
Merge pull request #1558 from ealmloff/link-key-props
Add an readable error when you name a prop key
2023-10-23 16:58:53 -04:00
Jonathan Kelley
716130d025
Merge pull request #1570 from ealmloff/clarify-web-gaurd-fullstack
Add error message when overlapping fullstack features are enabled
2023-10-23 16:32:34 -04:00
Jonathan Kelley
ea8c5e290d
Merge pull request #1551 from ealmloff/fix-signals-outside-of-runtime
Fix using signals outside of a scope
2023-10-23 15:32:12 -04:00
Evan Almloff
d9b32afd64 add error message when overlapping fullstack features are enabled 2023-10-23 12:45:10 -05:00
Leonard
cea9563e25
Improve prop docs (#1565)
* Do the stuff

* More sanitizing + fix warnings and format
2023-10-23 08:41:26 -05:00
Leonard
74952179db
Append prop documentation to function when using #[inline_props] or #[component] (#1563)
* Do the stuff

* Add deprecated warning and attribute list

Also move out methods that didn't take self as a parameter from `InlinePropsDeserializer`
2023-10-22 09:28:17 -05:00
Evan Almloff
9abc390d04 bench 2023-10-20 13:21:27 -05:00
Evan Almloff
b14aaca7b2 fix desktop renderer on windows 2023-10-20 13:05:13 -05:00
Marc Espín
129d0a68ff
feat: Optional web support for hot-reload crate (#1527)
* feat: Optional web support for hot-reload crate

* rename feature

* tweak

* tweak
2023-10-20 12:59:49 -05:00
Evan Almloff
33f0f0c172 fix clippy 2023-10-20 09:38:10 -05:00
Evan Almloff
1d664c616e restore desktop/liveview minification 2023-10-20 09:18:16 -05:00
Evan Almloff
2404bfeeb3 fix liveview element 2023-10-20 09:06:19 -05:00
Evan Almloff
378cbfabd9 fix desktop mounted event 2023-10-20 08:45:04 -05:00
Evan Almloff
007aacc247 remove liveview logging 2023-10-19 16:41:47 -05:00
Evan Almloff
c9612a085e fix liveview mounted event 2023-10-19 16:40:08 -05:00
Evan Almloff
42eb4b5098 fix clippy 2023-10-19 15:48:06 -05:00
Evan Almloff
ad9c59c2b4 add an readable error when you name a prop key 2023-10-19 13:23:58 -05:00
ealmloff
1cf8f71368
Fix typo in generational box readme 2023-10-19 13:03:26 -05:00
ealmloff
000edc0552
document generational box 2023-10-19 13:01:38 -05:00
Jonathan Kelley
e819702fc5
Add into_vnode temporary logic for more things
This commit adjusts how rsx! works, making it more forgiving with signals.

Notably, we add the temporaries to if chains too.
2023-10-17 15:42:21 -07:00
Jonathan Kelley
55ad41b392
Merge branch 'master' into jk/loop-allocation-strategy 2023-10-17 15:27:20 -07:00
Evan Almloff
06ca8c53d8 gitignore minified.js 2023-10-17 14:47:11 -05:00
Evan Almloff
a4fbeeb932 add stress test for desktop 2023-10-17 14:45:37 -05:00
Evan Almloff
c807808231 remove logging 2023-10-17 14:32:31 -05:00
Evan Almloff
db56962eea basic example working with binary protocol on desktop 2023-10-17 14:31:58 -05:00
Evan Almloff
ce86aabf26 fix clippy 2023-10-17 13:02:51 -05:00
Evan Almloff
050add21d7 effect-outside-of-runtime 2023-10-17 12:56:12 -05:00
Jonathan Kelley
509dca97e6
Merge pull request #1544 from ealmloff/must-use-hooks
Add must use to several hooks
2023-10-17 09:24:39 -07:00
Evan Almloff
6e9aa4dba1 fix clippy 2023-10-16 13:29:32 -05:00
Evan Almloff
87dae6a41f add a test for derefing signals to a closure 2023-10-16 13:08:18 -05:00
Evan Almloff
c65116c173 restore deref<Fn() -> Ref> 2023-10-16 13:03:37 -05:00
Evan Simkowitz
b1d6069363
Fix deref for Write struct in dioxus-signals (#1549) 2023-10-16 10:49:21 -05:00
Jonathan Kelley
7e2164d6d6
Add toggle 2023-10-15 17:52:01 -07:00
Jonathan Kelley
14b3fa72e4
Change the semantics of exprs/for loops allocations strategy
This commit adjusts how exprs and for loops are handled within
rsx. This is a breaking change in terms of codegen, but has
slight semantic changes as well.

Now, when exprs/for loops are allocated, they are given a temporary.
The temporary is elided to the <'a> lifetime of the bump, to satisfy
the borrow checker. This fixes issues with signals where exprs/for
loops mapping vecs out of RefCells would be caught up without a
temporary lifetime.
2023-10-15 17:40:56 -07:00
Evan Almloff
2645b85533 WIP desktop binary protocol 2023-10-15 09:23:01 -05:00
Evan Almloff
9f729dd6de fix clippy 2023-10-14 14:32:08 -05:00
Evan Almloff
3bf6d2d7cf add must use to several hooks 2023-10-14 12:08:54 -05:00
Evan Almloff
cb148cc881 Merge branch 'bump-wry' into binary-protocal 2023-10-13 09:45:11 -05:00
Evan Almloff
3063d83406 start migrating desktop to sledgehammer 2023-10-13 09:21:57 -05:00
Evan Almloff
1a4741ce04 fix liveview events 2023-10-12 10:21:29 -05:00
Oak
f3a749538b
feat: initial_checked attribute for inputs (#1540)
Mapped to defaultChecked property of HTMLInputElement.
2023-10-12 08:12:09 -05:00
Leonard
2d1234c3d1
Include README and Dioxus logo in package docs (#1536)
* Include README in docs.rs and add Dioxus logo

* Update README.md
2023-10-10 10:52:48 -05:00
Leonard
c65a49fd0f
Remove redundant directories (#1535)
Also fix typo
2023-10-10 09:50:58 -05:00
Evan Almloff
f20b740abe switch liveview to sledgehammer 2023-10-09 14:28:12 -05:00
Marc Espín
c8c4e85e65
feat: Remove unused deps (#1447)
* feat: Reduce dioxus-cli deps

* remove more unused deps
2023-10-09 10:14:46 -05:00
Timothy Mertz
cde1e886d6
cli: Add ability for autofmt to read stdin (#1529)
This change adds the ability for autofmt to read from stdin by using
'-f -' or '--file -'
2023-10-09 08:20:31 -05:00
Sridhar Ratnakumar
0d7bc86250
cli: Log connection errors during dx serve in desktop apps (#1515)
* cli: Log connection errors during `dx serve` in desktop apps

* add a note about the dioxus CLI

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2023-10-09 07:56:23 -05:00
Leonard
95d8843d9d
Fix clippy (#1532) 2023-10-08 18:24:38 -05:00
Evan Almloff
248d78fbfe fix clippy 2023-10-05 15:45:34 -05:00
Leonard
459f24d5e9
Clarify where serve warnings come from (#1524) 2023-10-05 13:05:14 -05:00
Leonard
30a3283438
Add use_on_mount and fix some typos (#1497)
* Add `use_on_mount` and fix some typos

* Optimize away UseOnMount struct

* `use_on_mount`, `use_on_unmount` -> `use_on_create`, `use_on_destroy`

* Make `use_on_unmount` deprecated

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2023-10-04 08:23:21 -05:00
Sridhar Ratnakumar
91752e7220
cli: Fix typo, resouces (#1516) 2023-10-04 08:20:13 -05:00
Leonard
06814dc17b
Update core-macro README per #1448 (#1510) 2023-10-03 06:59:53 -05:00
Oak
5bcb772511
feat: initial_selected attribute for options (#1508) 2023-10-02 14:08:09 -05:00