diff --git a/src/renderer/src/components/ObsidianExportDialog.tsx b/src/renderer/src/components/ObsidianExportDialog.tsx index 631c085cad..dfc4cc09e0 100644 --- a/src/renderer/src/components/ObsidianExportDialog.tsx +++ b/src/renderer/src/components/ObsidianExportDialog.tsx @@ -20,10 +20,16 @@ interface FileInfo { name: string } +const ObsidianProcessingMethod = { + APPEND: '1', + PREPEND: '2', + NEW_OR_OVERWRITE: '3' +} as const + interface PopupContainerProps { title: string obsidianTags: string | null - processingMethod: string | '3' + processingMethod: (typeof ObsidianProcessingMethod)[keyof typeof ObsidianProcessingMethod] open: boolean resolve: (success: boolean) => void message?: Message @@ -230,10 +236,10 @@ const PopupContainer: React.FC = ({ markdown = '' } let content = '' - if (state.processingMethod !== '3') { + if (state.processingMethod !== ObsidianProcessingMethod.NEW_OR_OVERWRITE) { content = `\n---\n${markdown}` } else { - content = `---\n\ntitle: ${state.title}\ncreated: ${state.createdAt}\nsource: ${state.source}\ntags: ${state.tags}\n---\n${markdown}` + content = `---\ntitle: ${state.title}\ncreated: ${state.createdAt}\nsource: ${state.source}\ntags: ${state.tags}\n---\n${markdown}` } if (content === '') { window.message.error(i18n.t('chat.topics.export.obsidian_export_failed')) @@ -280,9 +286,9 @@ const PopupContainer: React.FC = ({ const titleWithoutExt = fileName.endsWith('.md') ? fileName.substring(0, fileName.length - 3) : fileName handleChange('title', titleWithoutExt) setHasTitleBeenManuallyEdited(false) - handleChange('processingMethod', '1') + handleChange('processingMethod', ObsidianProcessingMethod.APPEND) } else { - handleChange('processingMethod', '3') + handleChange('processingMethod', ObsidianProcessingMethod.NEW_OR_OVERWRITE) if (!hasTitleBeenManuallyEdited) { handleChange('title', title) } @@ -390,9 +396,15 @@ const PopupContainer: React.FC = ({ onChange={(value) => handleChange('processingMethod', value)} placeholder={i18n.t('chat.topics.export.obsidian_operate_placeholder')} allowClear> - - - + + + @@ -403,4 +415,4 @@ const PopupContainer: React.FC = ({ ) } -export { PopupContainer } +export { ObsidianProcessingMethod, PopupContainer } diff --git a/src/renderer/src/components/Popups/ObsidianExportPopup.tsx b/src/renderer/src/components/Popups/ObsidianExportPopup.tsx index 49dc320c7c..aec5fcbaa8 100644 --- a/src/renderer/src/components/Popups/ObsidianExportPopup.tsx +++ b/src/renderer/src/components/Popups/ObsidianExportPopup.tsx @@ -1,11 +1,11 @@ -import { PopupContainer } from '@renderer/components/ObsidianExportDialog' +import { ObsidianProcessingMethod, PopupContainer } from '@renderer/components/ObsidianExportDialog' import { TopView } from '@renderer/components/TopView' import type { Topic } from '@renderer/types' import type { Message } from '@renderer/types/newMessage' interface ObsidianExportOptions { title: string - processingMethod: string | '3' + processingMethod: (typeof ObsidianProcessingMethod)[keyof typeof ObsidianProcessingMethod] topic?: Topic message?: Message messages?: Message[]