* feat(fullstack): add `render_handler_with_state`
When using server functions, the current pattern to access state such as
database connections is to use `register_server_fns_with_handler` on an
Axum router and 'inject' the state into the context provided to the
server function. However, this only affects function calls which go via
the Axum router; SSR renders bypass this, and therefore don't have
access to any state.
This commit adds an alternative `render_handler` which accepts some
additional state. That state is injected into the context in a
similar manner to `register_server_fns_with_handler`. SSR renders can
then proceed to run in the same way as HTTP calls.
* Change state object to 'inject_state' callback
Also add a compiling doctest example.
* remove the explicit for<'a> lifetime
* remove unused assets_path from render_handler_with_context example
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
* fix false notification/rebuild for dx hot-reload
* Make sure we have permissions and the changed file exists before reading the metadata
---------
Co-authored-by: ealmloff <evanalmloff@gmail.com>
* Related to #1547: use `dioxus-cli` within a workspace
Although the `dx` CLI allows to specify a package name to chose from workspace members,
it does not support workspace members specified as glob-wildcards.
Neither it respects the effective package name, specified in the crate's `Cargo.toml`.
This PR addresses that issue:
- upon `dx build ...`, if the `--bin` CLI-argument is provided, treat the current dir as a workspace;
- search through the workspace's `members`: resolve each of them with `glob`;
- assume that any workspace member has a `Cargo.toml` in it (cargo does it, so it's okay);
- read said manifest, and check the package name in it;
- if found — there we have our sought package.
* Use cargo-metadata to find out the workspace structure
* glob is unused
Adds the ability to specify an indent string to public autofmt methods - either
a sequence of spaces or a tab character.
Get the indentation style and size from rustfmt for dx fmt, or from the editor
settings for the vscode extension.
Closes#1595