* Allow hooks in the expression of a match statement and if statement
* Don't allow hooks in spawn and detect hooks in initialization closures
* Point to DX check when hooks are called conditionally
* Use of async_std::task::sleep instead of tokio::time::sleep
* Make the clock example run on wasm
* Add control_focus and eval examples to Cargo.toml
* Use web-time on desktop; It just falls back to std on non-wasm platforms
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
* Fix hot reloading components with keys
* include component formatted segment keys, but not dynamic component value
* Fix component_literal_dyn_idx index
* add a new test for hot reloading components with keys
* Even more tests
* make clippy happy
* fix typo
* nix: Avoid Linux only packages on macOS
* nix: Update flake inputs to get new compiler
In particular, updating nixpkgs & rust-overlay gets us Rust 1.80.1
* Fix partialeq for coroutine
* add a comment about manual implementation of traits for coroutine
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
* Expose a generic lazy type
* Switch to generic lazy globals
* simplify global lazy context a bit
* rename LazyGlobal to Global
* use Memo::global in more examples
* Fix soundness issue with deref_impl. It relies on the size of self, so it cannot be safe
* add a comment about safety
* Make clippy happy
* fix formatting
* Restore changes to signal impl
* Add helper methods for global signal and global memo to make getting the inner value easier
* Add the capability to handle resize event for web target
* Add the capability to handle resize event for desktop target
* Return all the sizes, not just the first one
* Fix conversion from platform to generic ResizedData for liveview
* Update the generated interpreter js code base
* Fix clippy warnings
* Fix inconsistent use of block_size and inline_size
* Rename `onresized` event to `onresize`
* Remove the the special-casing logic from the binding logic
* Propagating the resize events using CustomEvent
* Fix case convention in core ts
* revert changes to unified bindings
* Cleanup as suggested
* add a resize example
* Fix desktop resize events
* remove tracing from resize example
* use the raw resize entry so we can downcast on web
* remove unused ResizeEventDetail
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
* Fix hot reloading component properties out of order
* ignore signal write warnings in hot reloading
* Fix hot reloading components with only some literal properties
* Add a test for hot reloading component properties
* got a repro, but no solution :(
* hmmmmm 🤔
* awyayayayayayya
* omg it's because we dont create in rev
* Make nodes rev
* fix tests compile
* Clean up PR
* revert changes to native
* Clean up PR, add test
* remove clone mounted; mounted nodes should never leak into components?
* Remove the mount from vnodes after unmounting them
* Fix use after removal in iterator diffing
* remove logs
* Re-fix keyed list diffing
* Use new.len for diffing keyed lens and remove redundant check
* simplify core list diffing logic a bit
* remove println
* add proper asserts for new tests
---------
Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
* 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
* Fix nested rsx expansion by not using template titles
* fix writers with nameless templates
* fix clippy
* dont commit vscode fix
* fix release mode, pull out __template_name
* fix axum_desktop
* Fix core tests
* Make most fields of HotReloadedTemplate public for testing
* wip: formatting, compare all diff cases
* slightly smarter diffing for dynamic nodes
* add a comment about generic node diffing
* clean up mutations a bit
* fix load template
* simplify maybe_rebuild
* Restore write mutations flag in web
* write_mutations -> skip_mutations
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>