diff --git a/src/Main/MainPage.tsx b/src/Main/MainPage.tsx index bfa17e6..979e972 100644 --- a/src/Main/MainPage.tsx +++ b/src/Main/MainPage.tsx @@ -9,7 +9,7 @@ import UnauthorizedAccess from "./components/UnauthorizedAccess"; function MainPage(): JSX.Element { const [isLoggedIn, setIsLoggedIn] = useState(false); - const [activeTab, setActiveTab] = useState("추천 콘텐츠"); + const [activeTab, setActiveTab] = useState("랜덤 콘텐츠"); const navigate = useNavigate(); useEffect(() => { diff --git a/src/Main/components/NavBar.tsx b/src/Main/components/NavBar.tsx index f9b3c15..a199c1c 100644 --- a/src/Main/components/NavBar.tsx +++ b/src/Main/components/NavBar.tsx @@ -56,22 +56,23 @@ const NavBar = ({ cursor="pointer" fontSize={["sm", "md", "lg"]} fontWeight="bold" - color={activeTab === "추천 콘텐츠" ? "black" : "teal.500"} - borderBottom={activeTab === "추천 콘텐츠" ? "2px solid teal" : "none"} - onClick={() => setActiveTab("추천 콘텐츠")} + color={activeTab === "랜덤 콘텐츠" ? "black" : "teal.500"} + borderBottom={activeTab === "랜덤 콘텐츠" ? "2px solid teal" : "none"} + onClick={() => setActiveTab("랜덤 콘텐츠")} > - 추천 콘텐츠 + 랜덤 콘텐츠 setActiveTab("랜덤 콘텐츠")} + color={activeTab === "추천 콘텐츠" ? "black" : "teal.500"} + borderBottom={activeTab === "추천 콘텐츠" ? "2px solid teal" : "none"} + onClick={() => setActiveTab("추천 콘텐츠")} > - 랜덤 콘텐츠 + 추천 콘텐츠 + (null); const { isOpen, onOpen, onClose } = useDisclosure(); - useEffect(() => { - const fetchRandomContents = async () => { - setIsLoading(true); - try { - const response = await api.get("/api/random/10"); - const contents = response.data.map( - (item: { content: Content }) => item.content - ); - setRandomContents(contents); - } catch (error) { - console.error("랜덤 콘텐츠를 가져오는 중 오류 발생:", error); - } finally { - setIsLoading(false); - } - }; + const fetchRandomContents = async () => { + setIsLoading(true); + try { + const response = await api.get("/api/random/10"); + const contents = response.data.map( + (item: { content: Content }) => item.content + ); + setRandomContents(contents); + } catch (error) { + console.error("랜덤 콘텐츠를 가져오는 중 오류 발생:", error); + } finally { + setIsLoading(false); + } + }; - fetchRandomContents(); + useEffect(() => { + fetchRandomContents(); // 컴포넌트 로드 시 첫 호출 }, []); const handleCardClick = (content: Content) => { @@ -60,6 +62,33 @@ function RandomContents(): JSX.Element { return ( + {/* 새로고침 버튼 및 안내 문구 */} + + + 랜덤으로 콘텐츠를 10개 추천해드립니다. 마음에 드는 콘텐츠가 없다면 + 새로고침 해보세요! + + + + {isLoading ? ( (false); // 모달 상태 const categoryLabels: { [key: string]: string } = { - similarCastFromLikes: "🎭 좋아요한 콘텐츠와 출연진 유사", - similarGenreFromLikes: "🎬 좋아요한 콘텐츠와 장르 유사", - sameDirectorFromLikes: "🎥 좋아요한 콘텐츠와 감독 동일", - similarCastFromWatchHistory: "🌟 시청한 콘텐츠와 출연진 유사", - similarGenreFromWatchHistory: "📽️ 시청한 콘텐츠와 장르 유사", - sameDirectorFromWatchHistory: "🎞️ 시청한 콘텐츠와 감독 동일", + similarCastFromLikes: "🎭 좋아요한 콘텐츠와 출연진 유사한 콘텐츠 TOP 10", + similarGenreFromLikes: "🎬 좋아요한 콘텐츠와 장르 유사한 콘텐츠 TOP 10", + sameDirectorFromLikes: "🎥 좋아요한 콘텐츠와 감독 동일한 콘텐츠 TOP 10", + similarCastFromWatchHistory: + "🌟 시청한 콘텐츠와 출연진 유사한 콘텐츠 TOP 10", + similarGenreFromWatchHistory: + "📽️ 시청한 콘텐츠와 장르 유사한 콘텐츠 TOP 10", + sameDirectorFromWatchHistory: + "🎞️ 시청한 콘텐츠와 감독 동일한 콘텐츠 TOP 10", }; useEffect(() => { @@ -93,7 +96,7 @@ function RecommendedContents(): JSX.Element { {/* 카테고리 제목 */}