fix: don't send hot-reload if app is building (#3607)

This commit is contained in:
Jonathan Kelley authored and GitHub committed 2025-01-20 18:58:50 -08:00
1 parent 6c907b1c20
commit 024285c548
2 files changed
+9 -4

No files matched your search

+5
View File
@@ -315,4 +315,9 @@ impl Builder {
_ => false,
}
}
/// Check if the queued build is blocking hotreloads
pub(crate) fn can_receive_hotreloads(&self) -> bool {
matches!(&self.stage, BuildStage::Success)
}
}
+4 -4
View File
@@ -93,10 +93,10 @@ pub(crate) async fn serve_all(mut args: ServeArgs) -> Result<()> {
// and then send that update to all connected clients
if let Some(hr) = runner.attempt_hot_reload(files).await {
// Only send a hotreload message for templates and assets - otherwise we'll just get a full rebuild
if hr.templates.is_empty()
&& hr.assets.is_empty()
&& hr.unknown_files.is_empty()
{
//
// Also make sure the builder isn't busy since that might cause issues with hotreloads
// https://github.com/DioxusLabs/dioxus/issues/3361
if hr.is_empty() || !builder.can_receive_hotreloads() {
tracing::debug!(dx_src = ?TraceSrc::Dev, "Ignoring file change: {}", file);
continue;
}