Commit graph

374 commits

Author SHA1 Message Date
=
b6ade84ea6 fix some lints 2022-12-16 10:19:26 -06:00
=
894e3bf6b5 make it compile after merge 2022-12-16 10:18:23 -06:00
=
14dd568987 Merge branch 'upstream-master' into fix-hot-reloading 2022-12-16 10:07:11 -06:00
=
0d9c350d5e implement for web and desktop 2022-12-15 21:16:37 -06:00
Jonathan Kelley
06e8e096bb feat: more fixes to liveview 2022-12-15 14:25:23 -08:00
Jonathan Kelley
e256fe1079 wip: add html event type 2022-12-14 19:07:33 -08:00
Jonathan Kelley
fa3d1ef574 chore: bump wry to 23 2022-12-14 12:49:07 -08:00
Jonathan Kelley
afeb308a1f chore: remove dbgs 2022-12-09 16:38:05 -08:00
Evan Almloff
bf47f64852 Merge branch 'upstream' into return-from-js 2022-12-08 11:25:15 -06:00
Evan Almloff
e863ef29b8 allow returning values from use_eval 2022-12-08 10:44:56 -06:00
Jonathan Kelley
4eefc3f854 chore: rename all &cx to cx, make clipppy happy 2022-12-07 13:11:40 -08:00
Jonathan Kelley
e8133e9449 fix: ios buillds 2022-12-07 12:50:43 -08:00
Jonathan Kelley
e8ae1fb83e chore: comment out hot reloading stuff 2022-12-06 16:38:19 -08:00
Jonathan Kelley
1b14b309e9 chore: clean up desktop 2022-12-06 16:37:28 -08:00
Jonathan Kelley
b182a6ee75 chore: clean up interpreter and bindings 2022-12-05 16:47:04 -08:00
Jonathan Kelley
7b1cdb7d85 feat: get desktop working with new template strategy 2022-12-05 16:08:41 -08:00
Jonathan Kelley
85657d3906 feat: rip out mutations for templates 2022-12-01 00:46:15 -05:00
Jonathan Kelley
3b166c9edd wip: clean up some things 2022-11-30 23:54:30 -05:00
Jonathan Kelley
18d6b1ad6f feat: get web working properly 2022-11-30 17:21:10 -05:00
Jonathan Kelley
3c19def550 chore: get create working and simplify dynamic nodes 2022-11-30 11:24:13 -05:00
Jonathan Kelley
0cfbfc88e2 feat: more tests working 2022-11-24 06:47:14 -05:00
Jonathan Kelley
112c954e00 Merge branch 'master' into jk/templates-v3 2022-11-22 16:11:12 -08:00
David Craven
1e99e35572
Implement push view for ios. (#612) 2022-11-22 12:35:40 -08:00
Jonathan Kelley
6c677e64da chore: make for loops not the same 2022-11-17 22:55:46 -08:00
Jonathan Kelley
20f9957fbe feat: diffing works on desktop! 2022-11-17 22:31:14 -08:00
Jonathan Kelley
30ef225812 feat: event handling on desktop 2022-11-17 20:00:39 -08:00
Jonathan Kelley
c1c5821dcf Merge branch 'master' into jk/templates-v3 2022-11-16 22:12:16 -08:00
Jonathan Kelley
642b21f125 suspense works in desktop 2022-11-16 11:48:47 -08:00
Jonathan Kelley
04bc635ac5 wip: prep to fix bug in create 2022-11-15 23:22:41 -08:00
Jonathan Kelley
e8ae830cf2 feat: get desktop working with just creation 2022-11-15 18:32:48 -08:00
Jonathan Kelley
47d0f51e00 wip: overhaul event system 2022-11-15 16:05:22 -08:00
Adrian Wannenmacher
79ea1994db
fix desktop dependency wry (#618) 2022-11-10 12:03:26 -06:00
David Craven
5c996f21fb
Update wry to 0.22.0 (#604) 2022-11-06 01:49:25 -07:00
David Craven
7e3a6fb4a4
Some fixes for wayland and ios. (#602) 2022-10-23 19:40:41 -07:00
Jonathan Kelley
90982e0ccb wip: start to refactor out hot reloading from packages
Also implement alternative simpler template system
2022-10-20 09:56:09 -07:00
Demonthos
3b7b503333
Refactor Mutations and simplify Templates (#578)
* update mutations to be path based rather than renderer integrated
2022-10-18 14:42:45 -07:00
Demonthos
daeffd4149
pass clippy (#575) 2022-10-02 14:12:24 -07:00
Demonthos
047ed1e553
Subtree memorization / reactive templates (#488)
This commit adds subtree memoization to Dioxus.

Subtree memoization is basically a compile-time step that drastically 
reduces the amount of work the diffing engine needs to do at runtime by
extracting non-changing nodes out into a static "template." Templates 
are then understood by the various renderers in the ecosystem as a 
faster way of rendering the same items. 

For example, in the web, templates are simply a set of DOM Nodes created 
once and then cloned later. This is the same pattern frameworks like Lithtml
and SolidJS use to achieve near-perfect performance. 

Subtree memoization adds an additional level of complexity to Dioxus. The RSX
macro needs to be much smarter to identify changing/nonchanging nodes and
generate a mapping between the Template and its runtime counterparts.

This commit represents a working starter point for this work, adding support 
for templates for the web, desktop, liveview, ssr, and native-core renderers.
In the future we will try to shrink code generation, generally improve 
performance, and simplify our implementation.
2022-09-30 12:03:06 -07:00
Demonthos
b32fd2d2cd
fix scroll data (#569) 2022-09-30 10:48:52 -07:00
Jon Kelley
0c48cb3601
feat: use infer instead of outdated mime-guess, bump wry (#548)
* feat: use infer instead of outdated mime

* chore: remove unused file

* fix: remove unused file
2022-09-24 23:48:05 -07:00
Jon Kelley
540e785d8b
Less clumsy configuration for desktop and mobile (#553)
* chore: dont use prebuilt builder pattern for configuring desktop

* chore: use regular config pattern for web

* Chore: update docs too

* chore: clean up some warnings
2022-09-13 16:22:27 -07:00
Demonthos
a9e71cb001
expose desktopconfig in public interface (#529) 2022-08-17 11:16:05 -07:00
Reinis Mazeiks
d734dc5b46
Remove argument from use_hook closure (#496)
Also; update docs for said function
2022-07-11 15:50:56 -04:00
Jon Kelley
d9546d9504
Renderers are now packages, not features. (#387)
* feat: use synchronous router design

* feat: function to get router out of dom

* chore: restructure workspace to use renderers as packages, not features
2022-07-09 15:15:20 -04:00
Jonathan Kelley
2b9888627b Merge branch 'master' of github.com:DioxusLabs/dioxus 2022-07-07 01:46:48 -04:00
Jonathan Kelley
7ff4d616d3 chore: remove outdated docs 2022-07-07 01:42:03 -04:00
Adia Robbie
c271fc132e
dioxus-desktop(Update-dep): tauri 0.19.x (#489)
* Update(dep): tauri 0.19.x
2022-07-06 12:05:31 -04:00
Demonthos
3a5d1a2ff8
fix web imports and extract hot reload handlers into seperate files (#484) 2022-07-04 13:18:11 -05:00
Evan Almloff
f0655a11ad panic on errors in hot-reload if no error handler socket is connected 2022-07-01 09:01:15 -05:00
YuKun Liu
0af69f83f2 Rename hot_reload to hot-reload 2022-06-26 14:23:19 +08:00
Evan Almloff
11d9a7d013 Merge remote-tracking branch 'upstream/master' into fix_nonbubbling_web_events 2022-06-22 13:59:10 -05:00
Evan Almloff
61b4bb2f19 handle bubbling events 2022-06-22 13:57:05 -05:00
Evan Almloff
75e13749ea set multiple rsx calls at once to prevent duplicated errors 2022-06-16 09:11:56 -05:00
Demonthos
df4ea20bb8 create serde compatible parse error 2022-06-15 12:58:08 -05:00
Evan Almloff
586983291a log parse errors 2022-06-13 17:02:43 -05:00
Evan Almloff
71d31556e5 Merge https://github.com/DioxusLabs/dioxus into jk/rsx-refactor 2022-06-10 18:16:05 -05:00
CGQAQ
030f6d58fb conditional devtools 2022-06-10 06:04:54 +08:00
Jason
09b1d379d7
fix(desktop): makes release build working 2022-06-09 16:55:53 +08:00
Evan Almloff
07199c8a64 clean up imports 2022-06-06 13:29:56 -05:00
Evan Almloff
586e29d815 force rerender after rsx is updated 2022-06-04 15:31:40 -05:00
Evan Almloff
8c6fceb0c7 finish desktop implementation 2022-06-04 14:26:37 -05:00
Evan Almloff
2bcaa2e43e refactor interperting macro into function and don't rely on cx being in scope 2022-06-04 12:20:56 -05:00
Evan Almloff
0079f7d18b WIP: expose pipe for desktop 2022-06-02 13:33:08 -05:00
Evan Almloff
51b87dafcc derive serde for Errors and Location, and add error handler 2022-05-31 12:03:04 -05:00
YuKun Liu
77a92a1cf6 feat: use_window add print & devtool 2022-05-11 14:56:37 +08:00
YuKun Liu
4f55fcb84a feat: use_window add set_zoom_level 2022-05-11 14:49:46 +08:00
YuKun Liu
8aadeff9d2 fix: add eval script failed log 2022-05-11 14:29:31 +08:00
YuKun Liu
b7e9dca87c fix: add eval script failed log 2022-05-11 14:09:31 +08:00
Jonathan Kelley
8ab1c4d0de feat: upgrade wry 2022-05-05 16:29:24 -04:00
Jonathan Kelley
3febd42588 Release dioxus-core v0.2.1, dioxus-core-macro v0.2.1, dioxus-html v0.2.1, dioxus-interpreter-js v0.2.1, dioxus-desktop v0.2.3, dioxus-hooks v0.2.1, dioxus-liveview v0.1.0, dioxus-native-core v0.2.0, dioxus-native-core-macro v0.2.0, dioxus-router v0.2.3, dioxus-ssr v0.2.1, dioxus-tui v0.2.2, dioxus-web v0.2.1, fermi v0.2.1, dioxus v0.2.4 2022-05-02 23:57:20 -04:00
Benjamin Lemelin
0105218db9 Removed alerts when right click on release. 2022-04-21 15:44:43 -04:00
Jonathan Kelley
fd2a5f5a6b fmt 2022-04-16 17:02:57 -04:00
Jonathan Kelley
049976d23a feat: allow customizing the index and head 2022-04-16 16:53:47 -04:00
Jon Kelley
56ea9e42fa
Merge pull request #318 from overlisted/eval-stuff
Eval stuff
2022-04-04 13:01:35 -04:00
Jonathan Kelley
d50e86492e fix: instantly resolving futures should not use popping 2022-03-24 11:15:07 -04:00
Ilya Maximov
d31edfa7d7
rustfmt when the 2022-03-21 22:02:04 +01:00
Ilya Maximov
6e8fdc1e4d
make the closure dyn 2022-03-21 21:57:29 +01:00
Ilya Maximov
c194fa8372
remove panics from desktop docs
`WebView::evaluate_script()` always returns `Ok()`
2022-03-19 03:13:34 +01:00
Ilya Maximov
b4a5fe9845
use ToString 2022-03-19 02:57:39 +01:00
Ilya Maximov
5cbf2698fd
add use_eval()to desktop and web 2022-03-17 23:47:11 +01:00
Ilya Maximov
08fa2382b0
add eval to DesktopContext 2022-03-17 22:55:26 +01:00
Jonathan Kelley
841ad91fe1 fix: dblclick instead of doubleclick 2022-03-11 10:49:38 -05:00
Jonathan Kelley
e7505188d6 release: make a new 0.2.0 release of Dioxus 2022-03-09 14:24:05 -05:00
Jonathan Kelley
0f87ebb277 docs: even more docs 2022-03-06 20:37:57 -05:00
Jonathan Kelley
dbcd91e32f chore: switch to mutex 2022-03-04 14:28:21 -05:00
Jonathan Kelley
f2979cb12a feat: apply local router changes 2022-03-04 13:16:37 -05:00
Jonathan Kelley
3928856a9b fix: desktop edits should not be applied in reverse 2022-03-04 13:14:49 -05:00
Jonathan Kelley
4954079212 fix: forbidden filtering 2022-02-27 14:29:07 -05:00
Jonathan Kelley
bfc55b0646 fix: forbidden filtering 2022-02-27 14:26:37 -05:00
Jonathan Kelley
2181ccd80f
Merge pull request #272 from DioxusLabs/jk/documet-everything
docs: add `deny(missing_docs)` is many more places
2022-02-26 17:46:30 -05:00
Jonathan Kelley
56517ef5de fix: merge conflicts 2022-02-26 17:35:23 -05:00
Jonathan Kelley
77631bff1f Merge branch 'master' into jk/documet-everything 2022-02-26 17:33:06 -05:00
Jonathan Kelley
ccb3aa7977 feat: allow custom root directories 2022-02-23 15:11:57 -05:00
Jonathan Kelley
c12bcd8150 fix: protocol works on in both cargo and bundle
This commit enables assets to be served locally through cargo run
or through a bundle strategy. We use cargo-bundle's bundle strategy.
This PR checks only for macOS targets.
2022-02-23 14:19:00 -05:00
Jonathan Kelley
24743e44e9 feat: canoncialize assets for macOS 2022-02-23 13:53:45 -05:00
Jonathan Kelley
d19ae3ff56 feat: tweak debug tools to be customizable 2022-02-21 23:45:01 -05:00
Jonathan Kelley
b2a4d387c7 docs: document all of desktop crate 2022-02-20 23:52:36 -05:00
Jonathan Kelley
c5a022112b
Merge pull request #267 from DioxusLabs/jk/heavy-compute
fix: ping window after virtualdom is ready
2022-02-20 17:44:05 -05:00
Jonathan Kelley
5954bba975 wip: disable reload in production 2022-02-19 22:36:55 -05:00
Jonathan Kelley
28716248c5 fix: ping window after virtualdom is ready 2022-02-19 17:34:44 -05:00
Jonathan Kelley
5a6d1c2a31 fix: compile for rust 1.57 2022-02-18 23:30:09 -05:00
Jonathan Kelley
7ce34ad97e fix: enable desktop devtol 2022-02-18 23:22:35 -05:00
Jonathan Kelley
3873cd1a60 fix: remove unused depds 2022-02-16 14:40:45 -05:00
Jonathan Kelley
a6cbe233b7 fix: empty values on desktop 2022-02-15 13:38:06 -05:00
Jonathan Kelley
345dfd4214
Merge pull request #243 from asaaki/update/wry-0-13
Update to wry 0.13; support IPC, devtool, and feature flags
2022-02-15 11:23:16 -05:00
mrxiaozhuox
e3e5f22bc7 feat: move default_icon to assets 2022-02-14 16:53:35 +08:00
Christoph Grabo
932ad01644
Make clippy happy 2022-02-13 20:57:30 +01:00
Christoph Grabo
934d5998db
Support maximize toggle and devtool 2022-02-13 20:34:27 +01:00
Christoph Grabo
2828f45e12
Clean up desktop's lib.rs 2022-02-13 20:34:27 +01:00
Christoph Grabo
e7a0e5f1d9
Extract user window events into module 2022-02-13 20:34:27 +01:00
Christoph Grabo
cf543ab1df
Extract controller into module 2022-02-13 20:34:27 +01:00
Christoph Grabo
73ce79bd2a
Extract protocol hander into module 2022-02-13 20:34:26 +01:00
Christoph Grabo
594a794f05
Switch from RPC to IPC 2022-02-13 20:34:26 +01:00
Christoph Grabo
a5bf25ce18
Adjust visibility 2022-02-13 20:34:21 +01:00
Christoph Grabo
c40d225d7d
Fix typo 2022-02-13 20:32:04 +01:00
Christoph Grabo
ee2b869e99
Add optional feature flags of wry
Check wry's documentation for each.
Some of them are platform dependent or
have platform dependent effects.
(mostly MacOS and Linux)
2022-02-13 20:30:10 +01:00
Christoph Grabo
c502535724
Update dependencies
Specifically set wry to 0.13;
this has breaking changes (notably: RPC -> IPC).
2022-02-13 20:30:10 +01:00
Jonathan Kelley
ab99bc6c8d chore: comment out image generator when not in use 2022-02-13 12:35:07 -05:00
Jonathan Kelley
64f8e58c04
Merge pull request #242 from oovm/desktop-icon
Add default desktop icon
2022-02-13 12:27:38 -05:00
Aster
21b436b7bf Remove image at runtime 2022-02-13 01:36:51 +08:00
Aster
f6b30d26b9 Add default desktop icon 2022-02-13 00:35:02 +08:00
Aster
78ac592c0a Custom for icon 2022-02-13 00:34:45 +08:00
Jonathan Kelley
2591ef2a54
Merge pull request #236 from asaaki/cleanup-index-html 2022-02-12 09:44:23 -05:00
Aster
aad055cd84 Fix typo WryProtocol 2022-02-12 21:46:12 +08:00
Christoph Grabo
b64574810d
Clean up desktop's index.html
Initially I wanted to delete only the duplicated `<html>` opening tag,
but then decided to make it a fully valid HTML document.

Passes https://validator.w3.org/nu/#textarea check.
2022-02-12 01:43:36 +01:00
Benjamin Lemelin
f8c78f8ca9 Transparent window means transparent WebView 2022-02-11 14:47:29 -05:00
mrxiaozhuox
da0f596cde feat: commit code 2022-02-11 10:36:29 +08:00
mrxiaozhuox
30bb92f09a fix: change method name 2022-02-11 09:46:23 +08:00
mrxiaozhuox
c9fa19d009 fix: ci problem 2022-02-11 09:10:27 +08:00
mrxiaozhuox
62f8e71f7f fix: borderless example 2022-02-11 09:05:32 +08:00
mrxiaozhuox
332ec30954 fix: change method name 2022-02-10 23:38:57 +08:00
mrxiaozhuox
81ea7a1428 feat: add window api 2022-02-10 23:33:02 +08:00
mrxiaozhuox
01435d6aff feat: add window api 2022-02-10 16:59:28 +08:00
mrxiaozhuox
f28fb7165a feat: add window api 2022-02-10 13:47:45 +08:00
mrxiaozhuox
6eaad850ee feat: add window title api 2022-02-10 12:35:17 +08:00
Jonathan Kelley
ac4faec570 fix: remove broken example 2022-02-03 13:30:24 -05:00
Timothée
9e804036d4
Merge branch 'DioxusLabs:master' into tb/makefile_test_setup 2022-02-02 20:35:36 +01:00
t1m0t
12cfd79d51 commented out failing example 2022-02-01 22:04:21 +01:00
Jonathan Kelley
527434b9f9 feat: make the interpreter as its own crate 2022-02-01 15:44:08 -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
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
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
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