Auto-connect to server on startup if credentials are on the keychain
This commit is contained in:
parent
8d7bb8b1a3
commit
e8bbd370e4
2 changed files with 14 additions and 0 deletions
|
@ -356,6 +356,10 @@ impl Client {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn has_keychain_credentials(&self, cx: &AsyncAppContext) -> bool {
|
||||||
|
read_credentials_from_keychain(cx).is_some()
|
||||||
|
}
|
||||||
|
|
||||||
#[async_recursion(?Send)]
|
#[async_recursion(?Send)]
|
||||||
pub async fn authenticate_and_connect(
|
pub async fn authenticate_and_connect(
|
||||||
self: &Arc<Self>,
|
self: &Arc<Self>,
|
||||||
|
|
|
@ -61,6 +61,16 @@ fn main() {
|
||||||
chat_panel::init(cx);
|
chat_panel::init(cx);
|
||||||
project_panel::init(cx);
|
project_panel::init(cx);
|
||||||
diagnostics::init(cx);
|
diagnostics::init(cx);
|
||||||
|
cx.spawn({
|
||||||
|
let client = client.clone();
|
||||||
|
|cx| async move {
|
||||||
|
if client.has_keychain_credentials(&cx) {
|
||||||
|
client.authenticate_and_connect(&cx).await?;
|
||||||
|
}
|
||||||
|
Ok::<_, anyhow::Error>(())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.detach_and_log_err(cx);
|
||||||
|
|
||||||
let app_state = Arc::new(AppState {
|
let app_state = Arc::new(AppState {
|
||||||
languages: languages.clone(),
|
languages: languages.clone(),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue