Commit graph

813 commits

Author SHA1 Message Date
Jonathan Kelley
2c4e7beae8 wip: update interpreter 2022-02-02 11:32:00 -05:00
Jonathan Kelley
8f9d15db4a feat: enable form elements in web 2022-02-02 02:00:53 -05:00
Jonathan Kelley
c4556d050e Merge branch 'master' into jk/form-ma 2022-02-02 01:50:43 -05:00
Jonathan Kelley
84959a7826 feat: it works everywhere 2022-02-02 01:08:59 -05:00
Jonathan Kelley
b4923b2b81 ci: move gen folder out of src 2022-02-01 16:07:50 -05:00
t1m0t
12cfd79d51 commented out failing example 2022-02-01 22:04:21 +01:00
Jonathan Kelley
86bac80040 fmt: make bindings obey formatting 2022-02-01 15:57:07 -05:00
Jonathan Kelley
71656adc89 publish: generate our bindings.rs file from an inlinejs snippet 2022-02-01 15:54:32 -05:00
Jonathan Kelley
5b69f9b686 release: make interpreter crate publishable 2022-02-01 15:45:03 -05:00
Jonathan Kelley
527434b9f9 feat: make the interpreter as its own crate 2022-02-01 15:44:08 -05:00
Jonathan Kelley
ee67a041d2 feat: turn interpreter into crate 2022-02-01 15:38:48 -05:00
Jonathan Kelley
7c06b3a9a2 Merge branch 'master' into jk/form-ma 2022-02-01 15:24:19 -05:00
t1m0t
8ad3f85872 fix ordering to match original one 2022-02-01 21:13:18 +01:00
Jonathan Kelley
80d792910f
Merge pull request #182 from DioxusLabs/jk/debugging-diff
fix: nodes being unmounted when used in highly nested contexts
2022-02-01 15:08:43 -05:00
Jonathan Kelley
94c1da8264 chore: clean up documentation in diffing algorithm 2022-02-01 15:00:36 -05:00
t1m0t
d7968c987f wip: Makefile setup 2022-02-01 20:40:29 +01:00
Jonathan Kelley
e02dfc3324 fix: change use_state to be clone 2022-02-01 02:05:54 -05:00
Jonathan Kelley
fa020c53e4 tweak: use 2018 rust syntax instead of 2022 for formatting 2022-02-01 01:57:21 -05:00
Jonathan Kelley
0c0f638c47
Merge pull request #180 from mrxiaozhuox/borderless-frame
Add support for desktop context, borderless frames, minimize, maximize, and other window-related goodies through the imperative `use_window` hook.
2022-01-31 19:53:27 -05:00
mrxiaozhuox
bead035969 feat: export use_window 2022-02-01 08:43:54 +08:00
Jonathan Kelley
6905bf98d7 chore: clean up examples and fix link opening code 2022-01-31 19:40:48 -05:00
mrxiaozhuox
f1fe8f1d2a fix: change hooks name 2022-02-01 08:39:31 +08:00
Jonathan Kelley
1978f195b3 Merge branch 'master' into jk/debugging-diff 2022-01-31 16:19:48 -05:00
Jonathan Kelley
8badf90a03 fix: dioxus web prevents default on in nested targets
this commit fixes an issue where we used the event target to
prevent default even if the target element wasn't an event
handler.
2022-01-31 15:53:06 -05:00
Jonathan Kelley
fb75948363 fix: usestate modify panic 2022-01-31 14:33:25 -05:00
Jonathan Kelley
c4e6496d9d chore: enable a pedantic clippy on the diffing algorithm 2022-01-31 12:49:21 -05:00
Jonathan Kelley
06418f73db fix: element stack not being updated properly 2022-01-31 12:29:11 -05:00
mrxiaozhuox
7ca92be015 feat: add focus api 2022-01-31 19:44:40 +08:00
mrxiaozhuox
366cf75887 feat: add use_desktop_context hook 2022-01-31 19:39:44 +08:00
Jonathan Kelley
923fb0701d fix: clippy 2022-01-31 03:34:52 -05:00
Jonathan Kelley
b4697fc9f9 chore: clean up some more of the scopes file 2022-01-31 03:27:43 -05:00
Jonathan Kelley
268b1b0c66 Merge branch 'master' into jk/debugging-diff 2022-01-31 03:23:35 -05:00
Jonathan Kelley
120ee18368 chore: improve debugability of fcptrs and vcomponents
this commit changes the fc slot type from a thin pointer to a c pointer.
this lets us provide frame inspection of components using backtrace.
2022-01-31 03:22:34 -05:00
Jonathan Kelley
9dda7b168b chore: clean up scopes 2022-01-31 03:04:47 -05:00
Jonathan Kelley
a4ea0ba4fe chore: undo dirty_scopes rename 2022-01-31 02:52:40 -05:00
Jonathan Kelley
236ef9a8c4 Merge branch 'master' into jk/debugging-diff 2022-01-31 02:51:59 -05:00
Jonathan Kelley
0820e18d3d feat: make component name accessible 2022-01-31 02:49:37 -05:00
Jonathan Kelley
4ae11b5756 fmt: make tests easier to visually parse with fmt rules 2022-01-31 02:46:26 -05:00
Jonathan Kelley
00aa0e5e86 fmt: apply formatting just to tests 2022-01-31 02:44:16 -05:00
Jonathan Kelley
5bffbba682 fmt: apply cargofmt with new rules for lit structs 2022-01-31 02:40:12 -05:00
Jonathan Kelley
11f6b93889 fix: remove nodes is in a happier state 2022-01-31 02:33:16 -05:00
Jonathan Kelley
cbd471fa46 debugging: add some more debug tooling 2022-01-31 01:24:11 -05:00
mrxiaozhuox
e4eb982a36 fix: format code 2022-01-31 10:11:58 +08:00
mrxiaozhuox
a0ffe66a37 feat: add borderless example 2022-01-31 09:47:09 +08:00
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
Jonathan Kelley
174d287062 wip: extract to rsx module 2022-01-17 23:02:36 -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
abfac0d59b wip: move macro lib out of proc macro crate 2022-01-17 16:37:44 -05: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