From e1fe7a0b84f335d32f5ddfcc7bc02cc8849696ba Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Wed, 17 Dec 2025 13:27:12 -0500 Subject: [PATCH] frontend components, remove profiling, open login modal --- .../lifecycle/startup/handle_tauri_startup.rs | 2 + crates/desktop/artcraft/src/lib.rs | 8 +- .../worldlabs_get_credential_info_command.rs | 5 + frontend/apps/editor3d/app/index.html | 4 +- .../AccountSettings/AccountSettingsPane.tsx | 2 + .../AccountSettings/WorldLabsAccountBlock.tsx | 91 +++++++++++++++++++ frontend/libs/tauri-api/src/index.ts | 8 +- .../worldlabs/WorldLabsGetCredentialInfo.ts | 16 ++++ 8 files changed, 132 insertions(+), 4 deletions(-) create mode 100644 frontend/libs/components/settings-modal/src/lib/panes/AccountSettings/WorldLabsAccountBlock.tsx create mode 100644 frontend/libs/tauri-api/src/lib/worldlabs/WorldLabsGetCredentialInfo.ts diff --git a/crates/desktop/artcraft/src/core/lifecycle/startup/handle_tauri_startup.rs b/crates/desktop/artcraft/src/core/lifecycle/startup/handle_tauri_startup.rs index 3c33ef011b..d64b66fa87 100644 --- a/crates/desktop/artcraft/src/core/lifecycle/startup/handle_tauri_startup.rs +++ b/crates/desktop/artcraft/src/core/lifecycle/startup/handle_tauri_startup.rs @@ -18,6 +18,7 @@ use crate::services::midjourney::threads::midjourney_long_polling_thread::midjou use crate::services::sora::state::sora_credential_manager::SoraCredentialManager; use crate::services::sora::state::sora_task_queue::SoraTaskQueue; use crate::services::storyteller::state::storyteller_credential_manager::StorytellerCredentialManager; +use crate::services::worldlabs::state::worldlabs_credential_manager::WorldlabsCredentialManager; use errors::AnyhowResult; use tauri::{AppHandle, Manager}; @@ -32,6 +33,7 @@ pub async fn handle_tauri_startup( mj_creds_manager: MidjourneyCredentialManager, grok_creds_manager: GrokCredentialManager, grok_image_prompt_queue: GrokImagePromptQueue, + worldlabs_creds_manager: WorldlabsCredentialManager, ) -> AnyhowResult<()> { set_app_log_level( diff --git a/crates/desktop/artcraft/src/lib.rs b/crates/desktop/artcraft/src/lib.rs index d80c490314..bdac03bd9b 100644 --- a/crates/desktop/artcraft/src/lib.rs +++ b/crates/desktop/artcraft/src/lib.rs @@ -38,6 +38,7 @@ use crate::services::midjourney::commands::midjourney_clear_credentials_command: use crate::services::midjourney::commands::midjourney_get_credential_info_command::midjourney_get_credential_info_command; use crate::services::midjourney::commands::midjourney_open_login_command::midjourney_open_login_command; use crate::services::midjourney::state::midjourney_credential_manager::MidjourneyCredentialManager; +use crate::services::worldlabs::state::worldlabs_credential_manager::WorldlabsCredentialManager; use crate::services::sora::commands::check_sora_session_command::check_sora_session_command; use crate::services::sora::commands::open_sora_login_command::open_sora_login_command; use crate::services::sora::commands::sora_get_credential_info_command::sora_get_credential_info_command; @@ -111,6 +112,9 @@ pub fn run() { let grok_prompt_queue = GrokImagePromptQueue::new(); let grok_prompt_queue_2 = grok_prompt_queue.clone(); + let worldlabs_creds_manager = WorldlabsCredentialManager::initialize_from_disk_infallible(&app_data_root); + let worldlabs_creds_manager_2 = worldlabs_creds_manager.clone(); + println!("Initializing backend runtime..."); let builder = tauri::Builder::default() @@ -150,6 +154,7 @@ pub fn run() { midjourney_creds_manager_2, grok_creds_manager_2, grok_prompt_queue_2, + worldlabs_creds_manager_2, ).await; if let Err(err) = result { @@ -169,7 +174,8 @@ pub fn run() { .manage(midjourney_creds_manager) .manage(sora_creds_manager) .manage(sora_task_queue) - .manage(storyteller_creds_manager_3); + .manage(storyteller_creds_manager_3) + .manage(worldlabs_creds_manager); // TODO: Break this out into another module, because RustRover/IntelliJ lags with these macros. // My first attempt at naively doing this didn't work because the macros can't find their codegen'd targets. diff --git a/crates/desktop/artcraft/src/services/worldlabs/commands/worldlabs_get_credential_info_command.rs b/crates/desktop/artcraft/src/services/worldlabs/commands/worldlabs_get_credential_info_command.rs index 33386f1899..8510e0a94d 100644 --- a/crates/desktop/artcraft/src/services/worldlabs/commands/worldlabs_get_credential_info_command.rs +++ b/crates/desktop/artcraft/src/services/worldlabs/commands/worldlabs_get_credential_info_command.rs @@ -35,6 +35,7 @@ fn get_info( let mut can_clear_state = true; let maybe_cookies = creds.maybe_copy_cookie_store()?; + //let maybe_full_credentials = creds.user()?; // //if maybe_cookies.is_none() && maybe_full_credentials.is_none() { @@ -45,6 +46,10 @@ fn get_info( // .map(|full_creds| full_creds.client_secrets.user_email) // .map(|maybe_email| maybe_email.map(|email| email.to_string())) // .flatten(); + + if maybe_cookies.is_none() { + can_clear_state = false; + } Ok(WorldlabsGetCredentialInfoResponse { maybe_email: None, diff --git a/frontend/apps/editor3d/app/index.html b/frontend/apps/editor3d/app/index.html index f921d41be9..c93313f28a 100644 --- a/frontend/apps/editor3d/app/index.html +++ b/frontend/apps/editor3d/app/index.html @@ -14,7 +14,9 @@ gtag('js', new Date()); gtag('config', 'G-Y4Y8KMLPQ7'); - + + +