Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
sdream-ai-fe
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
侯明涛
sdream-ai-fe
Commits
0d3f9b0c
Commit
0d3f9b0c
authored
Sep 02, 2024
by
HoMeTown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 修复了asking过程中切换页面不可以继续提问的问题
parent
40adcf16
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
7 deletions
+19
-7
src/components/ChatEditor/index.tsx
+6
-6
src/routes/RouteChangeHandler.tsx
+13
-1
No files found.
src/components/ChatEditor/index.tsx
View file @
0d3f9b0c
...
@@ -6,8 +6,7 @@ import { LoginModal } from '../LoginModal'
...
@@ -6,8 +6,7 @@ import { LoginModal } from '../LoginModal'
import
type
{
RootState
}
from
'@/store'
import
type
{
RootState
}
from
'@/store'
import
SendIcon
from
'@/assets/svg/send.svg?react'
import
SendIcon
from
'@/assets/svg/send.svg?react'
import
{
type
WithAuthProps
,
withAuth
}
from
'@/auth/withAuth'
import
{
type
WithAuthProps
,
withAuth
}
from
'@/auth/withAuth'
import
{
setIsAsking
}
from
'@/store/chatSlice'
import
{
useAppSelector
}
from
'@/store/hook'
import
{
useAppDispatch
,
useAppSelector
}
from
'@/store/hook'
interface
ChatEditorProps
{
interface
ChatEditorProps
{
onChange
?:
(
value
:
string
)
=>
void
onChange
?:
(
value
:
string
)
=>
void
...
@@ -17,7 +16,7 @@ interface ChatEditorProps {
...
@@ -17,7 +16,7 @@ interface ChatEditorProps {
}
}
const
ChatEditorBase
:
React
.
FC
<
ChatEditorProps
&
WithAuthProps
>
=
({
checkAuth
,
onChange
,
onFocus
,
onSubmit
,
placeholders
})
=>
{
const
ChatEditorBase
:
React
.
FC
<
ChatEditorProps
&
WithAuthProps
>
=
({
checkAuth
,
onChange
,
onFocus
,
onSubmit
,
placeholders
})
=>
{
const
dispatch
=
useAppDispatch
()
//
const dispatch = useAppDispatch()
const
[
content
,
setContent
]
=
useState
(
''
)
const
[
content
,
setContent
]
=
useState
(
''
)
const
editorRef
=
useRef
<
HTMLDivElement
>
(
null
)
const
editorRef
=
useRef
<
HTMLDivElement
>
(
null
)
const
[
currentPlaceholder
,
setCurrentPlaceholder
]
=
useState
(
0
)
const
[
currentPlaceholder
,
setCurrentPlaceholder
]
=
useState
(
0
)
...
@@ -92,9 +91,10 @@ const ChatEditorBase: React.FC<ChatEditorProps & WithAuthProps> = ({ checkAuth,
...
@@ -92,9 +91,10 @@ const ChatEditorBase: React.FC<ChatEditorProps & WithAuthProps> = ({ checkAuth,
clearInterval
(
intervalRef
.
current
)
clearInterval
(
intervalRef
.
current
)
}
}
document
.
removeEventListener
(
'visibilitychange'
,
handleVisibilityChange
)
document
.
removeEventListener
(
'visibilitychange'
,
handleVisibilityChange
)
if
(
isAsking
)
{
// console.log(isAsking, 'isAskingisAsking')
dispatch
(
setIsAsking
(
false
))
// if (isAsking) {
}
// dispatch(setIsAsking(false))
// }
}
}
},
[
content
])
},
[
content
])
return
(
return
(
...
...
src/routes/RouteChangeHandler.tsx
View file @
0d3f9b0c
import
React
,
{
useEffect
}
from
'react'
import
React
,
{
useEffect
}
from
'react'
import
{
useLocation
,
useNavigate
}
from
'react-router-dom'
import
{
useLocation
,
useNavigate
}
from
'react-router-dom'
import
{
clearCurrentConversation
,
setCurrentConversation
}
from
'@/store/conversationSlice'
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
)
{
export
function
withRouteChangeHandler
(
WrappedComponent
:
React
.
ComponentType
)
{
let
beforeLocationPathName
=
''
return
(
props
:
any
)
=>
{
return
(
props
:
any
)
=>
{
const
isAsking
=
useAppSelector
((
state
:
RootState
)
=>
state
.
chat
.
isAsking
)
const
location
=
useLocation
()
const
location
=
useLocation
()
const
dispatch
=
useAppDispatch
()
const
dispatch
=
useAppDispatch
()
const
navigate
=
useNavigate
()
const
navigate
=
useNavigate
()
const
newPath
=
location
.
pathname
const
oldPath
=
beforeLocationPathName
useEffect
(()
=>
{
useEffect
(()
=>
{
if
(
isAsking
&&
newPath
!==
oldPath
&&
oldPath
!==
''
)
{
dispatch
(
setIsAsking
(
false
))
}
if
(
location
.
pathname
===
'/'
)
{
if
(
location
.
pathname
===
'/'
)
{
dispatch
(
clearCurrentConversation
())
dispatch
(
clearCurrentConversation
())
}
}
...
@@ -25,6 +36,7 @@ export function withRouteChangeHandler(WrappedComponent: React.ComponentType) {
...
@@ -25,6 +36,7 @@ export function withRouteChangeHandler(WrappedComponent: React.ComponentType) {
dispatch
(
setCurrentConversation
(
conversationId
))
dispatch
(
setCurrentConversation
(
conversationId
))
}
}
// 这里可以添加其他路由相关的逻辑
// 这里可以添加其他路由相关的逻辑
beforeLocationPathName
=
newPath
},
[
location
,
dispatch
])
},
[
location
,
dispatch
])
return
<
WrappedComponent
{
...
props
}
/>
return
<
WrappedComponent
{
...
props
}
/>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment