@@ -169,8 +169,11 @@ pub trait FromWindow<R: Runtime>: Panel<R> + Sized {
169169 fn from_window ( window : WebviewWindow < R > , label : String ) -> tauri:: Result < Self > ;
170170}
171171
172+ /// Type alias for shared panel references
173+ pub type PanelHandle < R > = Arc < dyn Panel < R > > ;
174+
172175pub struct Store < R : Runtime > {
173- panels : HashMap < String , Arc < dyn Panel < R > > > ,
176+ panels : HashMap < String , PanelHandle < R > > ,
174177}
175178
176179impl < R : Runtime > Default for Store < R > {
@@ -190,8 +193,8 @@ impl<R: Runtime> Default for WebviewPanelManager<R> {
190193}
191194
192195pub trait ManagerExt < R : Runtime > {
193- fn get_webview_panel ( & self , label : & str ) -> Result < Arc < dyn Panel < R > > , Error > ;
194- fn remove_webview_panel ( & self , label : & str ) -> Option < Arc < dyn Panel < R > > > ;
196+ fn get_webview_panel ( & self , label : & str ) -> Result < PanelHandle < R > , Error > ;
197+ fn remove_webview_panel ( & self , label : & str ) -> Option < PanelHandle < R > > ;
195198}
196199
197200#[ derive( Debug ) ]
@@ -200,7 +203,7 @@ pub enum Error {
200203}
201204
202205impl < R : Runtime , T : Manager < R > > ManagerExt < R > for T {
203- fn get_webview_panel ( & self , label : & str ) -> Result < Arc < dyn Panel < R > > , Error > {
206+ fn get_webview_panel ( & self , label : & str ) -> Result < PanelHandle < R > , Error > {
204207 let manager = self . state :: < self :: WebviewPanelManager < R > > ( ) ;
205208 let manager = manager. 0 . lock ( ) . unwrap ( ) ;
206209
@@ -210,7 +213,7 @@ impl<R: Runtime, T: Manager<R>> ManagerExt<R> for T {
210213 }
211214 }
212215
213- fn remove_webview_panel ( & self , label : & str ) -> Option < Arc < dyn Panel < R > > > {
216+ fn remove_webview_panel ( & self , label : & str ) -> Option < PanelHandle < R > > {
214217 self . state :: < self :: WebviewPanelManager < R > > ( )
215218 . 0
216219 . lock ( )
@@ -222,14 +225,14 @@ impl<R: Runtime, T: Manager<R>> ManagerExt<R> for T {
222225
223226pub trait WebviewWindowExt < R : Runtime > {
224227 /// Convert window to specific panel type
225- fn to_panel < P : FromWindow < R > + ' static > ( & self ) -> tauri:: Result < Arc < dyn Panel < R > > > ;
228+ fn to_panel < P : FromWindow < R > + ' static > ( & self ) -> tauri:: Result < PanelHandle < R > > ;
226229}
227230
228231impl < R : Runtime > WebviewWindowExt < R > for WebviewWindow < R > {
229- fn to_panel < P : FromWindow < R > + ' static > ( & self ) -> tauri:: Result < Arc < dyn Panel < R > > > {
232+ fn to_panel < P : FromWindow < R > + ' static > ( & self ) -> tauri:: Result < PanelHandle < R > > {
230233 let label = self . label ( ) . to_string ( ) ;
231234 let panel = P :: from_window ( self . clone ( ) , label. clone ( ) ) ?;
232- let arc_panel = Arc :: new ( panel) as Arc < dyn Panel < R > > ;
235+ let arc_panel = Arc :: new ( panel) as PanelHandle < R > ;
233236
234237 let manager = self . state :: < WebviewPanelManager < R > > ( ) ;
235238 manager
0 commit comments