import { MarkdownView, Plugin } from 'obsidian'; import React, { useEffect, useMemo, useRef, useState } from 'react'; import { APPLY_VIEW_TYPE } from '../../constants'; import LLMManager from '../../core/llm/manager'; import { InfioSettings } from '../../types/settings'; import { GetProviderModelIds } from '../../utils/api'; import { manualApplyChangesToFile } from '../../utils/apply'; import { removeAITags } from '../../utils/content-filter'; import { PromptGenerator } from '../../utils/prompt-generator'; type InlineEditProps = { source: string; secStartLine: number; secEndLine: number; plugin: Plugin; settings: InfioSettings; } type InputAreaProps = { value: string; onChange: (value: string) => void; } const InputArea: React.FC = ({ value, onChange }) => { const textareaRef = useRef(null); useEffect(() => { // 组件挂载后自动聚焦到 textarea textareaRef.current?.focus(); }, []); return (