Simplify the launch builder (#2967)
* improve documentation for the fullstack server context * Add a section about axum integration to the crate root docs * make serve_dioxus_application accept the cfg builder directly * remove unused server_fn module * improve fullstack config docs * improve documentation for the server function macro * fix axum router extension link * Fix doc tests * Fix launch builder * Simplify the launch builder * don't re-export launch in the prelude * refactor fullstack launch * Fix fullstack launch builder * Update static generation with the new builder api * fix some formatting/overly broad launch replacements * fix custom menu example * fix fullstack/static generation examples * Fix static generation launch * A few small formatting fixes * Fix a few doc tests * implement LaunchConfig for serve configs * fix fullstack launch with separate web and server launch methods * fix check with all features * dont expose inner core module * clippy and check * fix readme --------- Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
This commit is contained in:
1 parent
2d7bef44e8
commit
20d146d9bd
126 files changed
+618
-989
No files matched your search
@@ -1,3 +1,4 @@
|
||||
use dioxus_core::LaunchConfig;
|
||||
use std::borrow::Cow;
|
||||
use std::path::PathBuf;
|
||||
use tao::window::{Icon, WindowBuilder};
|
||||
@@ -51,6 +52,8 @@ pub struct Config {
|
||||
pub(crate) last_window_close_behavior: WindowCloseBehaviour,
|
||||
}
|
||||
|
||||
impl LaunchConfig for Config {}
|
||||
|
||||
pub(crate) type WryProtocol = (
|
||||
String,
|
||||
Box<dyn Fn(HttpRequest<Vec<u8>>) -> HttpResponse<Cow<'static, [u8]>> + 'static>,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
pub use crate::Config;
|
||||
use crate::Config;
|
||||
use crate::{
|
||||
app::App,
|
||||
ipc::{IpcMethod, UserWindowEvent},
|
||||
@@ -82,8 +82,8 @@ pub fn launch_virtual_dom(virtual_dom: VirtualDom, desktop_config: Config) -> !
|
||||
/// Launches the WebView and runs the event loop, with configuration and root props.
|
||||
pub fn launch(
|
||||
root: fn() -> Element,
|
||||
contexts: Vec<Box<dyn Fn() -> Box<dyn Any>>>,
|
||||
platform_config: Config,
|
||||
contexts: Vec<Box<dyn Fn() -> Box<dyn Any> + Send + Sync>>,
|
||||
platform_config: Vec<Box<dyn Any>>,
|
||||
) -> ! {
|
||||
let mut virtual_dom = VirtualDom::new(root);
|
||||
|
||||
@@ -91,5 +91,10 @@ pub fn launch(
|
||||
virtual_dom.insert_any_root_context(context());
|
||||
}
|
||||
|
||||
let platform_config = *platform_config
|
||||
.into_iter()
|
||||
.find_map(|cfg| cfg.downcast::<Config>().ok())
|
||||
.unwrap_or_default();
|
||||
|
||||
launch_virtual_dom(virtual_dom, platform_config)
|
||||
}
|
||||
@@ -35,11 +35,11 @@ fn main() {
|
||||
}
|
||||
|
||||
fn app() -> Element {
|
||||
rsx!{
|
||||
rsx! {
|
||||
div {
|
||||
"hello world!"
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in new issue
Block a user