feat: 프론트엔드 프로젝트 우선 구조 재구성 (Phase 2-a)

- 데이터 계층 신설: types/project·useProject·project.store (프로젝트 CRUD·페이지네이션)
- useTask/useMember/useActivity 경로를 /projects/:projectId/... 로 전환
- task·my-task·activity 타입/스토어 repoId/repoName → projectId/projectName
- 알림 store 라우팅·문구 프로젝트화, 활동 타입 repo.linked/unlinked·project.* 반영
- 라우팅 /projects/... 전면 교체, / → /projects 리다이렉트
- 페이지 rename Repo*→Project* (List/Create/Detail/Settings/Members/Activity)
- ProjectCreatePage: Gitea 저장소 폼 → 단순 프로젝트 생성 폼으로 재작성
- RepoHeader→ProjectHeader, RepoTabs→ProjectTabs, AppShell 네비 프로젝트화
- 죽은 파일 삭제: repo.store·useRepo·GiteaRepoBar

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-20 19:37:51 +09:00
parent 6ba148314c
commit 7cd6676ef9
35 changed files with 886 additions and 1709 deletions
+6 -6
View File
@@ -18,8 +18,8 @@ const authStore = useAuthStore()
const agentOpen = ref(false)
// 현재 경로 기준으로 상단 네비 활성 항목을 판별
const activeNav = computed<'tasks' | 'repos'>(() =>
route.path.startsWith('/repos') ? 'repos' : 'tasks',
const activeNav = computed<'tasks' | 'projects'>(() =>
route.path.startsWith('/projects') ? 'projects' : 'tasks',
)
// 현재 로그인 사용자(프로필 아바타는 UserAvatar 가 이미지/placeholder 로 표시)
@@ -65,7 +65,7 @@ async function onLogout() {
<template>
<header class="topbar">
<RouterLink
to="/repos"
to="/projects"
class="brand"
>
<div class="logo">
@@ -82,10 +82,10 @@ async function onLogout() {
업무
</RouterLink>
<RouterLink
to="/repos"
:class="{ active: activeNav === 'repos' }"
to="/projects"
:class="{ active: activeNav === 'projects' }"
>
저장소
프로젝트
</RouterLink>
</nav>