diff --git a/crates/ely_app/src/shell/sync_state.rs b/crates/ely_app/src/shell/sync_state.rs index 243f320..f47d0bc 100644 --- a/crates/ely_app/src/shell/sync_state.rs +++ b/crates/ely_app/src/shell/sync_state.rs @@ -97,16 +97,7 @@ impl ElyShell { let ShellState::Ready(core) = &self.state else { return false; }; - let Some(snapshot) = core.snapshot().ok() else { - return false; - }; - matches!( - snapshot.sync_status.connection(), - SyncConnectionState::SignedIn - | SyncConnectionState::AwaitingDeviceApproval - | SyncConnectionState::SyncReady { .. } - | SyncConnectionState::SyncError { .. } - ) + core.cloud_sync_upload_enabled() } /// Inspect the on-disk bearer token and seed `SyncConnectionState` diff --git a/crates/ely_browser_core/src/state/sync.rs b/crates/ely_browser_core/src/state/sync.rs index 382ec2f..9d9884e 100644 --- a/crates/ely_browser_core/src/state/sync.rs +++ b/crates/ely_browser_core/src/state/sync.rs @@ -88,6 +88,17 @@ impl BrowserCore { self.sync_connection_state = state; } + #[must_use] + pub fn cloud_sync_upload_enabled(&self) -> bool { + matches!( + self.sync_connection_state, + SyncConnectionState::SignedIn + | SyncConnectionState::AwaitingDeviceApproval + | SyncConnectionState::SyncReady { .. } + | SyncConnectionState::SyncError { .. } + ) + } + pub(crate) fn sync_space_name_for(&self, space_id: &SpaceId) -> Option { self.spaces .iter()