mirror of
https://github.com/tauri-apps/tauri.git
synced 2024-11-23 19:52:31 +03:00
feat(core): fallback to Window and AppHandle resource table on close (#11398)
this changes the resource plugin close() API to fallback to the parent window and AppHandle resource tables, letting the JS to delete global resources. The need for this was brought up on https://github.com/tauri-apps/plugins-workspace/pull/1860#issuecomment-2419175001 the store plugin stores the resources in the AppHandle, and we want the existing close() API to work on global resources otherwise every consumer needs their own resource close commands
This commit is contained in:
parent
c8f55b615d
commit
eb61d44f9f
5
.changes/resources-close-fallback.md
Normal file
5
.changes/resources-close-fallback.md
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
"tauri": patch:enhance
|
||||
---
|
||||
|
||||
Fallback to the Window and AppHandle resource table when closing a resource by ID.
|
@ -12,7 +12,14 @@ use super::ResourceId;
|
||||
|
||||
#[command(root = "crate")]
|
||||
fn close<R: Runtime>(webview: Webview<R>, rid: ResourceId) -> crate::Result<()> {
|
||||
webview.resources_table().close(rid)
|
||||
let mut result = webview.resources_table().close(rid);
|
||||
if result.is_err() {
|
||||
result = webview.window().resources_table().close(rid);
|
||||
if result.is_err() {
|
||||
result = webview.app_handle().resources_table().close(rid);
|
||||
}
|
||||
}
|
||||
result
|
||||
}
|
||||
|
||||
pub(crate) fn init<R: Runtime>() -> TauriPlugin<R> {
|
||||
|
Loading…
Reference in New Issue
Block a user