Commit Graph
40 Commits
Author SHA1 Message Date
79a2f023e7 Add the onvisible event handler to Element (#2911)
* Add the `onvisible` event using the IntersectionObserver

* Add a visible example

This example is based on https://codepen.io/ryanfinni/pen/VwZeGxN

* Remove web-sys CustomEvent feature for html package

* update js bindings and hash

* Use dioxus doc instead of lorem ipsum

* Fix clippy warning

* Add get_target method to the event data

* Make `get_time` return an Instant instead of a f64

* fix merge conflicts, compilinga

* remove target

* small nits

* serialzie as time_ms

* fix timing, works on desktop

* remove latent nits, fix hash

* box size clippy

* fix browserlist cargo.lock

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-12-02 13:51:27 -08:00
Evan AlmloffandJonathan Kelley 281087469a Move the history provider into the context (#3048)
* move history providers into a separate crate

* start moving route providers into the renderers

* clean up intoroutable

* remove into routable

* fix router tests

* Provide history providers in each renderer

* implement nested routers

* move the lens out of the history crate

* re-export dioxus history trait in the prelude

* also re-export the history function

* fix history doctests

* some light cleanups

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-10-31 12:44:04 -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
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
Jonathan Kelley 3d699e7a75 Match on more places for asset reloading 2024-03-13 15:10:44 -07:00
Jonathan Kelley 0bd9692e45 Fix cargo test and a number of little cleanup bugs 2024-01-30 17:33:14 -08:00
Jonathan Kelley 7b0dcb3206 Add flush_sync and pre_render methods to core 2024-01-28 01:30:33 -08:00
Evan Almloff d17a04931b Merge branch 'master' into breaking 2024-01-15 12:01:09 -06:00
Evan Almloff 9a38331826 restore liveview renderer 2024-01-15 11:28:27 -06:00
Jonathan Kelley 9881a94e67 Remove cx in more places 2024-01-13 21:18:36 -08:00
Jonathan Kelley fae0b08e61 Fix the router and stub out a number of crates to get compiling 2024-01-13 20:51:37 -08:00
Evan Almloff fe1b35d610 fix mount event 2024-01-12 17:47:27 -06:00
Evan Almloff 0388a5c1f4 fix formatting 2024-01-04 19:21:06 -06:00
Evan Almloff dccfba12d8 Merge branch 'master' into events-2 2024-01-04 19:02:00 -06:00
Evan Almloff 33f0f0c172 fix clippy 2023-10-20 09:38:10 -05:00
Evan Almloff c9612a085e fix liveview mounted event 2023-10-19 16:40:08 -05:00
Evan Almloff 1a4741ce04 fix liveview events 2023-10-12 10:21:29 -05:00
Evan Almloff f20b740abe switch liveview to sledgehammer 2023-10-09 14:28:12 -05:00
Evan Almloff f7451c02e8 port liveview events 2023-08-31 16:34:04 -05:00
Miles MurgawandEvan Almloff 6210c6fefe Convert use_eval to use send/recv system (#1080)
* progress: reworked

don't run this, it'll kill your web browser

* feat: use_eval but with comms

* revision: async recv & recv_sync

* revision: use_eval

* revision: standard eval interface

* revision: use serde_json::Value instead of JsValue

* revision: docs

* revision: error message

* create: desktop eval (wip)

* fix: desktop eval

* revision: wrap use_eval in Rc<RefCell<_>>

* fix: fmt, clippy

* fix: desktop tests

* revision: change to channel system

- fixes clippy errors
- fixes playwright tests

* fix: tests

* fix: eval example

* fix: fmt

* fix: tests, desktop stuff

* fix: tests

* feat: drop handler

* fix: tests

* fix: rustfmt

* revision: web promise/callback system

* fix: recv error

* revision: IntoFuture, functionation

* fix: ci

* revision: playwright web

* remove: unescessary code

* remove dioxus-html from public examples

* prototype-patch

* fix web eval

* fix: rustfmt

* fix: CI

* make use_eval more efficient

* implement eval for liveview as well

* fix playwright tests

* fix clippy

* more clippy fixes

* fix clippy

* fix stack overflow

* fix desktop mock

* fix clippy

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
2023-07-21 17:36:25 -05:00
Evan Almloff a96ccdc6f3 fix clippy 2023-07-18 13:16:17 -07:00
Evan Almloff 8188011fe3 fix adapters 2023-07-18 13:03:34 -07:00
Evan Almloff ee28c89f5e Change to a stream of bytes for liveview to make using sledgehammer later non-breaking 2023-07-18 12:53:38 -07:00
Evan Almloff 8243dfe00d implement a query engine for liveview 2023-03-23 16:52:29 -05:00
Jonathan Kelley 9ae5f47d19 Allow liveview to spawn pre-injected virtualdoms 2023-03-09 17:01:41 -08:00
Evan Almloff 773a87d701 fix conditional compilation for hot reloading 2023-02-07 08:57:29 -06:00
Evan Almloff b3d119b815 Provide option to do full rebuilds when nessisary 2023-01-13 16:13:07 -06:00
Evan Almloff dc8fcf254b Merge branch 'upstream' into desktop-hot-reload 2023-01-12 10:59:01 -06:00
= 042b67b61b factor out a hot reloading connect function 2023-01-11 16:43:41 -06:00
Evan Almloff e5e1abbdac implement hot reloading for liveview 2023-01-11 14:41:29 -06:00
Evan Almloff 6a8fefdfd8 keep liveview websocket alive 2023-01-10 14:41:26 -06:00
Jonathan Kelley b76c520108 fix: salvo and remove actix from list of webframeworks 2022-12-19 15:29:20 -08:00
Jonathan Kelley aa71c111cd feat: introduce simpler adapters for liveview 2022-12-19 13:11:49 -08:00
Jon Kelley 5ac9b595ea Revert "fix: liveview interpreter using new templates" 2022-12-16 14:20:05 -08:00
Jonathan Kelley b95069619f feat: get liveview working across the boar 2022-12-15 19:57:48 -08:00
Jonathan Kelley 7790d2c065 chore: simplify liveview abstraction 2022-12-15 18:46:59 -08: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