2026-06-06 19:28:17 +02:00
|
|
|
import { FuzzySuggestModal } from "obsidian";
|
2026-04-03 12:19:24 +02:00
|
|
|
|
|
|
|
|
class WorkspacePickerModal extends FuzzySuggestModal {
|
|
|
|
|
constructor(app) {
|
|
|
|
|
super(app);
|
|
|
|
|
this.setPlaceholder("Open workspace in new tab");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getItems() {
|
|
|
|
|
const plugin = this.app.internalPlugins.plugins.workspaces;
|
|
|
|
|
|
|
|
|
|
if (!plugin || !plugin.enabled || !plugin.instance) {
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Object.keys(plugin.instance.workspaces);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getItemText(item) {
|
|
|
|
|
return item;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onChooseItem(item) {
|
|
|
|
|
const url = new URL(window.location.href);
|
|
|
|
|
|
|
|
|
|
url.searchParams.set("workspace", item);
|
2026-05-16 21:26:57 +02:00
|
|
|
url.searchParams.set("load", "preset");
|
2026-04-03 12:19:24 +02:00
|
|
|
window.open(url.toString(), "_blank");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-06-06 19:28:17 +02:00
|
|
|
export { WorkspacePickerModal };
|