| import React, { useEffect } from 'react'; |
| import { useNavigate, useParams } from 'react-router-dom'; |
| import { useRecoilState, useRecoilValue } from 'recoil'; |
|
|
| import Messages from '~/components/Messages/Messages'; |
| import TextChat from '~/components/Input/TextChat'; |
|
|
| import { useConversation } from '~/hooks'; |
| import store from '~/store'; |
|
|
| export default function Search() { |
| const [searchQuery, setSearchQuery] = useRecoilState(store.searchQuery); |
| const conversation = useRecoilValue(store.conversation); |
| const { searchPlaceholderConversation } = 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} /> |
| </> |
| ); |
| } |
|
|