import { CheckCircleFilled, DownOutlined, LoadingOutlined, UpOutlined } from '@ant-design/icons'; import { PREFIX_CLS } from '../../common/constants'; import { SimilarQuestionType } from '../../common/type'; import { useEffect, useState } from 'react'; import { querySimilarQuestions } from '../../service'; type Props = { queryId?: number; similarQueries?: SimilarQuestionType[]; defaultExpanded?: boolean; onSelectQuestion: (question: SimilarQuestionType) => void; }; const SimilarQuestions: React.FC = ({ queryId, similarQueries, defaultExpanded, onSelectQuestion, }) => { const [similarQuestions, setSimilarQuestions] = useState( similarQueries || [] ); const [expanded, setExpanded] = useState(defaultExpanded || false); const [loading, setLoading] = useState(false); const tipPrefixCls = `${PREFIX_CLS}-item`; const prefixCls = `${PREFIX_CLS}-similar-questions`; const initData = async () => { setLoading(true); const res = await querySimilarQuestions(queryId!); setLoading(false); setSimilarQuestions(res.data?.similarQueries || []); }; useEffect(() => { if (expanded && similarQuestions?.length === 0 && queryId) { initData(); } }, [expanded, queryId]); const onToggleExpanded = () => { setExpanded(!expanded); }; return (
推荐相似问题 {loading ? : expanded ? : }
{expanded && (
{similarQuestions?.slice(0, 5).map((question, index) => { return (
{ onSelectQuestion(question); }} > {index + 1}. {question.queryText}
); })}
)}
); }; export default SimilarQuestions;