* Add openidconnect authentication demo
* use_atom_ref usage to have a read/write handle on the atom
* Use default
* Code rewrite to better reflect the authentication flow
* Use the env macro instead of the build.rs to load env variables
* Add env variables
* Remove unnecessary dependency
* Add env variables to the root workspace
* Update readme
* Bump openidconnect version
* Use props to pass the client to the child components
* Code clean up
---------
Co-authored-by: Truong Tan Dat <truongt@igbmc.fr>
* Add `#[component]` attribute + system for creating component attributes + other stuff
* Delete inlineprops.rs
* Update inline_props.rs
* Cargo fmt
* Fix clippy warnings and paths in props/mods.rs
* Include where clause in `#[inline_props]` output
* Allow Clippy type complexity in `LinkProps`
* Allow the type complexity lint for the entire link.rs file
* Remove snake_case -> PascalCase converter, but rather enforce PascalCase
Also:
- Put the second function inside the main one instead of besides it.
- Simplify
* Simplify type check lints so they don't return false positives
They will not always work, but they won't return any false positives, like for aliases. This is likely going to be replaced by a more polished Clippy-backed linting system.
* Fix#583
* Cargo fmt
* Add docs for `deserialize()` and remove useless comment
* Add `#[component]` to prelude
* Merge branch 'master' of https://github.com/tigerros/dioxus
* #[inline_props] is no more. Except in the docs folder, but that's going to be removed
* Remove docs folder
* Remove docs from workspace
* Resolve `DeserializerOutput` conversation
* fix a few new clippy lints
* Add query segment example
* Add trait documentation
* Change core package to root package
The core package contains the virtual dom implementation ([here](https://github.com/DioxusLabs/dioxus/tree/master/packages/core)). Root package might be a more clear way to refer to the main directory
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
This commit adds subtree memoization to Dioxus.
Subtree memoization is basically a compile-time step that drastically
reduces the amount of work the diffing engine needs to do at runtime by
extracting non-changing nodes out into a static "template." Templates
are then understood by the various renderers in the ecosystem as a
faster way of rendering the same items.
For example, in the web, templates are simply a set of DOM Nodes created
once and then cloned later. This is the same pattern frameworks like Lithtml
and SolidJS use to achieve near-perfect performance.
Subtree memoization adds an additional level of complexity to Dioxus. The RSX
macro needs to be much smarter to identify changing/nonchanging nodes and
generate a mapping between the Template and its runtime counterparts.
This commit represents a working starter point for this work, adding support
for templates for the web, desktop, liveview, ssr, and native-core renderers.
In the future we will try to shrink code generation, generally improve
performance, and simplify our implementation.
* feat: use synchronous router design
* feat: function to get router out of dom
* chore: restructure workspace to use renderers as packages, not features
* Move getting started to Guide
* Clean up summary and getting started
* Shorten intro by moving stuff to individual platform docs
* Make intro even shorter, summarize features
* Further cleanup; move development-related docs to separate section
* Make `guide` a crate. Turn code samples into examples so that we can check if they compile
* Rewrite "Describing the UI":
* Focus on RSX syntax (interactivity covered in later chapters); make sure samples are tested; concise language
* Move some "special attribute" samples to the `examples` directory
* Simplify introduction to components
* Simplify introduction to component props
* Document Prop features; add code samples
* Simplify component children docs
* Interactivity: better introduction to events
* Hooks: better introduction
* Remove outdated doc
* Introducs use_ref
* Simplify User Input chapter
* Document event handler props
* Meme editor example
* Meme editor walkthrough
* Add dark mode example
* Guide for context; dark mode example
* Guide: custom hooks
* Guide: conditional rendering
* Guide: rendering lists
* Guide: rendering lists + keys
* Move remaining infor from Reference to guide
* Delete reference book