@@ -37,10 +37,11 @@ fn show_main_window(window: &WebviewWindow) {
3737
3838mod upload;
3939use upload:: {
40- add_to_upload_queue_sync, add_to_upload_queue_with_event_type, clear_upload_queue,
41- get_queue_size, get_upload_config, get_upload_progress, process_upload_queue,
42- set_upload_config, trigger_manual_upload, UploadConfig , UploadConfigState , UploadProgress ,
43- UploadProgressState , UploadQueue ,
40+ add_to_upload_queue_sync, add_to_upload_queue_with_event_type, clear_session_context,
41+ clear_upload_queue, get_org_members, get_queue_size, get_session_context, get_upload_config,
42+ get_upload_progress, process_upload_queue, restore_session_context, set_session_context,
43+ set_upload_config, trigger_manual_upload, SessionContext , SessionContextState , UploadConfig ,
44+ UploadConfigState , UploadProgress , UploadProgressState , UploadQueue ,
4445} ;
4546
4647mod heartbeat;
@@ -415,6 +416,7 @@ pub fn run() {
415416 in_flight : 0 ,
416417 current_uploading : None ,
417418 } ) ) ;
419+ let session_context: SessionContextState = Arc :: new ( Mutex :: new ( SessionContext :: default ( ) ) ) ;
418420 let http_client = create_shared_client ( ) ;
419421 let heartbeat_state: HeartbeatState = Arc :: new ( tokio:: sync:: Mutex :: new ( None ) ) ;
420422 let heartbeat_status_state: HeartbeatStatusState =
@@ -440,6 +442,7 @@ pub fn run() {
440442 . manage ( upload_queue. clone ( ) )
441443 . manage ( upload_config. clone ( ) )
442444 . manage ( upload_progress. clone ( ) )
445+ . manage ( session_context. clone ( ) )
443446 . manage ( heartbeat_state. clone ( ) )
444447 . manage ( heartbeat_status_state. clone ( ) )
445448 . manage ( heartbeat_task_state. clone ( ) )
@@ -456,13 +459,22 @@ pub fn run() {
456459 start_heartbeat_service,
457460 stop_heartbeat_service,
458461 get_heartbeat_status_command,
459- update_heartbeat_token
462+ update_heartbeat_token,
463+ get_session_context,
464+ set_session_context,
465+ clear_session_context,
466+ get_org_members
460467 ] )
461468 . setup ( move |app| {
469+ // Restore session context from store
470+ let restored_ctx = restore_session_context ( app. handle ( ) ) ;
471+ * session_context. lock ( ) = restored_ctx;
472+
462473 // Start the upload processor in the background
463474 let upload_queue_clone = upload_queue. clone ( ) ;
464475 let upload_config_clone = upload_config. clone ( ) ;
465476 let upload_progress_clone = upload_progress. clone ( ) ;
477+ let session_context_clone = session_context. clone ( ) ;
466478 let http_client_clone = http_client. clone ( ) ;
467479 let app_handle = app. handle ( ) . clone ( ) ;
468480
@@ -471,6 +483,7 @@ pub fn run() {
471483 upload_queue_clone,
472484 upload_config_clone,
473485 upload_progress_clone,
486+ session_context_clone,
474487 http_client_clone,
475488 app_handle,
476489 )
0 commit comments