feat: 프로젝트 저장소 연동 UI + 화면 문구 정리 (Phase 2b)
- useRepo 복구(프로젝트 종속 /projects/:projectId/repos): list/meta/checkName/create/remove - types/repo ApiRepo 를 새 RepoResponse 와 정합(projectId 추가, members/counts 제거) - ProjectTabs 에 '저장소' 탭(repoCount) 추가, 4개 페이지 repo-count 전달 - ProjectReposPage 신설(/projects/:id/repos): 연동 저장소 목록 + 연동(생성) 폼 (slug 가용성 디바운스 체크·템플릿 옵션) + Gitea 열기 + 연동 해제(admin) - 화면 잔여 '저장소' 문구를 '프로젝트'로 정리(crumb/설정/멤버 모달/주석/not-found) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
<script setup lang="ts">
|
||||
// 저장소 서브탭 — 업무/멤버/활동/설정
|
||||
// 프로젝트 서브탭 — 업무/멤버/저장소/활동/설정
|
||||
import { RouterLink } from 'vue-router'
|
||||
|
||||
interface Props {
|
||||
projectId: string
|
||||
active: 'tasks' | 'members' | 'activity' | 'settings'
|
||||
active: 'tasks' | 'members' | 'repos' | 'activity' | 'settings'
|
||||
taskCount: number
|
||||
memberCount: number
|
||||
repoCount: number
|
||||
/** 설정 탭 노출 여부(관리자만). 기본 false — 권한이 확인된 경우에만 노출 */
|
||||
canManage?: boolean
|
||||
}
|
||||
@@ -27,6 +28,12 @@ defineProps<Props>()
|
||||
>
|
||||
<span class="tb-label">멤버</span> <span class="tb-count">{{ memberCount }}</span>
|
||||
</RouterLink>
|
||||
<RouterLink
|
||||
:to="`/projects/${projectId}/repos`"
|
||||
:class="{ active: active === 'repos' }"
|
||||
>
|
||||
<span class="tb-label">저장소</span> <span class="tb-count">{{ repoCount }}</span>
|
||||
</RouterLink>
|
||||
<RouterLink
|
||||
:to="`/projects/${projectId}/activity`"
|
||||
:class="{ active: active === 'activity' }"
|
||||
|
||||
Reference in New Issue
Block a user