Skip to content

Commit fa9656b

Browse files
authored
fix: panic when opening view extension via hotkey (#949)
Another change that should be made to fix the View extension hotkey. I should include it in this commit[1] but I forgot to. [1]: e029ddf
1 parent 0395474 commit fa9656b

1 file changed

Lines changed: 26 additions & 1 deletion

File tree

  • src-tauri/src/extension/third_party

src-tauri/src/extension/third_party/mod.rs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,24 @@ impl ThirdPartyExtensionsSearchSource {
248248
if extension.supports_alias_hotkey() {
249249
if let Some(ref hotkey) = extension.hotkey {
250250
let on_opened = extension.on_opened().unwrap_or_else(|| panic!( "extension has hotkey, but on_open() returns None, extension ID [{}], extension type [{:?}]", extension.id, extension.r#type));
251+
let url = on_opened.url();
252+
let extension_type_string = extension.r#type.to_string();
253+
let document = Document {
254+
id: extension.id.clone(),
255+
title: Some(extension.name.clone()),
256+
icon: Some(extension.icon.clone()),
257+
on_opened: Some(on_opened.clone()),
258+
url: Some(url),
259+
category: Some(extension_type_string.clone()),
260+
source: Some(DataSourceReference {
261+
id: Some(extension_type_string.clone()),
262+
name: Some(extension_type_string.clone()),
263+
icon: None,
264+
r#type: Some(extension_type_string),
265+
}),
266+
267+
..Default::default()
268+
};
251269

252270
let extension_id_clone = extension.id.clone();
253271

@@ -258,9 +276,16 @@ impl ThirdPartyExtensionsSearchSource {
258276
let extension_id_clone = extension_id_clone.clone();
259277
let app_handle_clone = tauri_app_handle.clone();
260278

279+
let mut args = HashMap::new();
280+
args.insert(
281+
String::from("document"),
282+
serde_json::to_value(&document).unwrap(),
283+
);
284+
261285
if event.state() == ShortcutState::Pressed {
262286
async_runtime::spawn(async move {
263-
let result = open(app_handle_clone, on_opened_clone, None).await;
287+
let result =
288+
open(app_handle_clone, on_opened_clone, Some(args)).await;
264289
if let Err(msg) = result {
265290
log::warn!(
266291
"failed to open extension [{}], error [{}]",

0 commit comments

Comments
 (0)