Commit Graph
98 Commits
Author SHA1 Message Date
Jonathan Kelley 30ef225812 feat: event handling on desktop 2022-11-17 20:00:39 -08:00
Jonathan Kelley 642b21f125 suspense works in desktop 2022-11-16 11:48:47 -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
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
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
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
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
Jonathan Kelley 8ab1c4d0de feat: upgrade wry 2022-05-05 16:29:24 -04:00
Benjamin Lemelin 0105218db9 Removed alerts when right click on release. 2022-04-21 15:44:43 -04:00
Jonathan Kelley 049976d23a feat: allow customizing the index and head 2022-04-16 16:53:47 -04:00
Ilya Maximov d31edfa7d7 rustfmt when the 2022-03-21 22:02:04 +01:00
Ilya Maximov 5cbf2698fd add use_eval()to desktop and web 2022-03-17 23:47:11 +01: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 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 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 7ce34ad97e fix: enable desktop devtol 2022-02-18 23:22:35 -05:00
Christoph Grabo 2828f45e12 Clean up desktop's lib.rs 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
Aster f6b30d26b9 Add default desktop icon 2022-02-13 00:35:02 +08:00
Aster aad055cd84 Fix typo WryProtocol 2022-02-12 21:46:12 +08: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 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 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 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 7ca92be015 feat: add focus api 2022-01-31 19:44:40 +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
Jonathan Kelley 06723ad63f fix: add interpreter to desktop package so it publishes 2022-01-29 10:23:41 -05:00
Jonathan Kelley 430cde7068 feat: default asset server 2022-01-27 16:36:17 -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 95e93ed0bc feat: remove dioxus id on non-event elements 2022-01-21 15:06:57 -05:00
Jonathan Kelley 824defa2db Merge branch 'master' into jk/unify 2022-01-21 00:16:45 -05:00