Commit 0d3f9b0c by HoMeTown

fix: 修复了asking过程中切换页面不可以继续提问的问题

parent 40adcf16
......@@ -6,8 +6,7 @@ import { LoginModal } from '../LoginModal'
import type { RootState } from '@/store'
import SendIcon from '@/assets/svg/send.svg?react'
import { type WithAuthProps, withAuth } from '@/auth/withAuth'
import { setIsAsking } from '@/store/chatSlice'
import { useAppDispatch, useAppSelector } from '@/store/hook'
import { useAppSelector } from '@/store/hook'
interface ChatEditorProps {
onChange?: (value: string) => void
......@@ -17,7 +16,7 @@ interface ChatEditorProps {
}
const ChatEditorBase: React.FC<ChatEditorProps & WithAuthProps> = ({ checkAuth, onChange, onFocus, onSubmit, placeholders }) => {
const dispatch = useAppDispatch()
// const dispatch = useAppDispatch()
const [content, setContent] = useState('')
const editorRef = useRef<HTMLDivElement>(null)
const [currentPlaceholder, setCurrentPlaceholder] = useState(0)
......@@ -92,9 +91,10 @@ const ChatEditorBase: React.FC<ChatEditorProps & WithAuthProps> = ({ checkAuth,
clearInterval(intervalRef.current)
}
document.removeEventListener('visibilitychange', handleVisibilityChange)
if (isAsking) {
dispatch(setIsAsking(false))
}
// console.log(isAsking, 'isAskingisAsking')
// if (isAsking) {
// dispatch(setIsAsking(false))
// }
}
}, [content])
return (
......
import React, { useEffect } from 'react'
import { useLocation, useNavigate } from 'react-router-dom'
import { clearCurrentConversation, setCurrentConversation } from '@/store/conversationSlice'
import { useAppDispatch } from '@/store/hook'
import { useAppDispatch, useAppSelector } from '@/store/hook'
import { setIsAsking } from '@/store/chatSlice'
import type { RootState } from '@/store'
export function withRouteChangeHandler(WrappedComponent: React.ComponentType) {
let beforeLocationPathName = ''
return (props: any) => {
const isAsking = useAppSelector((state: RootState) => state.chat.isAsking)
const location = useLocation()
const dispatch = useAppDispatch()
const navigate = useNavigate()
const newPath = location.pathname
const oldPath = beforeLocationPathName
useEffect(() => {
if (isAsking && newPath !== oldPath && oldPath !== '') {
dispatch(setIsAsking(false))
}
if (location.pathname === '/') {
dispatch(clearCurrentConversation())
}
......@@ -25,6 +36,7 @@ export function withRouteChangeHandler(WrappedComponent: React.ComponentType) {
dispatch(setCurrentConversation(conversationId))
}
// 这里可以添加其他路由相关的逻辑
beforeLocationPathName = newPath
}, [location, dispatch])
return <WrappedComponent {...props} />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment