generated from ttipo/project-base
feat(frontend): 설정 › 정보 › 업데이트 내역(목록 → 글)을 더한다
- 설정 메뉴 셋째 묶음 "정보", 목록은 게시판 표(줄 전체 링크 · [더 보기]), 글은 [← 목록으로] · 다음 글 · 이전 글 줄 · [목록] - 글을 보는 동안에도 메뉴 항목이 고른 상태다(aria-current 는 목록 page · 글 true) - 문서가 스크롤하는 좁은 폭에서도 글 · 목록이 맨 위부터 보이고(라우터 전역 scrollBehavior 없이), 위에 붙은 줄에 초점이 가리지 않는다 - 날짜는 달력 날짜 글이라 시간대를 거치지 않는다, /settings/info 는 목록으로 바꿔 끼운다 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -89,4 +89,18 @@ describe('router 가드', () => {
|
||||
await router.push('/login?redirect=/settings/account/two-factor')
|
||||
expect(router.currentRoute.value.fullPath).toBe('/settings/account/two-factor')
|
||||
})
|
||||
|
||||
// 업데이트 내역 (2026-11-10 — 디자인 README "업데이트 내역") — 목록 · 글 모두 탭 제목 "업데이트 내역"
|
||||
it('업데이트 내역의 목록 · 글은 로그인해야 열리고, 탭 제목은 둘 다 "업데이트 내역 · ARA SYSTEM"', async () => {
|
||||
installMockApi(() => ok(USER))
|
||||
useAuthStore().markAuthenticated(USER)
|
||||
|
||||
await router.push('/settings/info/release-notes')
|
||||
expect(router.currentRoute.value.name).toBe('settings-info-release-notes')
|
||||
expect(document.title).toBe('업데이트 내역 · ARA SYSTEM')
|
||||
|
||||
await router.push('/settings/info/release-notes/2026-11-18')
|
||||
expect(router.currentRoute.value.name).toBe('settings-info-release-note')
|
||||
expect(document.title).toBe('업데이트 내역 · ARA SYSTEM')
|
||||
})
|
||||
})
|
||||
|
||||
@@ -9,6 +9,7 @@ import {
|
||||
MOBILE_APP_ROUTE,
|
||||
MOBILE_APP_SETTINGS_TEXT,
|
||||
} from '@/shared/constants/mobile-app'
|
||||
import { RELEASE_NOTES_TEXT } from '@/shared/constants/release-notes'
|
||||
import { SETTINGS_ROUTES } from '@/shared/constants/settings-menu'
|
||||
import {
|
||||
MAIL_SCHEDULED_MESSAGE_ROUTE,
|
||||
@@ -112,7 +113,7 @@ export const routes: RouteRecordRaw[] = [
|
||||
},
|
||||
{
|
||||
// 설정 — 왼쪽 메뉴(계정 › 비밀번호 · 2단계 인증 · 앱 비밀번호 · 메일 프로그램 연결 · 휴대폰 앱 · 로그인 기록 / 메일 › 서명 · 부재중 자동 응답 · 필터 · 보내기 · 읽기 ·
|
||||
// 차단한 주소 · 대용량 첨부 · 알림) + 하위 화면. /settings 는 첫 메뉴(계정 › 비밀번호)로 바꿔 끼운다 (앱 레일의 "설정")
|
||||
// 차단한 주소 · 대용량 첨부 · 알림 / 정보 › 업데이트 내역) + 하위 화면. /settings 는 첫 메뉴(계정 › 비밀번호)로 바꿔 끼운다 (앱 레일의 "설정")
|
||||
path: '/settings',
|
||||
component: () => import('@/pages/settings/SettingsLayout.vue'),
|
||||
meta: { requiresAuth: true, title: '설정' },
|
||||
@@ -201,6 +202,29 @@ export const routes: RouteRecordRaw[] = [
|
||||
component: () => import('@/pages/settings/MailNotifyPage.vue'),
|
||||
meta: { title: '메일 알림' },
|
||||
},
|
||||
{
|
||||
// 업데이트 내역 (2026-11-10 — 디자인 README "업데이트 내역", 계약 7절) — 목록 /settings/info/release-notes · 글 /settings/info/release-notes/<글 id>.
|
||||
// 둘을 화면 없는 상위 라우트로 묶었다 — 글을 보는 동안에도 메뉴의 업데이트 내역이 고른 상태다(메뉴 링크가 목록 라우트 = 빈 하위 경로라
|
||||
// RouterLink 가 같은 상위의 다른 하위(글)도 고른 것으로 본다). 탭 제목은 둘 다 "업데이트 내역"
|
||||
path: 'info/release-notes',
|
||||
meta: { title: RELEASE_NOTES_TEXT.title },
|
||||
// 주소창에 …/release-notes/.. (%2E%2E 도)를 치면 브라우저가 /settings/info/ 로 다듬는다 — 아래 'info' 가 목록으로 바꿔 끼운다
|
||||
children: [
|
||||
{
|
||||
path: '',
|
||||
name: SETTINGS_ROUTES.releaseNotes,
|
||||
component: () => import('@/pages/settings/InfoReleaseNotesPage.vue'),
|
||||
},
|
||||
{
|
||||
path: ':id',
|
||||
name: SETTINGS_ROUTES.releaseNote,
|
||||
component: () => import('@/pages/settings/InfoReleaseNotePage.vue'),
|
||||
},
|
||||
],
|
||||
},
|
||||
// /settings/info — 정보 묶음의 화면은 업데이트 내역 하나라 목록으로 바꿔 끼운다(글 주소의 ".." 를 브라우저가 다듬은 주소이기도 하다).
|
||||
// 다른 묶음의 주소(/settings/account · /settings/mail)는 그대로다
|
||||
{ path: 'info', redirect: { name: SETTINGS_ROUTES.releaseNotes } },
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user