MCPcopy
hub / github.com/AsyncFuncAI/deepwiki-open / Ask

Function Ask

src/components/Ask.tsx:46–926  ·  view source on GitHub ↗
({
  repoInfo,
  provider = '',
  model = '',
  isCustomModel = false,
  customModel = '',
  language = 'en',
  onRef
})

Source from the content-addressed store, hash-verified

44}
45
46const Ask: React.FC<AskProps> = ({
47 repoInfo,
48 provider = '',
49 model = '',
50 isCustomModel = false,
51 customModel = '',
52 language = 'en',
53 onRef
54}) => {
55 const [question, setQuestion] = useState('');
56 const [response, setResponse] = useState('');
57 const [isLoading, setIsLoading] = useState(false);
58 const [deepResearch, setDeepResearch] = useState(false);
59
60 // Model selection state
61 const [selectedProvider, setSelectedProvider] = useState(provider);
62 const [selectedModel, setSelectedModel] = useState(model);
63 const [isCustomSelectedModel, setIsCustomSelectedModel] = useState(isCustomModel);
64 const [customSelectedModel, setCustomSelectedModel] = useState(customModel);
65 const [isModelSelectionModalOpen, setIsModelSelectionModalOpen] = useState(false);
66 const [isComprehensiveView, setIsComprehensiveView] = useState(true);
67
68 // Get language context for translations
69 const { messages } = useLanguage();
70
71 // Research navigation state
72 const [researchStages, setResearchStages] = useState<ResearchStage[]>([]);
73 const [currentStageIndex, setCurrentStageIndex] = useState(0);
74 const [conversationHistory, setConversationHistory] = useState<Message[]>([]);
75 const [researchIteration, setResearchIteration] = useState(0);
76 const [researchComplete, setResearchComplete] = useState(false);
77 const inputRef = useRef<HTMLInputElement>(null);
78 const responseRef = useRef<HTMLDivElement>(null);
79 const providerRef = useRef(provider);
80 const modelRef = useRef(model);
81
82 // Focus input on component mount
83 useEffect(() => {
84 if (inputRef.current) {
85 inputRef.current.focus();
86 }
87 }, []);
88
89 // Expose clearConversation method to parent component
90 useEffect(() => {
91 if (onRef) {
92 onRef({ clearConversation });
93 }
94 }, [onRef]);
95
96 // Scroll to bottom of response when it changes
97 useEffect(() => {
98 if (responseRef.current) {
99 responseRef.current.scrollTop = responseRef.current.scrollHeight;
100 }
101 }, [response]);
102
103 // Close WebSocket when component unmounts

Callers

nothing calls this directly

Calls 8

useLanguageFunction · 0.90
closeWebSocketFunction · 0.90
fetchModelFunction · 0.85
checkIfResearchCompleteFunction · 0.85
continueResearchFunction · 0.85
extractResearchStageFunction · 0.85
navigateToPreviousStageFunction · 0.85
navigateToNextStageFunction · 0.85

Tested by

no test coverage detected