* remove pr-flow, run all the tests when asked
* make tests that were never run pass
* run tests cargo make properly
* use wasm-pack-base test for running wasm tests
* cargo make config should be good
* update CI
* Separate hydration and render queue.
* Revert "Fix issue with node refs and hydration (#2597)"
This reverts commit 469cc341c340bd0093d9233847f523b66a18fd90.
* Priority Render.
* Add some tests.
* Add more tests.
* Add test result after click.
* Fix test comment.
* Fix test timing.
* Restore test.
* Once AtomicBool, now a Cell.
* Prefer use_future.
* Revealing of Suspense always happen after the component has re-rendered itself.
* Shifting should register correct next_sibling.
* Revert to HashMap.
* cargo +nightly fmt.
* Fix comment.
* Optimise Code size?
* Add comment if assertion fails.
* Revert "Merge branch 'hydration-4' into fc-prepared-state"
This reverts commit 427b087d4db6b2e497ad618273655bd18ba9bd01, reversing
changes made to 109fcfaa127aefc5fa3c697e254fe2c049292be2.
* Revert "Revert "Merge branch 'hydration-4' into fc-prepared-state""
This reverts commit f1e408958d94cb13813ce75aa6f0aad06c9fa3e8.
* Redo #2957.
* Add `VTag::into_children`
Currently, VTag supports `children` and `children_mut`, but not `into_children` to complete the pattern. This is useful if someone wishes to destructively acquire the children of a VTag to reparent them to a different VTag.
* Repair broken doc comment on `VTag::children_mut`
* Remove spaces between functions
* Read through the docs and correct spelling and grammar
* Run prettier
* Apply review suggestions
Co-authored-by: Muhammad Hamza <muhammadhamza1311@gmail.com>
* adjust translation messages
Co-authored-by: Muhammad Hamza <muhammadhamza1311@gmail.com>
when we not explicitly portaling into the shadow, we
should bubble up to the host element and continue.
This fixes custom elements internally using open SD
* improve js_callback example
it now loads two modules:
1. imp.js
2. unimp.js
imp.js is loaded at page load whereas unimp.js is loaded when requested. A fallback is displayed during loading using Suspense
* Hash is not hardcoded anymore
* pre_build hook to build the post build hook binary
* fmt
* add .gitignore for trunk_post_build executable
* move js imports to bindings module, upadte README
* Make Function Component to Implement BaseComponent.
* Remove IntoComponent.
* Inline some methods.
* Move some logic out of proc macro.
* Move position of the self generics.
* Discourage direct implementation `FunctionComponent` & `#[doc(hidden)]`.
* Add `use_suspending_future` hook to make consuming futures as suspense easier
* Add test
* fmt
* use_suspending_future -> use_future
* use_future takes a closure
* code size: doc and use additional nightly features
* add ci paths to run condition
* undo unrelated edit to benchmark workflow
* Add links to nightly feature docs
* Fix issue with node refs and hydration
When a component is contained in a component, the
inner reconciles, which used to replace the NodeRef,
which left a badly linked one in the outer Hydration render state.
Now, keep a stable internal_ref besides the user-passed node_ref.
The internal_ref never gets replaced as long as the BComp lives.
* Use AttrValue instead of &'static str in Attributes::IndexMap
* avoid monomorphization to reduce binary size
* fmt & `#[inline(always)]`s
* more attempts to reduce the code size
* make clippy happy
* simple counter application with functional components
* clean up some comments
* use the word 'function' instead of 'functional'
Co-authored-by: Muhammad Hamza <muhammadhamza1311@gmail.com>
* add the counter functional example package to workspace root cargo toml
* add data-trunk link tag in index html
* include counter functional into the examples readme file
Co-authored-by: Muhammad Hamza <muhammadhamza1311@gmail.com>
* Docs overhaul part2
* fix links and require them for CI
* remove translations for 0.17
* remove a bunch of unused documentation
* run prettier
* fixup links and locations of some translations
* add prettier
* ci
* run prettier
* run prettier in CI
* run prettier --write
* ignore README.md
* specify googleAnalytics
* fmt
* npm run write-translations
* fmt
* ignore i18n json files
they're autogenerated and don't like being formatted
* post merge fixes & some updates
* post merge fixes
I was originally going to put a PR to fix "has not side-effects", but I also re-read this sentence and realized it could be interpreted as saying a pure function returns its parameters, not a deterministic value based on its parameters.
* implement event handling with multiple subtree roots
* add listeners to all subtree roots
* move host element to Registry
* add BSubtree argument
* surface level internal API for BSubtree
* cache invalidation & document limitations
* Update portal documentation
* Add test case for hierarchical event bubbling
* add shadow dom test case
* add button to portals/shadow dom example
* change ShadowRootMode in example to open
BSubtree controls the element where listeners are registered.
we have create_root and create_ssr
Async event dispatching is surprisingly complicated.
Make sure to see #2510 for details, comments and discussion
takes care of catching original events in shadow doms
* Bring changes to this branch.
* Child components always render after parents.
* Cleanup residual Portal references.
* Fix after merge.
* Fix trybuild.
* Opt for usize.
* Strip Generics.
* take instead of replace, first instead of front.