@@ -2,11 +2,11 @@ use cap_recording::{
22 RecordingMode , feeds:: camera:: DeviceOrModelID , sources:: screen_capture:: ScreenCaptureTarget ,
33} ;
44use serde:: { Deserialize , Serialize } ;
5- use std:: path:: { Path , PathBuf } ;
5+ use std:: path:: PathBuf ;
66use tauri:: { AppHandle , Manager , Url } ;
77use tracing:: trace;
88
9- use crate :: { App , ArcLock , recording:: StartRecordingInputs , windows:: ShowCapWindow } ;
9+ use crate :: { App , ArcLock , recording:: StartRecordingInputs , windows:: { CapWindowId , ShowCapWindow } } ;
1010
1111#[ derive( Debug , Serialize , Deserialize ) ]
1212#[ serde( rename_all = "snake_case" ) ]
@@ -34,6 +34,15 @@ pub enum DeepLinkAction {
3434 } ,
3535}
3636
37+ pub fn setup_deeplink_handler ( app_handle : & AppHandle ) {
38+ let app_handle = app_handle. clone ( ) ;
39+ app_handle. clone ( ) . listen ( "deep-link://new-url" , move |event| {
40+ if let Ok ( urls) = serde_json:: from_str :: < Vec < Url > > ( event. payload ( ) ) {
41+ handle ( & app_handle, urls) ;
42+ }
43+ } ) ;
44+ }
45+
3746pub fn handle ( app_handle : & AppHandle , urls : Vec < Url > ) {
3847 trace ! ( "Handling deep actions for: {:?}" , & urls) ;
3948
@@ -145,14 +154,16 @@ impl DeepLinkAction {
145154 . map ( |_| ( ) )
146155 }
147156 DeepLinkAction :: StopRecording => {
148- crate :: recording:: stop_recording ( app. clone ( ) , app. state ( ) ) . await
157+ crate :: recording:: stop_recording ( app. clone ( ) , app. state ( ) )
158+ . await
159+ . map_err ( |e| e. to_string ( ) )
149160 }
150161 DeepLinkAction :: OpenEditor { project_path } => {
151- crate :: open_project_from_path ( Path :: new ( & project_path ) , app . clone ( ) )
162+ ShowCapWindow :: PrevRecordings . show ( app ) . await . map_err ( |e| e . to_string ( ) )
152163 }
153164 DeepLinkAction :: OpenSettings { page } => {
154- crate :: show_window ( app . clone ( ) , ShowCapWindow :: Settings { page } ) . await
165+ ShowCapWindow :: Settings { page } . show ( app ) . await . map_err ( |e| e . to_string ( ) )
155166 }
156167 }
157168 }
158- }
169+ }
0 commit comments