Fix dioxus-native to run without the net feature (#4899)
* Fix dioxus-native to run without the net feature * Fix local assets to be available without net features * fix: compile out the inner_net_provider field entirely * feat: make dioxus-native run without html feature
This commit is contained in:
1 parent
2ab9a5586d
commit
c2d540e64d
2 files changed
+12
-11
No files matched your search
@@ -8,6 +8,7 @@ use winit::event_loop::EventLoopProxy;
|
|||||||
|
|
||||||
pub struct DioxusNativeNetProvider {
|
pub struct DioxusNativeNetProvider {
|
||||||
callback: Arc<dyn NetCallback<Resource> + 'static>,
|
callback: Arc<dyn NetCallback<Resource> + 'static>,
|
||||||
|
#[cfg(feature = "net")]
|
||||||
inner_net_provider: Arc<dyn NetProvider<Resource> + 'static>,
|
inner_net_provider: Arc<dyn NetProvider<Resource> + 'static>,
|
||||||
}
|
}
|
||||||
impl DioxusNativeNetProvider {
|
impl DioxusNativeNetProvider {
|
||||||
@@ -17,9 +18,13 @@ impl DioxusNativeNetProvider {
|
|||||||
|
|
||||||
pub fn new(proxy: EventLoopProxy<BlitzShellEvent>) -> Self {
|
pub fn new(proxy: EventLoopProxy<BlitzShellEvent>) -> Self {
|
||||||
let net_callback = BlitzShellNetCallback::shared(proxy);
|
let net_callback = BlitzShellNetCallback::shared(proxy);
|
||||||
|
|
||||||
|
#[cfg(feature = "net")]
|
||||||
let net_provider = blitz_net::Provider::shared(net_callback.clone());
|
let net_provider = blitz_net::Provider::shared(net_callback.clone());
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
callback: net_callback,
|
callback: net_callback,
|
||||||
|
#[cfg(feature = "net")]
|
||||||
inner_net_provider: net_provider,
|
inner_net_provider: net_provider,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -36,16 +41,20 @@ impl NetProvider<Resource> for DioxusNativeNetProvider {
|
|||||||
match dioxus_asset_resolver::native::serve_asset(request.url.path()) {
|
match dioxus_asset_resolver::native::serve_asset(request.url.path()) {
|
||||||
Ok(res) => {
|
Ok(res) => {
|
||||||
#[cfg(feature = "tracing")]
|
#[cfg(feature = "tracing")]
|
||||||
tracing::trace!("fetching asset from file system success {request:#?}");
|
tracing::trace!("fetching asset from file system success {request:#?}");
|
||||||
handler.bytes(doc_id, res.into_body().into(), self.callback.clone())
|
handler.bytes(doc_id, res.into_body().into(), self.callback.clone())
|
||||||
}
|
}
|
||||||
Err(_) => {
|
Err(_) => {
|
||||||
#[cfg(feature = "tracing")]
|
#[cfg(feature = "tracing")]
|
||||||
tracing::warn!("fetching asset from file system error {request:#?}");
|
tracing::warn!("fetching asset from file system error {request:#?}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
#[cfg(feature = "net")]
|
||||||
self.inner_net_provider.fetch(doc_id, request, handler);
|
self.inner_net_provider.fetch(doc_id, request, handler);
|
||||||
|
|
||||||
|
#[cfg(all(not(feature = "net"), feature = "tracing"))]
|
||||||
|
tracing::warn!("net feature not enabled, cannot fetch {request:#?}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -27,7 +27,6 @@ use blitz_shell::{create_default_event_loop, BlitzShellEvent, Config, WindowConf
|
|||||||
use dioxus_core::{ComponentFunction, Element, VirtualDom};
|
use dioxus_core::{ComponentFunction, Element, VirtualDom};
|
||||||
use link_handler::DioxusNativeNavigationProvider;
|
use link_handler::DioxusNativeNavigationProvider;
|
||||||
use std::any::Any;
|
use std::any::Any;
|
||||||
#[cfg(feature = "html")]
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use winit::window::WindowAttributes;
|
use winit::window::WindowAttributes;
|
||||||
|
|
||||||
@@ -117,14 +116,7 @@ pub fn launch_cfg_with_props<P: Clone + 'static, M: 'static>(
|
|||||||
vdom.insert_any_root_context(context());
|
vdom.insert_any_root_context(context());
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "net")]
|
let net_provider = Some(DioxusNativeNetProvider::shared(event_loop.create_proxy()));
|
||||||
let net_provider = {
|
|
||||||
let proxy = event_loop.create_proxy();
|
|
||||||
let net_provider = DioxusNativeNetProvider::shared(proxy);
|
|
||||||
Some(net_provider)
|
|
||||||
};
|
|
||||||
#[cfg(not(feature = "net"))]
|
|
||||||
let net_provider = None;
|
|
||||||
|
|
||||||
#[cfg(feature = "html")]
|
#[cfg(feature = "html")]
|
||||||
let html_parser_provider = Some(Arc::new(blitz_html::HtmlProvider) as _);
|
let html_parser_provider = Some(Arc::new(blitz_html::HtmlProvider) as _);
|
||||||
|
|||||||
Reference in new issue
Block a user