Skip to content

Commit c2d540e

Browse files
authored
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
1 parent 2ab9a55 commit c2d540e

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

packages/native/src/assets.rs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use winit::event_loop::EventLoopProxy;
88

99
pub struct DioxusNativeNetProvider {
1010
callback: Arc<dyn NetCallback<Resource> + 'static>,
11+
#[cfg(feature = "net")]
1112
inner_net_provider: Arc<dyn NetProvider<Resource> + 'static>,
1213
}
1314
impl DioxusNativeNetProvider {
@@ -17,9 +18,13 @@ impl DioxusNativeNetProvider {
1718

1819
pub fn new(proxy: EventLoopProxy<BlitzShellEvent>) -> Self {
1920
let net_callback = BlitzShellNetCallback::shared(proxy);
21+
22+
#[cfg(feature = "net")]
2023
let net_provider = blitz_net::Provider::shared(net_callback.clone());
24+
2125
Self {
2226
callback: net_callback,
27+
#[cfg(feature = "net")]
2328
inner_net_provider: net_provider,
2429
}
2530
}
@@ -36,16 +41,20 @@ impl NetProvider<Resource> for DioxusNativeNetProvider {
3641
match dioxus_asset_resolver::native::serve_asset(request.url.path()) {
3742
Ok(res) => {
3843
#[cfg(feature = "tracing")]
39-
tracing::trace!("fetching asset from file system success {request:#?}");
44+
tracing::trace!("fetching asset from file system success {request:#?}");
4045
handler.bytes(doc_id, res.into_body().into(), self.callback.clone())
4146
}
4247
Err(_) => {
4348
#[cfg(feature = "tracing")]
44-
tracing::warn!("fetching asset from file system error {request:#?}");
49+
tracing::warn!("fetching asset from file system error {request:#?}");
4550
}
4651
}
4752
} else {
53+
#[cfg(feature = "net")]
4854
self.inner_net_provider.fetch(doc_id, request, handler);
55+
56+
#[cfg(all(not(feature = "net"), feature = "tracing"))]
57+
tracing::warn!("net feature not enabled, cannot fetch {request:#?}");
4958
}
5059
}
5160
}

packages/native/src/lib.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ use blitz_shell::{create_default_event_loop, BlitzShellEvent, Config, WindowConf
2727
use dioxus_core::{ComponentFunction, Element, VirtualDom};
2828
use link_handler::DioxusNativeNavigationProvider;
2929
use std::any::Any;
30-
#[cfg(feature = "html")]
3130
use std::sync::Arc;
3231
use winit::window::WindowAttributes;
3332

@@ -117,14 +116,7 @@ pub fn launch_cfg_with_props<P: Clone + 'static, M: 'static>(
117116
vdom.insert_any_root_context(context());
118117
}
119118

120-
#[cfg(feature = "net")]
121-
let net_provider = {
122-
let proxy = event_loop.create_proxy();
123-
let net_provider = DioxusNativeNetProvider::shared(proxy);
124-
Some(net_provider)
125-
};
126-
#[cfg(not(feature = "net"))]
127-
let net_provider = None;
119+
let net_provider = Some(DioxusNativeNetProvider::shared(event_loop.create_proxy()));
128120

129121
#[cfg(feature = "html")]
130122
let html_parser_provider = Some(Arc::new(blitz_html::HtmlProvider) as _);

0 commit comments

Comments
 (0)