diff --git a/frontend/src/assets/img/img_landing_episode.png b/frontend/src/assets/img/img_landing_episode.png index bc014556..dd3e0fbe 100644 Binary files a/frontend/src/assets/img/img_landing_episode.png and b/frontend/src/assets/img/img_landing_episode.png differ diff --git a/frontend/src/assets/img/img_landing_mindmap.png b/frontend/src/assets/img/img_landing_mindmap.png index 7950d794..be534d61 100644 Binary files a/frontend/src/assets/img/img_landing_mindmap.png and b/frontend/src/assets/img/img_landing_mindmap.png differ diff --git a/frontend/src/assets/img/img_landing_selftest.png b/frontend/src/assets/img/img_landing_selftest.png index aee3bb90..6dd1c79e 100644 Binary files a/frontend/src/assets/img/img_landing_selftest.png and b/frontend/src/assets/img/img_landing_selftest.png differ diff --git a/frontend/src/features/landing/components/LandingInfo.tsx b/frontend/src/features/landing/components/LandingInfo.tsx new file mode 100644 index 00000000..b33c2db7 --- /dev/null +++ b/frontend/src/features/landing/components/LandingInfo.tsx @@ -0,0 +1,34 @@ +import { ComponentPropsWithoutRef } from "react"; + +import landingEpisode from "@/assets/img/img_landing_episode.png"; +import landingMain from "@/assets/img/img_landing_main.png"; +import landingMindmap from "@/assets/img/img_landing_mindmap.png"; +import landingSelfTest from "@/assets/img/img_landing_selftest.png"; +import { exhaustiveCheck } from "@/utils/exhaustive_check"; + +type LandingInfoType = "episode" | "main" | "mindmap" | "self_test"; +type Props = ComponentPropsWithoutRef<"img"> & { + name: LandingInfoType; +}; + +const LandingInfo = ({ name, ...rest }: Props) => { + return ; +}; + +export default LandingInfo; + +const getLandingInfo = (type: LandingInfoType) => { + switch (type) { + case "episode": + return landingEpisode; + case "main": + return landingMain; + case "mindmap": + return landingMindmap; + case "self_test": + return landingSelfTest; + + default: + exhaustiveCheck(`${type}의 landing info 는 올바르지 않습니다.`); + } +}; diff --git a/frontend/src/features/landing/pages/LandingPage.tsx b/frontend/src/features/landing/pages/LandingPage.tsx index 752d641c..70287b4b 100644 --- a/frontend/src/features/landing/pages/LandingPage.tsx +++ b/frontend/src/features/landing/pages/LandingPage.tsx @@ -2,6 +2,7 @@ import { useCallback, useEffect, useRef, useState } from "react"; import { Link } from "react-router"; import { useAuth } from "@/features/auth/hooks/useAuth"; +import LandingInfo from "@/features/landing/components/LandingInfo"; import Button from "@/shared/components/button/Button"; import CallToActionButton from "@/shared/components/call_to_action_button/CallToActionButton"; import GlobalNavigationBar from "@/shared/components/global_navigation_bar/GlobalNavigationBar"; @@ -94,12 +95,10 @@ const LandingPage = () => { return prev.intersectionRatio >= cur.intersectionRatio ? prev : cur; }); - const key = (best.target as HTMLElement).dataset.section as FocusKey | undefined; - if (!key) { - return; + const key = (best.target as HTMLElement).dataset.section; + if (key === "mindmap" || key === "self_diagnosis" || key === "episode_archive") { + setFocused((prev) => (prev === key ? prev : key)); } - - setFocused((prev) => (prev === key ? prev : key)); }, { root, @@ -189,11 +188,11 @@ const LandingPage = () => {
- {/* */} + />
@@ -211,11 +210,11 @@ const LandingPage = () => {
- {/* */} + />

마인드맵

@@ -296,12 +295,12 @@ const LandingPage = () => {
- {/* + */} + />
@@ -319,11 +318,11 @@ const LandingPage = () => {
- {/* */} + />

에피소드 보관함