diff --git a/src/preload/index.ts b/src/preload/index.ts index 1fdaffc096..1d5d05de31 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -174,6 +174,11 @@ const api = { export: { toWord: (markdown: string, fileName: string) => ipcRenderer.invoke(IpcChannel.Export_Word, markdown, fileName) }, + obsidian: { + getVaults: () => ipcRenderer.invoke(IpcChannel.Obsidian_GetVaults), + getFolders: (vaultName: string) => ipcRenderer.invoke(IpcChannel.Obsidian_GetFiles, vaultName), + getFiles: (vaultName: string) => ipcRenderer.invoke(IpcChannel.Obsidian_GetFiles, vaultName) + }, openPath: (path: string) => ipcRenderer.invoke(IpcChannel.Open_Path, path), shortcuts: { update: (shortcuts: Shortcut[]) => ipcRenderer.invoke(IpcChannel.Shortcuts_Update, shortcuts) @@ -394,11 +399,6 @@ if (process.contextIsolated) { try { contextBridge.exposeInMainWorld('electron', electronAPI) contextBridge.exposeInMainWorld('api', api) - contextBridge.exposeInMainWorld('obsidian', { - getVaults: () => ipcRenderer.invoke(IpcChannel.Obsidian_GetVaults), - getFolders: (vaultName: string) => ipcRenderer.invoke(IpcChannel.Obsidian_GetFiles, vaultName), - getFiles: (vaultName: string) => ipcRenderer.invoke(IpcChannel.Obsidian_GetFiles, vaultName) - }) } catch (error) { // eslint-disable-next-line no-restricted-syntax console.error(error) diff --git a/src/renderer/src/components/ObsidianExportDialog.tsx b/src/renderer/src/components/ObsidianExportDialog.tsx index d45dde0856..355153ae8f 100644 --- a/src/renderer/src/components/ObsidianExportDialog.tsx +++ b/src/renderer/src/components/ObsidianExportDialog.tsx @@ -181,7 +181,7 @@ const PopupContainer: React.FC = ({ try { setLoading(true) setError(null) - const vaultsData = await window.obsidian.getVaults() + const vaultsData = await window.api.obsidian.getVaults() if (vaultsData.length === 0) { setError(i18n.t('chat.topics.export.obsidian_no_vaults')) setLoading(false) @@ -191,7 +191,7 @@ const PopupContainer: React.FC = ({ const vaultToUse = defaultObsidianVault || vaultsData[0]?.name if (vaultToUse) { setSelectedVault(vaultToUse) - const filesData = await window.obsidian.getFiles(vaultToUse) + const filesData = await window.api.obsidian.getFiles(vaultToUse) setFiles(filesData) } } catch (error) { @@ -210,7 +210,7 @@ const PopupContainer: React.FC = ({ try { setLoading(true) setError(null) - const filesData = await window.obsidian.getFiles(selectedVault) + const filesData = await window.api.obsidian.getFiles(selectedVault) setFiles(filesData) } catch (error) { logger.error('获取Obsidian文件失败:', error) diff --git a/src/renderer/src/pages/settings/DataSettings/ObsidianSettings.tsx b/src/renderer/src/pages/settings/DataSettings/ObsidianSettings.tsx index 72aa6bf153..d98ebc4955 100644 --- a/src/renderer/src/pages/settings/DataSettings/ObsidianSettings.tsx +++ b/src/renderer/src/pages/settings/DataSettings/ObsidianSettings.tsx @@ -28,7 +28,7 @@ const ObsidianSettings: FC = () => { try { setLoading(true) setError(null) - const vaultsData = await window.obsidian.getVaults() + const vaultsData = await window.api.obsidian.getVaults() if (vaultsData.length === 0) { setError(t('settings.data.obsidian.default_vault_no_vaults'))