|
import React, { useEffect } from 'react'; |
|
import { useNavigate, useParams } from 'react-router-dom'; |
|
import { useRecoilState, useRecoilValue } from 'recoil'; |
|
|
|
import Messages from '../components/Messages'; |
|
import TextChat from '../components/Input'; |
|
|
|
import store from '~/store'; |
|
|
|
export default function Search() { |
|
const [searchQuery, setSearchQuery] = useRecoilState(store.searchQuery); |
|
const conversation = useRecoilValue(store.conversation); |
|
const { searchPlaceholderConversation } = store.useConversation(); |
|
const { query } = useParams(); |
|
const navigate = useNavigate(); |
|
|
|
|
|
useEffect(() => { |
|
if (conversation === null) { |
|
|
|
if (query) { |
|
|
|
searchPlaceholderConversation(); |
|
setSearchQuery(query); |
|
} else { |
|
navigate('/chat/new'); |
|
} |
|
} else if (conversation?.conversationId === 'search') { |
|
|
|
if (searchQuery !== query) { |
|
navigate(`/search/${searchQuery}`); |
|
} |
|
} else { |
|
|
|
navigate(`/chat/${conversation?.conversationId}`); |
|
} |
|
}, [conversation, query, searchQuery]); |
|
|
|
|
|
if (conversation?.conversationId !== 'search') { |
|
return null; |
|
} |
|
|
|
if (searchQuery !== query) { |
|
return null; |
|
} |
|
|
|
if (!query) { |
|
return null; |
|
} |
|
|
|
return ( |
|
<> |
|
<Messages isSearchView={true} /> |
|
<TextChat isSearchView={true} /> |
|
</> |
|
); |
|
} |
|
|