Commit graph

766 commits

Author SHA1 Message Date
Jonathan Kelley
1ea42799c0 wip: clean up the core crate after switching to recursive diff engine 2022-01-30 18:34:24 -05:00
Jonathan Kelley
3bb5c8142c fix: switch to future based diffing
this commit removes the old manual fiber implementation in favor of a
traditional recursion based approach. This should make the diffing
algorithm easier to work on and eliminate various stack-based bugs in.
2022-01-30 17:47:58 -05:00
Jonathan Kelley
3edf3e367f wip: debugging 2022-01-30 14:08:03 -05:00
Jonathan Kelley
13cf95a9ea
Merge pull request #178 from autarch/autarch/spelling-fix
Fix misspelled variable name in usestate.rs
2022-01-30 13:13:04 -05:00
mrxiaozhuox
31a2f8f63a feat: add DesktopContext 2022-01-31 01:06:43 +08:00
mrxiaozhuox
169028705d feat: add DesktopContext 2022-01-31 00:33:14 +08:00
Dave Rolsky
00ff54bb3b Fix typo in comment in use_shared_state.rs 2022-01-29 10:43:10 -06:00
Dave Rolsky
3d3d18554d Fix misspelled variable name in usestate.rs 2022-01-29 10:36:44 -06:00
Jonathan Kelley
9b3192323e Release dioxus-desktop v0.1.6 2022-01-29 10:43:43 -05:00
Jonathan Kelley
6339fa8188 Release dioxus-html v0.1.6, dioxus-router v0.1.1 2022-01-29 10:42:52 -05:00
Jonathan Kelley
f6c6134d67 Release dioxus-core v0.1.9 2022-01-29 10:42:38 -05:00
Jonathan Kelley
578c1dc069 fix: enable default for any eventhandler 2022-01-29 10:42:06 -05:00
Jonathan Kelley
d570bb6c42 Release dioxus-router v0.1.1 2022-01-29 10:40:03 -05:00
Jonathan Kelley
189ddd8c51 fix: move bindings into package 2022-01-29 10:39:21 -05:00
Jonathan Kelley
2c51a090e3 Release dioxus-web v0.0.5 2022-01-29 10:37:50 -05:00
Jonathan Kelley
3c2d5985da Release dioxus-ssr v0.1.3 2022-01-29 10:37:34 -05:00
Jonathan Kelley
539ca2d655 Release dioxus-hooks v0.1.7 2022-01-29 10:37:03 -05:00
Jonathan Kelley
11ba189eab Release dioxus-html v0.1.5 2022-01-29 10:36:24 -05:00
Jonathan Kelley
f965030b80 Release dioxus-core v0.1.8 2022-01-29 10:36:10 -05:00
Jonathan Kelley
1b2a0053ef Release dioxus-core-macro v0.1.7 2022-01-29 10:35:54 -05:00
Jonathan Kelley
8056138f86 fix: explicit default for event handler
rust derives default of T: Default, even when that's not a necessary requirement

This fixes that
2022-01-29 10:27:40 -05:00
Jonathan Kelley
06723ad63f fix: add interpreter to desktop package so it publishes 2022-01-29 10:23:41 -05:00
Jonathan Kelley
56f3002aed feat: add changelogs 2022-01-29 10:17:14 -05:00
Jonathan Kelley
3509602c0b
Merge pull request #169 from DioxusLabs/jk/router-userouter
feat: enable use_router
2022-01-29 10:15:00 -05:00
Jonathan Kelley
88997019c5 Merge branch 'master' of github.com:DioxusLabs/dioxus 2022-01-28 21:44:10 -05:00
Jonathan Kelley
e9792e9b95 tests: add miri stress test 2022-01-28 21:43:01 -05:00
Dave Rolsky
72c6bb3d0b Make log message in Link component trace level, not debug
All the other routing-related messages are at the trace level. Leaving this at
debug was an oversight on my part.
2022-01-28 15:31:43 -06:00
Jonathan Kelley
c092bd43ed fix: use_state 2022-01-28 16:12:06 -05:00
Jonathan Kelley
e24957fc19 feat: enable use_router 2022-01-28 14:38:17 -05:00
Jonathan Kelley
79e09934aa chore: add docs to router UseRouteListener 2022-01-28 12:14:40 -05:00
Jonathan Kelley
9da46eb7bc chore: rustfmt 2022-01-28 12:07:10 -05:00
Jonathan Kelley
5ee9d6c434 fix: attach router listener to subscriber list 2022-01-28 12:04:16 -05:00
Jonathan Kelley
a21e7d4dd1 fix: use_route should subscribe to changes to the route 2022-01-28 12:00:13 -05:00
Jonathan Kelley
ccbb955b7b
Merge pull request #166 from DioxusLabs/jk/default-assets-desktop
Default asset server
2022-01-27 22:10:20 -05:00
Jonathan Kelley
08988e1bfe
Merge pull request #158 from DioxusLabs/jk/router-onchange
Connect the onchange listener for the Router
2022-01-27 17:01:32 -05:00
Jonathan Kelley
22308eb26a fix: custom protocol receiver type 2022-01-27 17:00:40 -05:00
Jonathan Kelley
430cde7068 feat: default asset server 2022-01-27 16:36:17 -05:00
Jonathan Kelley
a8952a9ee8 fix: exampels 2022-01-25 21:41:40 -05:00
Jonathan Kelley
5c4bd0881b Merge branch 'master' into jk/update-hooks 2022-01-25 16:19:12 -05:00
Jonathan Kelley
29ed7ebece feat: connect an onchange listener 2022-01-25 15:06:37 -05:00
Jonathan Kelley
ae676d9d81 fix: webconfig should take &mut self 2022-01-24 20:25:32 -05:00
Jonathan Kelley
a239d2ba6a docs: fix web doc example and use &mut for builders everywhere 2022-01-24 20:24:50 -05:00
Jonathan Kelley
bad4b773b7 feat: add "spawn" method 2022-01-24 15:21:56 -05:00
Jonathan Kelley
2e4f765932 tweak: drop hooks before resetting bump arena 2022-01-24 12:21:24 -05:00
Jonathan Kelley
1406c9020b feat: add panic hook by default 2022-01-24 02:57:56 -05:00
Jonathan Kelley
d9a07ddddb fix: provide_root_context on root scopes 2022-01-24 02:34:16 -05:00
Jonathan Kelley
43e78d56f7 fix: rustfmt 2022-01-22 14:55:19 -05:00
Jonathan Kelley
f66d17ca84 wip: pass form data between web and desktop 2022-01-22 14:53:59 -05:00
Rasmus Lövegren
5f4a72446e
Add gap and row_gap to style_trait_methods 2022-01-22 19:57:46 +02:00
Dave Rolsky
9e4ec43b1e Fix various typos and grammar nits
I also removed all trailing whitespace from lines since I have Emacs
configured to highlight this.
2022-01-21 21:43:43 -06:00
Jonathan Kelley
95e93ed0bc feat: remove dioxus id on non-event elements 2022-01-21 15:06:57 -05:00
Jonathan Kelley
997684a390 fix: update desktop intrepreter with browser open 2022-01-21 09:53:25 -05:00
Jonathan Kelley
b287a4cab3
Merge pull request #121 from DioxusLabs/jk/unify
feat: unify web and desktop interpreter with the same typescript codebase
2022-01-21 09:31:55 -05:00
Jonathan Kelley
c8d528b3b1 fix: proprogation of root context 2022-01-21 09:29:41 -05:00
Jonathan Kelley
70f2ef43db
Merge pull request #139 from DioxusLabs/jk/provide-context-any
feat: allow context providers to provide for any scope
2022-01-21 00:52:49 -05:00
Jonathan Kelley
d2bd175143 feat: allow providing context to the root component 2022-01-21 00:37:52 -05:00
Jonathan Kelley
50f90d889a fix: bump to readd desktop click handling code 2022-01-21 00:21:23 -05:00
Jonathan Kelley
824defa2db Merge branch 'master' into jk/unify 2022-01-21 00:16:45 -05:00
Jonathan Kelley
c1a5d4e11f fix: ssr + hydration event listeners 2022-01-20 04:01:38 -05:00
Jonathan Kelley
887f69d5b4
Merge pull request #133 from mrxiaozhuox/master
The desktop app will default open link in browser
2022-01-18 23:09:40 -05:00
YuKun Liu
2073b400df fix: check href null 2022-01-18 23:25:45 +08:00
YuKun Liu
327f901548 fix: check href null 2022-01-18 23:15:39 +08:00
YuKun Liu
8089023a6c fix: prevent submit default 2022-01-18 15:00:49 +08:00
YuKun Liu
46fd6ac345 feat: link open in browser 2022-01-18 14:57:41 +08:00
YuKun Liu
62b637f8b0 fix: error pattern 2022-01-18 14:54:48 +08:00
YuKun Liu
f006f50317 feat: move rpc to handler 2022-01-18 14:52:14 +08:00
Jonathan Kelley
8d3ac3ff14
Merge pull request #107 from autarch/autarch/half-assed-router
A partial implementation of the router and associated bits
2022-01-18 00:01:34 -05:00
YuKun Liu
9e04ce5342 feat: open_browser bool attribute 2022-01-18 09:32:27 +08:00
YuKun Liu
5233ee97d9 fix: format code 2022-01-18 09:20:36 +08:00
YuKun Liu
c737c424b0 feat: link open in browser 2022-01-18 09:19:58 +08:00
YuKun Liu
a0f60152bc feat: link open in browser 2022-01-18 09:19:12 +08:00
Dave Rolsky
64080588d0 Add a warning when Link it called outside of a Router context 2022-01-17 15:52:01 -06:00
Jonathan Kelley
5bce294a86
Merge pull request #127 from DioxusLabs/jk/handler-tweak
fix: allow eventhandler to derive default
2022-01-16 21:30:34 -05:00
Jonathan Kelley
58839f47ba update: modify usestate to be borrowed 2022-01-16 15:56:48 -05:00
Jonathan Kelley
47bc4e4a44 feat: add "optional" flag for props 2022-01-16 15:27:41 -05:00
Jonathan Kelley
036a0ff49a docs: add comments for the Handler 2022-01-16 15:13:31 -05:00
Jonathan Kelley
e47ead5347 fix: allow eventhandler to derive default 2022-01-15 20:17:48 -05:00
Dave Rolsky
9b282d877b Don't expect all components to have a scope in ScopeArena.ensure_drop_safety
Not all components will be mounted when using a Router, so we cannot assume
all components have a scope.
2022-01-14 15:40:01 -06:00
Dave Rolsky
81c094ed29 Fix handling of re-renders in the Router
Previously the router just stored a `root_found` boolean after it picked a
route. But on re-render it would just always return false from `should_render`
if this was true. This just aborted routing after a future resolved (or
anything else that triggered a re-render).

Now we store the matching ScopeId and check that against our routes in a
re-render so we actually do re-render the matching route.
2022-01-14 14:55:12 -06:00
Jonathan Kelley
05331ddd80 feat: wire up both desktop and web 2022-01-13 22:51:01 -05:00
Dave Rolsky
e06eac1ce5 More WIP router implementation 2022-01-13 12:26:49 -06:00
Dave Rolsky
c9408da731 Implement UseRoute segment method
This relies on the RouterService to capture path params when it does path
matching.
2022-01-13 12:21:06 -06:00
Dave Rolsky
f8a7e1cd82 Implement router matching for path parameters
We don't want to have the router just always match paths as exact strings. If
a path contains a parameter like "/thing/:id" then the ":id" portion of the
route should match _any_ string, not a literal ":id".
2022-01-13 12:21:06 -06:00
Dave Rolsky
3c6142fb9d Commit WIP on router
There are a few different changes in here that probably need to be picked
apart. I'm sure much of this is wrong.

* Fix missing `dyn` that compiler complained about in router.rs

* Make UseRoute store a `Rc<RouterService>` rather than a string so we can get
information out of the router like current location.

* Implement `UseRoute`'s nth_segment and last_segment methods. I changed the
return type to a String because of the above.

* Remove some unused imports in platform/mod.rs and service.rs

* Implement the `use_route` fn. It panics if called outside a Router { } (I
think). I think that makes sense.

* Add a `current_location` method to `RouterService` that returns the current
location. I needed this both for the `UseRoute` implementation and _also_ so I
could get at this in my webapp code. I think having some way to get this will
be useful for others, whether or not this exact API is used. In my case, I
want to compare the current path to the `to` path of a `Link` so I can use a
different class for that `Link` if it is the currently active page.
2022-01-13 12:21:06 -06:00
Dave Rolsky
3a5b417ad1 Add more trace messages to the RouterService code
I was trying to debug some issues with my routes and this additional tracing
was quite helpful.
2022-01-13 12:21:06 -06:00
Dave Rolsky
d367e0f89f Fix typo in RouterService struct's "registered_routes" field name
This was "registerd_routes", missing an "e".
2022-01-13 12:21:06 -06:00
Dave Rolsky
e22ba5b1e5 Add title prop to Link
Every element can have a title, but it's particularly useful on links, so I
think making it an explicit option is worthwhile.
2022-01-13 12:21:06 -06:00
Jonathan Kelley
10db6ad65b wip: web now links against the js interprter code 2022-01-12 08:57:42 -05:00
Jonathan Kelley
5bf6c96f9f feat: setup a typescript build 2022-01-12 07:34:37 -05:00
Jonathan Kelley
ca0dd4aa71
Merge pull request #95 from DioxusLabs/jk/filedragindrop
File Drag and Drop support
2022-01-10 23:19:36 -05:00
Jonathan Kelley
0369fe72fb
Merge pull request #111 from DioxusLabs/jk/props-attrs
Flatten optional prop attributes
2022-01-10 17:11:08 -05:00
Jonathan Kelley
6bc45b1c50 fix: clippy 2022-01-10 13:00:23 -05:00
Jonathan Kelley
bad36162af fix: wry pathing 2022-01-10 12:57:43 -05:00
Jonathan Kelley
9ae981a1af wip: drag and drop support 2022-01-10 12:57:39 -05:00
Jonathan Kelley
20a29409b2
Merge pull request #113 from DioxusLabs/jk/desktop-cursor-jump
fix: cursor jumping in desktop inputs
2022-01-10 12:20:13 -05:00
Sven Assmann
007d06d602 feat(events:focus): add missing onfocusin event 2022-01-10 18:08:29 +01:00
Jonathan Kelley
eb138848ec feat: also hide placeholder node 2022-01-10 12:06:55 -05:00
Jonathan Kelley
be614e6535 fix: cursor jumping and use set instead of lsit 2022-01-10 12:04:54 -05:00
Sven Assmann
9849f68f25 feat(example:todomvc): add editing support
- implement "onfocusout" handler
- set autofocus
- handle enter, escape and tab on a todo item
- make the `<pre>` element between todo list items of margin 0 to be unnoticable
2022-01-10 14:46:23 +01:00
Jonathan Kelley
d2372717bd feat: flatten props attrs 2022-01-10 02:57:03 -05:00
Jonathan Kelley
255f58af63 fix: ssr respects bool attrs 2022-01-10 01:32:32 -05:00
Jonathan Kelley
f4132d1874
Merge pull request #108 from DioxusLabs/jk/fstring-component-fields
Fix: string formatting detection in component fields
2022-01-10 01:20:58 -05:00
Jonathan Kelley
90abd9c9a0 fix: detection of f-string formatting in components 2022-01-10 01:20:03 -05:00
Jonathan Kelley
29bf424b09
Merge pull request #101 from alexkirsz/ci
CI: Enable clippy
2022-01-08 20:28:10 -05:00
YuKun Liu
92561612c7 fix: format code 2022-01-09 02:25:11 +08:00
YuKun Liu
8f4aa84f1a feat: bool attr white list 2022-01-09 02:02:23 +08:00
Alexandre Kirszenberg
b6903bf558 Enable clippy 2022-01-08 16:35:26 +01:00
Jonathan Kelley
b804c691d5 Release dioxus-hooks v0.1.6, dioxus-mobile v0.0.3, dioxus-router v0.1.0, dioxus-ssr v0.1.2, dioxus-web v0.0.4, dioxus v0.1.7 2022-01-08 02:30:37 -05:00
Jonathan Kelley
cd0dcacaf2 Release dioxus-desktop v0.1.5 2022-01-08 02:30:03 -05:00
Jonathan Kelley
a36dab7f45 Release dioxus-html v0.1.4, dioxus-desktop v0.1.5, dioxus-hooks v0.1.6, dioxus-mobile v0.0.3, dioxus-router v0.1.0, dioxus-ssr v0.1.2, dioxus-web v0.0.4, dioxus v0.1.7 2022-01-08 02:28:25 -05:00
Jonathan Kelley
16d73b240f Release dioxus-core v0.1.7 2022-01-08 02:27:48 -05:00
Jonathan Kelley
db0a5bd6ec Release dioxus-core-macro v0.1.6 2022-01-08 02:26:29 -05:00
Jonathan Kelley
40d1f85d0c Release dioxus-core v0.1.7, dioxus-core-macro v0.1.6, dioxus-html v0.1.4, dioxus-desktop v0.1.5, dioxus-hooks v0.1.6, dioxus-mobile v0.0.3, dioxus-router v0.1.0, dioxus-ssr v0.1.2, dioxus-web v0.0.4, dioxus v0.1.7 2022-01-08 02:25:03 -05:00
Jonathan Kelley
21232285d9 fix: add exclusion list 2022-01-08 02:14:05 -05:00
Jonathan Kelley
8d685f40b7 feat: handle bool attrs properly 2022-01-08 02:09:02 -05:00
Jonathan Kelley
9dff700c22 feat: enable prevent_default everywhere 2022-01-07 21:56:12 -05:00
Jonathan Kelley
d11f322f55 docs: add title to doc comment 2022-01-07 12:12:33 -05:00
Jonathan Kelley
be9f1a52ad docs: better document the EventHandler type 2022-01-07 12:12:13 -05:00
Jonathan Kelley
c439b0ac7e fix: component pass thru events 2022-01-07 11:51:25 -05:00
Jonathan Kelley
211d44d363
Merge pull request #84 from DioxusLabs/jk/windows-lag
fix: windows and gtk startup lag
2022-01-07 10:52:28 -05:00
Jonathan Kelley
cdc2d8ec6d
Merge pull request #80 from DioxusLabs/jk/router2dotoh
feat: allow use_ref to be cloned into async and add support for for_async
2022-01-07 02:23:19 -05:00
Jonathan Kelley
175a6a199c wip: clear warnigns 2022-01-07 02:07:10 -05:00
Jonathan Kelley
fd911584dc wip: remove lag by forcing update 2022-01-07 02:05:14 -05:00
Jonathan Kelley
34b0cb500b
Merge pull request #79 from DioxusLabs/jk/better_rehydration
Feat: Improve rehydration by using the VDom directly.
2022-01-07 01:02:14 -05:00
Jonathan Kelley
59f8b49fb6 Merge branch 'master' into jk/router2dotoh 2022-01-07 01:01:26 -05:00
Jonathan Kelley
a890f397c4 feat: allow use_ref to be cloned into callbacks 2022-01-07 00:56:43 -05:00
Jonathan Kelley
c9aaa96432
Merge pull request #78 from higumachan/patch-1
Fix typo in document
2022-01-07 00:49:25 -05:00
Jonathan Kelley
c6e917c4a0 tweak: add palceholder as comment content 2022-01-07 00:37:28 -05:00
Jonathan Kelley
b3a774b284 tweak: always add spacing comments between textnodes 2022-01-07 00:37:04 -05:00
Jonathan Kelley
dbb6e9b4fe fix: lastnodewastext in ssr 2022-01-07 00:36:13 -05:00
Jonathan Kelley
bbb6ee10de feat: make hydration more robust 2022-01-07 00:33:09 -05:00
Yuta Hinokuma
a17827ffaa
fix typo in document 2022-01-07 13:36:50 +09:00
Dave Rolsky
51c177be9e Fix typo "misisng" that occurred in several error messages 2022-01-06 16:18:10 -06:00
Dave Rolsky
706b0e21a5 Fix reference to "html!" macro in "rsx!" macro docs 2022-01-06 10:44:05 -06:00
Jonathan Kelley
4aadec1e30 fix: ci and bug in setter 2022-01-05 22:15:19 -05:00
Jonathan Kelley
bd341f5571 fix: tests 2022-01-05 17:30:12 -05:00
Jonathan Kelley
e2a6454527 chore: switch to log tracing 2022-01-05 16:36:42 -05:00
Jonathan Kelley
427b126bc1 feat: add prevent default attribute and upgrade router 2022-01-05 16:34:24 -05:00
Jonathan Kelley
cb2782b4bb wip: memoize dom in the prescence of identical components 2022-01-05 00:27:22 -05:00
Jonathan Kelley
7cf15ee4e8 publish: include desktop fixes 2022-01-03 21:36:43 -05:00
Jonathan Kelley
be2d6876ab Merge branch 'master' into jk/windows-desktop 2022-01-03 20:00:23 -05:00
Jonathan Kelley
ada24e7c4e wip: try to fix pathing 2022-01-03 19:59:13 -05:00
Jonathan Kelley
4ea5c990d7 publish: new versions of everything 2022-01-03 19:44:04 -05:00
Jonathan Kelley
4f92ba4160 wip: bump all versions 2022-01-03 19:32:27 -05:00
Jonathan Kelley
2481cd05c2 fix: attempt to fix ice 2022-01-03 17:20:22 -05:00
Jonathan Kelley
b3b4c580df wip: bump versions 2022-01-03 14:07:22 -05:00
Jonathan Kelley
b96491fe16 wip: bump mobile 2022-01-03 14:04:31 -05:00
Jonathan Kelley
54103da019 publish: bump desktop version 2022-01-03 14:03:17 -05:00
Jonathan Kelley
95f01aee44 publish: mobile 2022-01-03 13:40:01 -05:00
Jonathan Kelley
99d6409f7a publish: bump mobile 2022-01-03 13:38:56 -05:00