import {AiOutlineCloseCircle, BsDashSquare, BsPlusSquare, FaQuestion} from 'react-icons/all' import classNames from 'classnames' import Markdown from '../components/Markdown' import React, {useCallback} from 'react' import {delAskInfo, mergeAskInfo, setTempData} from '../redux/envReducer' import {useAppDispatch, useAppSelector} from '../hooks/redux' import toast from 'react-hot-toast' import useTranslate from '../hooks/useTranslate' const Ask = (props: { ask: AskInfo }) => { const {ask} = props const dispatch = useAppDispatch() const envData = useAppSelector(state => state.env.envData) const fontSize = useAppSelector(state => state.env.envData.fontSize) const segments = useAppSelector(state => state.env.segments) const {addAskTask} = useTranslate() const onRegenerate = useCallback(() => { const apiKey = envData.aiType === 'gemini'?envData.geminiApiKey:envData.apiKey if (apiKey) { if (segments != null && segments.length > 0) { addAskTask(ask.id, segments[0], ask.question).catch(console.error) } } else { toast.error('请先在选项页面设置ApiKey!') } }, [addAskTask, ask.id, ask.question, envData.aiType, envData.apiKey, envData.geminiApiKey, segments]) const onAskFold = useCallback(() => { dispatch(mergeAskInfo({ id: ask.id, fold: !ask.fold })) }, [ask, dispatch]) const onClose = useCallback(() => { dispatch(delAskInfo(ask.id)) }, [ask, dispatch]) return