fix(learn): 과정 셀렉트를 학습 센터(/learn)에서만 노출
대시보드·과제·코딩 등 학습과 무관한 화면에서는 과정 셀렉트를 숨긴다. useLocation으로 /learn 경로에서만 렌더 — 도구는 쓰이는 자리에서만 보인다. 운영 검증: 대시보드에 셀렉트 없음, 학습 센터에서 노출·선택 유지 브라우저 확인. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
c5f875d990
commit
d8708caca5
@ -4,7 +4,7 @@
|
||||
// 학습 포인트: 코스 라우트는 여기 일일이 쓰지 않는다 — courseCatalog.jsx의 데이터를 .map으로 돌려
|
||||
// 자동 생성한다. 코스가 100개가 되어도 이 파일은 그대로다.
|
||||
import { Suspense } from 'react';
|
||||
import { Routes, Route, NavLink, Navigate, Outlet, useNavigate } from 'react-router-dom';
|
||||
import { Routes, Route, NavLink, Navigate, Outlet, useNavigate, useLocation } from 'react-router-dom';
|
||||
import { useAuth } from './AuthContext';
|
||||
import { ALL_COURSES } from './courseCatalog';
|
||||
import { LEVEL_COURSES } from './levelCatalog';
|
||||
@ -53,12 +53,20 @@ function RequireMentor() {
|
||||
return <Outlet />;
|
||||
}
|
||||
|
||||
// 과정(수습용/초급/중급/고급/특급) 선택 셀렉트 박스 — 헤더에 산다.
|
||||
// 학습 포인트: 바꾸는 순간 학습 센터로 이동한다 — "과정을 골랐으면 그 과정의 강좌를
|
||||
// 바로 보여 준다"가 자연스러운 기대이기 때문. 선택은 localStorage에 저장돼 유지된다.
|
||||
// 과정(수습용/초급/중급/고급/특급) 선택 셀렉트 박스 — 헤더에 살되,
|
||||
// 학습 센터 영역(/learn…)에 있을 때만 보인다.
|
||||
// 학습 포인트: 도구는 쓰이는 자리에서만 보여 준다 — 대시보드·과제 화면에서 과정 셀렉트는
|
||||
// 지금 하는 일과 무관한 소음이다(관련 없는 선택지는 치우는 게 UI의 배려).
|
||||
// 바꾸는 순간 학습 센터 허브로 이동하고, 선택은 localStorage에 저장돼 유지된다.
|
||||
function TrackSelect() {
|
||||
const { track, setTrack } = useTrack();
|
||||
const navigate = useNavigate();
|
||||
const location = useLocation();
|
||||
|
||||
// 학습 센터(/learn, /learn/코스, /learn/코스/quiz) 밖에서는 그리지 않는다.
|
||||
if (!location.pathname.startsWith('/learn')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
function onChange(e) {
|
||||
setTrack(e.target.value);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user