import { useState } from "react"; import { postApi } from "../api/apiService"; import { useAuth } from "../context/AuthContext"; import Layout from "../components/common/Layout"; import FloatingActionButton from "../components/common/FloatingActionButton"; import PostingModal from "../components/modal/PostingModal"; const SearchIcon = () => ( ); const SearchPage = () => { const [searchTerm, setSearchTerm] = useState(""); const [searchResults, setSearchResults] = useState([]); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(""); const [isPostModalOpen, setIsPostModalOpen] = useState(false); const { isAuthenticated } = useAuth(); const handleSearchChange = (e) => { setSearchTerm(e.target.value); }; const handleSearch = async (e) => { e?.preventDefault(); if (!searchTerm.trim()) return; try { setIsLoading(true); setError(""); // 전체 포스트를 불러와서 username 기준으로 프론트에서 필터링 const response = await postApi.getPosts(); const filtered = (response.data || []).filter( (post) => post.username && post.username.toLowerCase().includes(searchTerm.trim().toLowerCase()) ); setSearchResults(filtered); } catch (error) { setError("An error occurred during search."); setSearchResults([]); } finally { setIsLoading(false); } }; const togglePostModal = () => { setIsPostModalOpen(!isPostModalOpen); }; return (

Search

{error &&
{error}
}
{searchResults.length > 0 ? ( <>
Search results for '{searchTerm}': {searchResults.length}
    {searchResults.map((post) => (
  • {post.username}
    {post.content}
  • ))}
{isLoading &&
Loading...
} ) : ( !isLoading && searchTerm && (
No search results found.
) )} {!searchTerm && !isLoading && (
Try searching for a user.
)}
{isAuthenticated && ( <> )}
); }; export default SearchPage;