gc-guide/src/pages/GuidePage.tsx
htlee 72a7655aa5 feat: 워크플로우 v1.5.0 기준 가이드 콘텐츠 최신화
- Claude Code 활용 가이드 신규 추가 (스킬 8종 + 에이전트 3종)
- 릴리즈 관리 가이드 신규 추가 (2계층 릴리즈 노트)
- 초기 환경 설정에 GITEA_TOKEN 설정 섹션 추가
- Git 워크플로우에 /push, /mr 스킬 추천 보강
- 프로젝트 시작하기 템플릿 파일 구조 v1.5.0 업데이트
- chat 봇 연동/디자인 시스템 섹션 임시 주석처리
- 팀 워크플로우 v1.5.0 동기화 (스킬, 에이전트, 규칙)
2026-03-01 17:59:33 +09:00

50 lines
1.8 KiB
TypeScript

import { lazy, Suspense, useEffect } from 'react';
import { useParams } from 'react-router';
import { api } from '../utils/api';
const CONTENT_MAP: Record<string, React.LazyExoticComponent<React.ComponentType>> = {
'env-intro': lazy(() => import('../content/DevEnvIntro')),
'initial-setup': lazy(() => import('../content/InitialSetup')),
'gitea-usage': lazy(() => import('../content/GiteaUsage')),
'git-workflow': lazy(() => import('../content/GitWorkflow')),
'starting-project': lazy(() => import('../content/StartingProject')),
'nexus-usage': lazy(() => import('../content/NexusUsage')),
'ci-cd': lazy(() => import('../content/CiCdGuide')),
'claude-code': lazy(() => import('../content/ClaudeCodeSkills')),
'release-mgmt': lazy(() => import('../content/ReleaseManagement')),
// 'chat-bot': lazy(() => import('../content/ChatBotIntegration')),
// 'design-system': lazy(() => import('../content/DesignSystem')),
};
export function GuidePage() {
const { section } = useParams<{ section: string }>();
const Content = section ? CONTENT_MAP[section] : null;
useEffect(() => {
if (section) {
api.post('/activity/track', { pagePath: `/dev/${section}` }).catch(() => {});
}
}, [section]);
if (!Content) {
return (
<div className="max-w-4xl mx-auto py-12 px-6">
<h1 className="text-3xl font-bold text-text-primary mb-4"> </h1>
<p className="text-text-secondary"> .</p>
</div>
);
}
return (
<Suspense
fallback={
<div className="flex items-center justify-center py-20">
<div className="animate-spin h-6 w-6 border-3 border-accent border-t-transparent rounded-full" />
</div>
}
>
<Content />
</Suspense>
);
}