Commit graph

313 commits

Author SHA1 Message Date
Jonathan Kelley
dc028df0dd clippy: make it happier 2022-03-20 21:50:43 -04:00
Maccesch
a2825fb13c updated examples with the new optional props 2022-03-16 06:36:39 +00:00
Maccesch
9a23ee4612 active_class prop for Router 2022-03-13 16:35:28 +00:00
Maccesch
1080ffe52d use_route hook can be used outside of Route components 2022-03-13 16:31:33 +00:00
Jon Kelley
0fdd6d268f
Merge pull request #294 from Synphonyte/master 2022-03-12 11:56:25 -05:00
Jonathan Kelley
ed07e914d3 fix: compile router on web 2022-03-09 21:14:22 -05:00
Maccesch
1a2624952a fixed cargo fmt 2022-03-09 23:06:14 +00:00
Jonathan Kelley
1c2e5e2aea publish: update dioxus with router fix 2022-03-09 17:53:02 -05:00
Jonathan Kelley
cc4b073f0d fix: use ordering of routes for router 2022-03-09 17:50:39 -05:00
Jonathan Kelley
0ce326566e wip: fix router slashing 2022-03-09 16:26:13 -05:00
Jonathan Kelley
e7505188d6 release: make a new 0.2.0 release of Dioxus 2022-03-09 14:24:05 -05:00
Maccesch
82fc9739bb updated to new way of checking path of route 2022-03-09 03:25:40 +00:00
Maccesch
ef82ffd217 added active class to router link 2022-03-06 23:17:24 +00:00
Jonathan Kelley
f47d2900fb feat: add a redirect 2022-03-05 14:06:54 -05:00
Jonathan Kelley
cdbc37711f fix: wasm test 2022-03-04 13:16:37 -05:00
Jonathan Kelley
57bd8b7ce2 fix: enable wasmtest feature 2022-03-04 13:16:37 -05:00
Jonathan Kelley
9edc3459d5 fix: remove latent test 2022-03-04 13:16:37 -05:00
Jonathan Kelley
82f69a9ca6 fix: feature flagging 2022-03-04 13:16:37 -05:00
Jonathan Kelley
c7627f0b93 fix: tests pass 2022-03-04 13:16:37 -05:00
Jonathan Kelley
06d4a5640b docs: fix doc comment 2022-03-04 13:16:37 -05:00
Jonathan Kelley
cc83900334 feat: router crate is polished up 2022-03-04 13:16:37 -05:00
Jonathan Kelley
60b11081f2 chore: remove idna feature from url 2022-03-04 13:16:37 -05:00
Jonathan Kelley
f2979cb12a feat: apply local router changes 2022-03-04 13:16:37 -05:00
Jonathan Kelley
e04a6d63a5 chore: move tests out of core and into the top level crate
This commit moves the tests out of core so rust analyzer
is happier with the workspace.
2022-03-02 22:48:22 -05:00
Jonathan Kelley
46a42c5ef9 Docs: update readme and usage doc for router 2022-03-02 17:57:00 -05:00
Jonathan Kelley
0e12915dc8 fix: remove old vscode folder 2022-03-02 17:54:22 -05:00
Ilya Maximov
916dc64402
style: format againkjdfakbjfbkasjd 2022-02-23 20:00:01 +01:00
Ilya Maximov
bda4a71a72
feat: change schedule_update's Rc to an Arc
BREAKING CHANGE
2022-02-23 19:47:17 +01:00
Jonathan Kelley
3873cd1a60 fix: remove unused depds 2022-02-16 14:40:45 -05:00
Jonathan Kelley
babe862739 fix: login example to use proper methods 2022-02-16 14:11:31 -05:00
Denis Richartz
b71cf6ed4a cargo fmt 2022-02-16 16:11:57 +01:00
Denis Richartz
ee2e986a30 fix unnecessary div 2022-02-16 15:34:43 +01:00
Jonathan Kelley
8ca505b65b feat: better link 2022-02-14 09:30:08 -05:00
Jonathan Kelley
4a3680ee1b chore: remove all warnings 2022-02-10 21:00:15 -05:00
t1m0t
bd565bb65f improve Makefile tests 2022-02-04 17:18:31 +01:00
t1m0t
ee49fc27ff fix some newlines 2022-02-03 09:28:06 +01:00
t1m0t
f1865faef7 setup done, local tests work, check workflow 2022-02-03 00:11:38 +01:00
Timothée
9e804036d4
Merge branch 'DioxusLabs:master' into tb/makefile_test_setup 2022-02-02 20:35:36 +01:00
t1m0t
8ad3f85872 fix ordering to match original one 2022-02-01 21:13:18 +01:00
t1m0t
d7968c987f wip: Makefile setup 2022-02-01 20:40:29 +01:00
Jonathan Kelley
06418f73db fix: element stack not being updated properly 2022-01-31 12:29:11 -05:00
Jonathan Kelley
3edf3e367f wip: debugging 2022-01-30 14:08:03 -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
d570bb6c42 Release dioxus-router v0.1.1 2022-01-29 10:40: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
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
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
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
29ed7ebece feat: connect an onchange listener 2022-01-25 15:06:37 -05: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
Dave Rolsky
64080588d0 Add a warning when Link it called outside of a Router context 2022-01-17 15:52: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
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
d2372717bd feat: flatten props attrs 2022-01-10 02:57:03 -05: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
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
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
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
4f92ba4160 wip: bump all versions 2022-01-03 19:32:27 -05:00
Jonathan Kelley
75fa7b4aa6 fix: make tests pass 2022-01-03 01:12:39 -05:00
Jonathan Kelley
420a30e5d4 feat: overhaul examples and clean things up 2022-01-03 00:42:17 -05:00
Jonathan Kelley
d1560450ba wip: remove runner on hook and then update docs 2022-01-02 02:15:04 -05:00
Jonathan Kelley
4c85bcfdc8 awesome: arbitrary expressions excepted without braces 2021-12-30 03:14:47 -05:00
Jonathan Kelley
ad4a0eb319 wip: add more svg elements, update readme 2021-12-29 00:56:53 -05:00
Jonathan Kelley
3dc0e59876 fix: readme and examples syntax 2021-12-28 23:48:25 -05:00
Jonathan Kelley
a4f280d163 feat: more API updates 2021-12-28 23:20:01 -05:00
Jonathan Kelley
cda759c659 examples: upgrade to new version of dioxus core.
also add the inline_props macro
2021-12-25 17:18:05 -05:00
Jonathan Kelley
934de21dd6 wip: miri stress tets 2021-12-18 23:03:59 -05:00
Jonathan Kelley
2c3a046426 wip: prepare to change our fragment pattern. Add some more docs 2021-12-18 15:17:32 -05:00
Jonathan Kelley
2b928372fb Release dioxus-core v0.1.3, dioxus-core-macro v0.1.2, dioxus-html v0.1.0, dioxus-desktop v0.0.0, dioxus-hooks v0.1.3, dioxus-liveview v0.1.0, dioxus-mobile v0.0.0, dioxus-router v0.1.0, dioxus-ssr v0.1.0, dioxus-web v0.0.0, dioxus v0.1.1 2021-12-15 16:07:09 -05:00
Jonathan Kelley
0d480a4c43 Release dioxus-core v0.1.3, dioxus-core-macro v0.1.2, dioxus-html v0.1.0, dioxus-desktop v0.0.0, dioxus-hooks v0.1.3, dioxus-liveview v0.1.0, dioxus-mobile v0.0.0, dioxus-router v0.1.0, dioxus-ssr v0.1.0, dioxus-web v0.0.0, dioxus v0.1.0 2021-12-15 16:06:15 -05:00
Jonathan Kelley
868f6739d2 fix: keyword length 2021-12-15 16:06:13 -05:00
Jonathan Kelley
b32665d721 Release dioxus-core v0.1.3, dioxus-core-macro v0.1.2, dioxus-html v0.1.0, dioxus-desktop v0.0.0, dioxus-hooks v0.1.3, dioxus-liveview v0.1.0, dioxus-mobile v0.0.0, dioxus-router v0.1.0, dioxus-ssr v0.1.0, dioxus-web v0.0.0, dioxus v0.1.0 2021-12-15 16:05:20 -05:00
Jonathan Kelley
a33f7701fc fix: tags 2021-12-15 16:05:18 -05:00
Jonathan Kelley
3a706ac416 Release dioxus-core v0.1.3, dioxus-core-macro v0.1.2, dioxus-html v0.1.0, dioxus-desktop v0.0.0, dioxus-hooks v0.1.3, dioxus-liveview v0.1.0, dioxus-mobile v0.0.0, dioxus-router v0.1.0, dioxus-ssr v0.1.0, dioxus-web v0.0.0, dioxus v0.1.0 2021-12-15 16:04:30 -05:00
Jonathan Kelley
e4c06ce8e8 docs: update cargo tomls 2021-12-15 16:04:27 -05:00
Jonathan Kelley
270dfc9590 Release dioxus-core v0.1.3, dioxus-core-macro v0.1.2, dioxus-html v0.1.0, dioxus-desktop v0.0.0, dioxus-hooks v0.1.3, dioxus-liveview v0.1.0, dioxus-mobile v0.0.0, dioxus-router v0.1.0, dioxus-ssr v0.1.0, dioxus-web v0.0.0, dioxus v0.1.0 2021-12-15 15:59:11 -05:00
Jonathan Kelley
58106a5529 fix: router version 2021-12-15 15:59:02 -05:00
Jonathan Kelley
0846d93d41 wip: bump versions 2021-12-15 15:58:20 -05:00
Jonathan Kelley
4de16c4779 docs: update local examples and docs to support new syntaxes 2021-12-15 15:56:53 -05:00
Jonathan Kelley
2fd56e7619 wip: remove portals completely 2021-12-14 21:46:19 -05:00
Jonathan Kelley
8daf7a6ed8 wip: go back to noisy lifetime solution 2021-12-14 02:27:59 -05:00
Jonathan Kelley
1e4a599d14 wip: rename fc to component 2021-12-09 21:19:31 -05:00
Jonathan Kelley
8814977eee wip: docs 2021-11-30 22:48:05 -05:00
Jonathan Kelley
52c7154897 fix: really big bug around hooks 2021-11-29 11:10:40 -05:00
Jonathan Kelley
bab21a0aa1 wip: updates to router 2021-11-22 15:22:42 -05:00
Jonathan Kelley
a5f05d73ac wip: docs and router 2021-11-19 00:49:04 -05:00
Jonathan Kelley
8acdd2ea83 feat: it compiles once more 2021-11-11 16:36:51 -05:00
Jonathan Kelley
1e6e5e611b wip: move examples around 2021-11-03 15:13:50 -04:00
Jonathan Kelley
d298b626d3 wip: add router 2021-11-03 00:35:56 -04:00
Jonathan Kelley
fd7933561f chore: move CLI into its own "studio" app 2021-07-07 16:58:23 -04:00
Jonathan Kelley
81382e7044 chore: rename ctx to cx 2021-06-25 21:15:33 -04:00
Jonathan Kelley
47e896038e wip: more work on updating syntad 2021-06-15 10:02:46 -04:00
Jonathan Kelley
508c560320 Feat: massive changes to definition of components
This change switches back to the original `ctx<props>` syntax for
commponents. This lets lifetime elision to remove the need to match
exactly which lifetime (props or ctx) gets  carried to the output. As
such, `Props` is currently required to be static. It *is* possible to
loosen this restriction, and will be done in the future, though only
through adding metadata about the props through the Props derive
macro. Implementing the IS_STATIC trait is unsafe, so the derive macro
will do it through some heuristics.

For now, this unlocks sharing vnodes from parents to children, enabling
pass-thru components, fragments, portals, etc.
2021-06-01 18:33:15 -04:00
Jonathan Kelley
6aeea9b790 Feat: add router 2021-01-20 17:48:58 -05:00