103 Commits

Author SHA1 Message Date
Tim Kurdov
a2786b1e14
Improve Context API docs (#3409)
* improved context API docs, added example of struct component context producer

* forgot to commit that oops
2023-09-23 14:56:06 +02:00
Pouriya
2cbe6cee8a
feat: support arrays for Classes/classes!() (#3393)
* feat: support arrays for Classes/classes!()

* style: update
2023-09-23 21:38:59 +09:00
Muhammad Hamza
05fc4cc819
Suspense example with struct component (#3375)
* Add example for struct component context consumer

* Replace untested docs example with one from examples dir

Fixes #3351
2023-08-14 21:09:38 +09:00
Kaede Hoshikawa
d803df9336
Update documentation around Children (#3297)
* Update Children to use Html.

* Fix website.

* Update website/docs/advanced-topics/children.mdx

* add further reading section

---------

Co-authored-by: Muhammad Hamza <muhammadhamza1311@gmail.com>
2023-08-05 18:33:23 +05:00
Kaede Hoshikawa
71b0f206a1
Allow any type to be used as Children (take 2) (#3289)
* Partially copy useful implementation.

* Adjust conversion.

* Temporary fix iterator.

* Add ToString implementation.

* Add Renderable trait.

* Make Macro tests pass.

* Add tests for render_prop as Children.

* Update benchmark and Children used in yew packages.

* Selective suppress lints.

* Rollback unintentional rollback.

* Fix rustfmt.

* Remove unneeded implementation.

* Update Comment.

* Rollback more changes.

* Rollback more changes.

* Fix website.

* Fix documentation tests.

* Add prelude.

* Fix test.

* Blanket Implementation for &'_ T for Renderable types.

* Implement Renderable for &str.

* Update signature.

* Update children to Html in examples.

* Remove unnecessary dereferencing.

* Rollback nested_list example.

* Fix comment.

* Convert to Pattern Matching.

* Add tracing issue.

* Rename Renderable to ToHtml.

* Move ToHtml to yew::html.

* Convert more to match pattern.
2023-06-11 15:33:39 +05:00
Valentin Golev
b9990e8410
An experiment macro to automatically derive Properties structs from args for Yew components. (#3275)
* Update properties.mdx

* Update awesome.md

* prettier'
2023-06-01 23:30:39 +09:00
Arniu Tseng
6f4cdf2802
Pass hook dependencies as the first function argument (#2861)
* Add use_effect_with

* Fix doc

* Add NeverEq

* Save as deps-and-runner

* remove with_deps

* fix other use_effect_with_deps

* add migration guide

* fix website

* fix doc test

* return use_effect_base

* fix docs

* fmt

* fix doc tests

* noeq

* use_callback

* finsihing touches

* fmt

* nighly fmt

* fix mistake

---------

Co-authored-by: Julius Lungys <32368314+voidpumpkin@users.noreply.github.com>
2023-04-03 19:15:11 +03:00
Pavlo Myroniuk
c5324aff62
Fix div prop name in css.mdx (#3185)
* Fix div prop name in css.mdx
* Fix div prop name in yew/website/docs/concepts/basic-web-technologies/css.mdx

`styles` is a not existing property in the `div` component. Changed it to `style`
2023-03-28 19:41:14 +09:00
Johannes Sjölund
9556266061
Improve grammar in website/docs (#3092)
* Improve grammar in website/docs

* Futuresolo's changes to website/docs
2023-02-01 22:21:31 +05:00
finga
30a05fcf07
docs: Fix router documentation (#3078)
Fix passing the route instead of borrowing it as it results in an
error.

Co-authored-by: finga <finga@onders.org>
2023-01-09 22:41:33 +09:00
Michael Jones
16df0150a9
Fix typo in wasm-bindgen doc page (#2963) 2022-12-20 22:41:58 +09:00
Sasa Cocic-Banjanac
ad4c3fc298
Mention certain components must be children of Router (#2913)
* Mention certain components must be children of Router

* make suggested changes

* fix typos

* update documentation with suggested changes again

* change /> to > in comment

* add ticks to Link & Switch in concepts/router.mdx
2022-12-10 18:01:43 +05:00
David M. Golembiowski
1f49353361
Proposed Documentation Improvements (#2883)
* Proposed Documentation Improvements

#### Retrieved from https://yew.rs/docs/concepts/wasm-bindgen#jsvalue on 9/24/2022
`JsCast` is nicely structured so far, although I thought this section was worded strangely.
> The `dyn_into` method will consume `self`, as per convention for into methods in Rust, __and the type returned is `Result<T, Self>` this means if the casting fails then the value in `Err` is so you can try again or do something else with the original type.__

I believe this edit conveys the original idea, but makes more sense to the reader:

> The
[`dyn_into`](https://rustwasm.github.io/wasm-bindgen/api/wasm_bindgen/trait.JsCast.html#method.dyn_into)
method will consume `self`, as per convention for into methods in Rust, and the type returned is
`Result<T, Self>`. This means if the casting fails then the `Self` value in `Err` is preserved. You could try again
or do something else with the original type.

* Update website/versioned_docs/version-0.19.0/concepts/wasm-bindgen/introduction.mdx

Co-authored-by: Kaede Hoshikawa <futursolo@users.noreply.github.com>

* update latest docs

Co-authored-by: Muhammad Hamza <muhammadhamza1311@gmail.com>
Co-authored-by: Kaede Hoshikawa <futursolo@users.noreply.github.com>
2022-11-06 18:42:46 +05:00
Allan
f8fc8859ee
Fix onsubmit event type in docs (#2926) 2022-10-18 21:27:07 +02:00
Muhammad Hamza
426a1fd81d
Evaluate props in the order they're defined (#2887)
* don't change order of props

* rename `SortedPropList` to `PropList`

* docs + test

* remove dead code

* fmt
2022-10-08 10:40:55 +02:00
WorldSEnder
0ecee11a2f
Fix portal shifting on reconciliation too often (#2891)
* fix portal shifting on reconciliation too often

the public vdom api changes to only allow directly
setting a Node as sibling (still optional) instead of a NodeRef.
This was the intention all along, since the NodeRef was
not dynamically tracked, and creating a portal into a subtree
already controlled by yew is not supported anway.

* fix feature soundness

* fix doc tests
2022-09-28 09:32:19 +03:00
Muhammad Hamza
6c91afa13e
Document how to specify attributes and properties (#2888) 2022-09-27 00:03:05 +09:00
Muhammad Hamza
a9a7a39d71
Document anti-pattern regarding props (#2817)
* Document anti-pattern regarding props

* fmt

* Review

* Update website/docs/concepts/function-components/properties.mdx

* make prettier happy

Co-authored-by: WorldSEnder <WorldSEnder@users.noreply.github.com>
2022-08-07 23:16:13 +02:00
Udasi Tharani
acecfabce7
[Docs] String Literals Behavior (#2734)
* add note for string literals in docs

* Apply suggestion from review

Co-authored-by: Muhammad Hamza <muhammadhamza1311@gmail.com>
2022-06-19 16:51:56 +00:00
WorldSEnder
74c1a709a8
Update a bunch of outdated links (#2723)
* update a bunch of outdated links

* run prettier

* bump deps

* update translations

* change missed translation links
2022-06-13 14:18:08 +02:00
Douglas Sousa
151a6c6481
Update docs attrvalue (#2725)
* update: Promote use of AttrValue instead of String or Rc<String>

* update: Also mention AttrValue in the elements' page

* format: ran fmt:write to correct formatting issue

* fix: refactor doc comments to conform to compiling rules
2022-06-13 13:50:53 +02:00
Maximilian von Hohenbühel
4d6329a755
Update introduction.mdx (#2730)
* Update introduction.mdx

The `if else` example was syntactically correct, but had a semantic issue of not using the condition variable. Could lead to confusion if you are a newbie.

* Update conditional-rendering.mdx

changed if condition variable in html docs
2022-06-12 23:13:47 +09:00
Mark Wainwright
9d00e0ede7
Added notes to the documentation about SVG tag casing (#2703)
* Note about tag casing and fixed example

* Added notes about tag casing

* Removed broken part of SVG example

* Slight change to SVG example

* removed some newlines

* Update website/docs/concepts/html/introduction.mdx

Co-authored-by: WorldSEnder <WorldSEnder@users.noreply.github.com>

Co-authored-by: WorldSEnder <WorldSEnder@users.noreply.github.com>
2022-05-25 15:52:34 +05:00
WorldSEnder
88e4673264
Document event delegation (#2668) 2022-05-07 21:19:32 +05:00
Kaede Hoshikawa
00b94d0051
Make Switch to accept a closure as render function directly (#2659)
* RenderFn can be be directly Fn() now.

* Switch switch to function component.

* Make Link a function component.

* Remove non-exhaustive.

* Add migration guide.

* Update Website Docs.

* Fix CI.

* Pushing to Navigator no longer requires an owned instance.

* Fix CI.

* Fix code size.

* Further optimisation.
2022-05-06 09:56:49 +09:00
Muhammad Hamza
12c9ebb0ea
Move hook API docs to Rustdoc (#2628)
* Move hook API docs to Rustdoc

* npm update, fix links and doc tests and callback docs

* make doc tests pass

* Update packages/yew/src/functional/hooks/use_ref.rs

* Update packages/yew/src/functional/hooks/use_ref.rs

* Update use_ref.rs
2022-04-21 15:28:09 +05:00
WorldSEnder
cd5b8a520c
Improve grammar and paragraph structure in documentation (#2620)
* 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>
2022-04-20 16:41:42 +05:00
Jet Li
58db53a026
Allow to consume deps in use_callback (#2617) 2022-04-16 01:43:13 +05:00
WorldSEnder
dc60d6099e
Fix links and add CI checks in documentation (#2595)
* 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
2022-04-10 21:01:18 +00:00
WorldSEnder
6992a454e3
Introduce a dedicated use_force_update hook (#2586)
* introduce a dedicated use_force_update hook

* fix doc links
2022-04-09 16:54:39 +05:00
Muhammad Hamza
3ad4dbe837
Format website with prettier (#2536)
* 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
2022-04-06 22:52:15 +05:00
Kai Jellinghaus
ec1f43aa24
Fix typo(s) in use_callback docs (#2580)
* Fix typo in use-callback.mdx

* Fix the same typo in two more places 🤔

* Fix rest of typos
2022-04-06 16:48:51 +02:00
Muhammad Hamza
4bc61b8da9
Update context docs (#2570)
* update context docs

* fix doc test
2022-04-03 12:52:20 +05:00
Jet Li
421b4e1f60
Add use_callback hook (#2566)
* Add use_callback hook

* Simply use_callback
2022-04-01 13:10:27 +03:00
Kyle Smith
e1f89a8352
Update wording on pure function definition. (#2556)
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.
2022-03-28 00:29:33 +05:00
WorldSEnder
ee6a67e3ea
Scoped event handlers (#2510)
* 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
2022-03-25 17:09:15 +01:00
Julius Lungys
70c9a71ff3
update HTML concept to use function components (#2511)
* update HTML concept to use function components

* adress comments 1

* fix test

* adress comments 2

* code outside of html
2022-03-20 13:22:55 +02:00
Julius Lungys
5ececa4644
update nested router docs (#2535)
* update nested router docs

* !!!

* fix according to comments

* fix error
2022-03-20 12:12:13 +02:00
Julius Lungys
b9bd18f3f4
add struct component context consumpion doc (#2533)
* add structs example

* Update website/docs/concepts/contexts.mdx

Co-authored-by: Muhammad Hamza <muhammadhamza1311@gmail.com>
2022-03-20 11:49:29 +02:00
Sebastian Klähn
7f0bfde849
Update use-effect.mdx (#2463)
* Update use-effect.mdx

* Update website/docs/concepts/function-components/hooks/use-effect.mdx

Co-authored-by: Julius Lungys <32368314+voidpumpkin@users.noreply.github.com>
2022-03-19 22:38:41 +05:00
Jet Li
6e425ff38b
Fix broken links in hooks doc (#2504) 2022-03-08 13:54:05 +02:00
Peter Kolloch
3a11f15ec5
[events.mdx] relative link to use_deps_with_effects fixed (#2491)
Co-authored-by: Peter Kolloch <peter.kolloch@nexxiot.com>
2022-03-05 01:06:17 +01:00
Peter Kolloch
451227fe5c
[Events] Cross references to use_effect_with_deps (#2486)
Figuring out how to use manual event listening with Function Components
took me a while. The new docs already contain a great example!

I add a small cross reference here to make it more discoverable.

Co-authored-by: Peter Kolloch <peter.kolloch@nexxiot.com>
2022-03-03 16:40:01 +01:00
Jabez Borja
4f65b3961f
docs: fix typo (#2450) 2022-02-11 09:32:57 +01:00
Julius Lungys
636692507e
Convert components concept docs from SC to FC (#2434)
* Convert components concept docs from SC to FC
- moved struct components to advanced topics
- added docs about HOC for Suspense and Context
- added a ease-in topic before components that introduces
HTML/CSS/JS in yew
- edit components concept to use function components

* translations

* fix todo links

* fix tests

* spelling bee
2022-02-07 11:03:12 +02:00
Kaede Hoshikawa
485a1b8c4a
Function Components & Hooks V2 (#2401)
* Make a use_hook hook with the new Hook trait.

* Implement Lifetime.

* Rewrites function signature.

* Only apply lifetime if there're other lifetimes.

* Cleanup signature rewrite logic.

* Rewrite hook body.

* Port some built-in hooks.

* Finish porting all built-in hooks.

* Port tests.

* Fix tests.

* Migrate to macro-based hooks.

* Fix HookContext, add tests on non-possible locations.

* Fix stderr for trybuild.

* Add 1 more test case.

* Adjust doc location.

* Pretty print hook signature.

* Fix Items & std::ops::Fn*.

* Add use_memo.

* Optimise Implementation of hooks.

* Use Box to capture function value only.

* Detect whether needs boxing.

* Add args if boxing not needed.

* Enforce hook number.

* Deduplicate use_effect.

* Optimise Implementation.

* Update documentation.

* Fix website test. Strip BoxedHook implementation from it.

* Allow doc string.

* Workaround doc tests.

* Optimise codebase & documentation.

* Fix website test.

* Reduce implementation complexity.

* Destructor is no more.

* Documentation and macros.

* Reduce heap allocation and hook complexity.

* Remove Queue as well.

* Prefer Generics.

* Fix typo.

* Remove more allocations.

* Add comments.

* Remove outdated comment.

* Bare Function Pointer for better code size.
2022-01-28 11:51:37 +02:00
Teymour Aldridge
c7599c54d8
Tidy up the documentation. (#2404)
- fix a number of typos/grammatical errors
- also includes some stylistic changes
2022-01-25 23:14:36 +02:00
Matt
6669d1873e
Optimize CI caching and path filtering (#2340)
* fix docs.rs logo url

* fix formatting

* bump docusaurus to beta14

* bring back the semicolon

* cache npm for build-website workflow

* Add prebuilt cargo-sweep binary

* Optimize website CI

* per-job caching, stale cache invalidation

* extract fmt job as workflow
move website test as a prerequisite for publish

* fix typo in cargo-sweep executable path

* chmod +x

* rename to main-checks.yml

* --exclude has to be used with --workspace

* revert accidental revert

* Switch from cargo-sweep to rust-cache

* link to this related issue of extra brackets

* remove blanks

* exclude website-test in main tests

* rename suffixes from .mdx to .md

* replace actions-rs/install with wasm-pack-action

fixes #2351

* shouldn't ignore .md because website snippet tests depends on .md files and there can be
#[doc(include("../some.md"))] in the code

* restore accidentally deleted mdx files

* include tools/website-test (for real this time)
2022-01-18 10:49:11 +01:00
Kaede Hoshikawa
d8c2550fc7
Server-side Rendering (without hydration) (#2335)
* Basic render to html implementation.

* Remove HtmlWriter.

* Escape html content.

* Add non-suspense tests.

* Add Suspense tests.

* Gated "ssr" feature.

* Add example.

* Fix tests.

* Fix docs.

* Fix heading size.

* Remove the unused YewRenderer.

* Remove extra comment.

* unify naming.

* Update docs.

* Update docs.

* Update docs.

* Isolate spawn_local.

* Add doc flags.

* Add ssr feature to docs.

* Move ServerRenderer into their own file.

* Fix docs.

* Update features and docs.

* Fix example.

* Adjust comment position.

* Fix effects being wrongly called when a component is suspended.

* Fix clippy.

* Uuid & no double boxing.

Co-authored-by: Muhammad Hamza <muhammadhamza1311@gmail.com>
2022-01-12 18:43:09 +05:00
Jonathan Bailey
923f6434df
Support named wildcards when deriving Routable. (#2345) 2022-01-12 18:27:14 +05:00