Commit Graph
76 Commits
Author SHA1 Message Date
Evan Almloff 13dcd80fbf Optimize wasm bindgen asset with manganis (#3531) 2025-01-21 15:14:45 -08:00
Jonathan Kelley 439e3e7723 fix: dont unwrap as much in desktop (#3609) 2025-01-21 00:13:05 -08:00
Jonathan Kelley d342630a0a feat: android bundling, red/blue exe names, session cache (#3608)
* feat: android bundling

* fix: add hashing to exe names for red/blue exes

* feat: implement session cache for window restoration
2025-01-20 21:16:55 -08:00
Jonathan Kelley 6c907b1c20 fix: restore file in release mode 2025-01-20 18:36:17 -08:00
Jonathan Kelley c2ad99406d Fix: don't overwrite pos/size when dx-rebuilding 2025-01-20 18:02:59 -08:00
Jonathan Kelley 8334f7fbaa feat: device hot-reload, tools-relative adb, auto port bind (#3586)
* wip: bind to 0.0.0.0 instead of 127.0.0.1

* dont hang in background - ignore suspend commands when tty is disabled

* use system adb

* pass configs through to android mobile launch

* fix: line sizes + clear pushes frame

* dont resume window state on mobile

* fix screen sizing for ipad

* attempt and fail to implement codesigning

* Clippy and note about safety in android bindings
2025-01-20 17:42:13 -08:00
Christopher Serr eaf9f80abd Fix: Only Resize WebView Associated With Window (#3584)
When resizing a window, Dioxus previously accidentally resized every
single webview to the dimensions of the window that just got resized.
This fixes it so only the webview that is associated with the window is
resized.
2025-01-17 12:00:38 -08:00
sertschgiandJonathan Kelley 25a64d97c0 Fixed the multiple window closing issue, where the two multiwindow examples weren't working. (#3499)
* fixed window when multiple windows not closing

* fixed window when multiple windows not closing

* fixed accidental includes

* polished

* fix last window closing hiding app and rc hardcount

* find the suspect strong count holders and fix them

* Use the proper type alias

* fmt

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-01-13 12:10:22 -08:00
Jonathan Kelley 995a529b2f feat: some simple UI tweaks to CLI (#3301) 2024-12-06 15:15:42 -08:00
1e8693a0e8 wgpu windows (fixed) (#3257)
* Working triangle rendering with wgpu in examples. Resize needs work in order to not reinitialize everything but only the bits needed. Naming of variables and resources are wonky and not the greatest.

* The child window wasn't being resized along with the parent. This works. the abstractions in place should be passed the bounds rect down into the desktopservice to resize as opposed to in the app impl instead of how they are rn.

---------

Co-authored-by: Vineeth Yeevani <vineethyeevani@Vineeths-MacBook-Air.local>
Co-authored-by: Vineeth Yeevani <vineeth.yeevani@gmail.com>
2024-11-26 18:44:53 +01:00
Alex Andreba 1370bce182 Add support for user-provided event loops & event handlers (#3180)
* added support for custom event loop
* added support for custom event callbacks
2024-11-13 18:44:29 -05:00
Klemen 292f757d5d SystemTray (#3123)
* Added tray icon
2024-10-31 12:46:17 -07:00
Jonathan Kelley 7ec3453ca3 Fix bundling/path errors, sidecar support, iOS/Android simulator support, asset hotreload fixes, serverfn hotrelad, native tailwind support (#2779)
* wip: fix manganis import path
* upgrade tauri bundler, convert todo!() to unimplemented!()
* feat: mobile hotreloading + ios asset configuration
* remove oid demo and its associated env vars
* nuke all the things that cause cache thrashing
* swap to Asset type
* add some more logs
* display impl for attrvalue
* dont panic on collect failure
* cut down web deps to 150
* clean up deps in a lot of places, simplify build scripts
* clean up asset resolution and cli-dev profile
* wire up absolute paths for manganis asset in a particular mode
* move document related things around to shorten compile times
* move most things to `document::Item` and then decompose the cli-config
* switch link to stylesheet for clarity in examples
* move manganis workspace example to examples folder
* decompose manganis-cli-support
* dont need mobile demo anymore
* remove gloo dialogs
* html doesnt need document
* rename hotreload to devtools
* really clean up the html crate
* fix weird rsx spacing
* clean up desktop to use callback
* clean up document a bit
* re-wire up devsocket
* fix utf css
* yeeeet that js out of here
* synthetic web system works
* web crate almost done being cleaned up
* desktop mostly cleaned up too
* clean up cli a bit
* more cli cleanup
* cli builds again
* clean up cli, inline structs, cut down number of unique types where possible
* hotreload works again for desktop and this time, mobile too
* cfg out tungstenite
* devserver err
* more refactor to cli builder
* switch to unbounded_send
* new structure is much cleaner
* add http serve subcommand
* bundled hotreload
* kick stylsheets
* clean up a bit more, split up eventloop
* amazingly serve seems done
* change from pub to pub(crate) in cli
* remove tools
* bit more polish to cli
* fix issue with join
* gracefully handle fullstack without a server
* fullstack mobile demo
* fix launch function, move projects into example-projects folder
* hoist examples
* add "run" command
* clean up launch
* remove old manual websocket receiver
* doctor command
* allow desktop to scroll
* cut apart router crate
* dont put launch in prelude
* use dioxus::launch where possible
* rename rsx, cut out hotreload tests
* remove liveview project
* bump native
* fix compile for renderers
* move sync event response out of interpreter
* move render in serve
* rollback settings change
* cli compiles, huzzah!
* change uris for asset
* fix asset
* new tui screen
* new cargo-like tui works
* very very verty close
* it works! very small bug with incorrect grapheme calc
* Clean up devserver a bit
* status sytem
* tidy up debug filters
* clean up logging situation
* Fix a number of bugs with log printing
* new printing system is more reliable
* wire up more stuff
* things working but fullstack is having issues
* fullstack works again!
* hotreloading bundled assets works again
* bundled hotreload and beginnings of macos bundling
* Hotreload desktop
* combined server builds
* add build handle
* fix fullstack assets
* make open async, add some hooks for ios
* migrate filemap to runner
* wip global crate system
* fixup bundles + organize asset
* fix asset location bug
* all the bundled reloading!
* open ios simulator!
* full hotreload support for mobile + serverfn
* basic cleanups
* clean up dx
* Move filemap
* fix cutting of newlines
* assets workibg, some android
* hoist wry/tao
* use sync locks and headers to fix issues with android
* desktop -> mac/win/linux with alias
* better logging
* feat: workspace (entire computer!) hotreload
* should rebuild toggle, ios simulator bootup
* proper mobile support in launch
* more robust handling of assets
* fix cargo
* bring back some of tauri bundle
* make warnings go away, clippy happy on cli
* some final clippy cleanups
* fmt
* move manganis to its own folder
* upgrade bundle to stable
* drastically slim down manganis, prepping for merge
* typos, failing test, docsrs config
* remove static gen test
* nix static gen test
* we use --platform web instead of --platform fullstack now
* only bind dev urls in desktop/mobile
* install gtk
* nix static gen
* split build dir by app name
2024-10-25 17:23:45 -07:00
Miles Murgaw 0995b5d2c5 Fix: Windows File Drag-N-Drop (#3046)
* fix: windows file drop
* update: tokio + fix eval
2024-10-14 11:00:11 -07:00
Evan Almloff cda8bb24f1 Remove native and web features from dioxus-html (#3006)
* remove native and web features from dioxus-html

* Fix downcasting web events

* Fix desktop with tokio disabled
2024-10-10 13:35:59 -07:00
Jonathan Kelley 3fb1f739d1 Simplify cli-config, hotreload -> devtools (drop to 0 deps, fast compile times) (#2975)
* simplify cli-config crate
* clean up configs
* add devtools crate, update cargo imports
* fix serve addr, fix websocket proxy issue
* add comment about opt profiles
* rename hot-reload to devtools
2024-09-17 17:18:23 -07:00
Evan Almloff cab573eefd Synchronous prevent default (#2792)
* add prevent default methods to the event

* sync prevent default almost working

* sync prevent default working

* Move event handling into the runtime

* update core tests

* restore desktop file dialog

* implement prevent default on web

* add a hint about the new prevent default method

* fix web prevent default

* Fix CTRL+click on links

* fix values memorize in place test

* Fix a few more tests

* Add a playwright test for sync prevent default

* Fix core doc tests

* create a deprecated VirtualDom::handle_event

* fix macos imports in desktop

* Fix onmounted event

* Fix liveview support

* switch to RefCell for metadata

* Remove println

* remove prevent default attribute

* remove web specific link behavior

* Fix liveview links

* more liveview fixes for link

* Fix merge conflicts

* Fix clippy

* use the new prevent default in the file upload example
2024-08-13 11:57:54 -07:00
Adam Kundrát 23dfe39bdf desktop app saves window position fix (#2730)
* desktop app saves window position fix

* debug cfg

* cargo fmt
2024-07-29 12:25:34 -07:00
Miles Murgaw bd58a92441 CLI: Toasts & Tweaks (#2702)
* progress: cli toasts

* forgot the html

* progress: toasts

* revision: don't open splash on desktop

* fix: fmt, spellcheck
2024-07-25 14:38:45 -07:00
88af3e7eff Hotreloading of for/if/body, formatted strings, literals, component props, nested rsx, light CLI rewrite, cli TUI (#2258)
Hotreload the contents of for loops, if chains, component bodies, props, attributes, and any literals discovered in rsx!
Add a TUI renderer to the CLI.
Improve the CLI build system to be async and parallel.
Refactor RSX to allow partial expansion of expressions.
Merge autofmt implementations for consistency.
Merge the representation of elements and components under the hood.
Add a diagnostics system for rsx for improved error messages.
Drop interprocess and move to websockets for communication between the CLI and the server.
Assign IDs to nodes and attributes in a stable way to be used in non compiler contexts.
Add hotreloading to any body of component/for loop/if chain/etc.

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Liam Mitchell <liamkarlmitchell@gmail.com>
2024-07-17 19:11:18 -07:00
Andrew Scott 69d7098d0e feat (desktop): upgrade from wry 37 to 41 (#2618) 2024-07-10 12:50:04 -07:00
Andrew Scott bb52280a51 fix (regression): hide desktop window until initial render (#2614) 2024-07-09 12:32:05 -07:00
Evan Almloff 487570d897 Add CI step to test packages with debug assertions off (#2507)
* test packages in release mode

* run release tests in a separate job

* fix release generation box tests
2024-06-12 13:07:52 -07:00
Evan Almloff 79e18c2d62 fix hooks release build 2024-06-10 07:41:15 -05:00
Russell Mull 46b0eeb12c Implement the "Toggle Developer Tools" menu item in desktop (#2198) 2024-04-02 10:53:26 -07:00
Jonathan Kelley 329c323b35 Doc fixes, running examples instructions, change menubar behavior for desktop 2024-03-27 17:57:05 -07:00
Evan Almloff e464294c66 fix hot reload on windows (#2142) 2024-03-26 00:36:11 -07:00
Jonathan Kelley e923c6462c Resume window position/size, watch cargo/dioxus tomls, fix css reverting during hotreloading, allow menubar events to be captured from within dioxus (#2116)
* Fix: css hotreloading being invalidated, watcher not watching cargo/dioxus tomls, add feature to restore window state

* Make clappy hippier

* remove console log

* use simpler css invalidator

* Less flash, remove log on web hotreload

* Fix floating window managed behavior on mac

* clippy...
2024-03-20 09:16:18 -07:00
Jonathan Kelley 4bb807a3ce Reduce churn in window behavior 2024-03-18 22:38:33 -07:00
Evan AlmloffandJonathan Kelley d442dac168 Add a menu bar option to the desktop config (#2107)
* add an option to set a custom menu in the desktop config

* Fix rename issue

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-03-18 22:36:47 -07:00
Jonathan Kelley f9f902732b Fix: update wry, tao, to fix android issues 2024-03-15 20:12:13 -07:00
Jonathan Kelley bb8b4dc2fb FIx:
- asset hotreloading for desktop,
- asset dir for dxserve on desktop,
- extend features with platform
2024-03-13 17:15:49 -07:00
Jonathan Kelley 3d699e7a75 Match on more places for asset reloading 2024-03-13 15:10:44 -07:00
Jonathan Kelley 81f38a0bc5 cfg out globalhotkey 2024-03-06 16:42:45 -08:00
Jonathan Kelley 4b2e426958 clippy, and don't hash invisible files for ts generation 2024-03-05 22:38:38 -08:00
Jonathan Kelley 624e58bd78 native file drop 2024-03-05 14:11:12 -08:00
Jonathan Kelley 78d16536a7 wip: native file handles when dropping 🎉 2024-03-05 13:57:28 -08:00
Jonathan Kelley 403e8e2f49 Clean up file uploads in desktop/liveview, remove minify 2024-03-05 13:00:27 -08:00
Jonathan Kelley 127709f83f Tiny aesthetic tweaks 2024-01-18 10:59:43 -08:00
Jonathan Kelley 94b17cc8ca Fix non tokio builds for desktop 2024-01-18 04:07:28 -08:00
Evan Almloff 25ad3da659 remove some generics from LaunchBuilder 2024-01-17 20:15:16 -06:00
Evan Almloff 499e81fa82 fix fullstack send bound 2024-01-17 15:46:29 -06:00
Evan Almloff dab87c0144 try not double boxing 2024-01-17 15:07:45 -06:00
Jonathan Kelley c94af9538b Remove phantom markers and just default to Rc<dyn Fn(props) -> Element> where it makes sense 2024-01-16 15:07:22 -08:00
Evan Almloff 7e4d2debe0 implement launch builder for the desktop and web platforms 2024-01-16 08:42:16 -06:00
Jonathan Kelley 8beec2f41f fix rendering issue 2024-01-11 17:15:01 -08:00
Jonathan Kelley 8c94f0bc4a get compiling 2024-01-11 16:51:18 -08:00
Evan Almloff e004c1722f set the required environment variable for manganis support 2024-01-10 11:19:51 -06:00
Jonathan Kelley 3aabaa8c8f Commit cargo.lock and allow mobile example to be part of workspace 2024-01-08 15:27:59 -08:00
Jonathan Kelley 6b240e1169 remove unused deps 2024-01-08 13:39:03 -08:00