From 433ef12cc3e55b667cd1cc64e2d8cb6be70b9c9d Mon Sep 17 00:00:00 2001 From: ttipo Date: Sun, 8 Nov 2026 23:29:04 +0900 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=E2=80=BA=20=ED=9C=B4=EB=8C=80=ED=8F=B0=20=EC=95=B1=EA=B3=BC=20?= =?UTF-8?q?=ED=9C=B4=EB=8C=80=ED=8F=B0=20=EB=B0=9B=EA=B8=B0=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20/app=20=EC=9D=84=20=EB=8D=94=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 확정 보드 SettingsMobileApp 대로 PC 에서는 QR 로 휴대폰에 넘기고, 셸 밖 /app(로그인 필요)에서 휴대폰으로 받는다. 내려받기 전에 세션을 확인하고, 올린 판이 없으면(404 RES_001) 알림 없이 안내와 문의 줄을 보인다. Co-Authored-By: Claude Opus 5.5 --- frontend/src/components/QrCodeImage.vue | 4 +- .../src/components/auth/LoginSupportLine.vue | 13 +- .../mobile-app/MobileAppDownloadLink.vue | 96 +++++ .../components/mobile-app/MobileAppIcon.vue | 40 ++ .../mobile-app/MobileAppIphoneNote.vue | 62 +++ .../components/mobile-app/MobileAppSteps.vue | 65 +++ frontend/src/composables/useAppReleases.ts | 40 ++ frontend/src/pages/LoginPage.spec.ts | 10 + .../pages/mobile-app/MobileAppPage.spec.ts | 202 +++++++++ .../src/pages/mobile-app/MobileAppPage.vue | 398 ++++++++++++++++++ .../settings/AccountMobileAppPage.spec.ts | 278 ++++++++++++ .../pages/settings/AccountMobileAppPage.vue | 383 +++++++++++++++++ .../src/pages/settings/SettingsLayout.spec.ts | 26 +- frontend/src/router/index.spec.ts | 24 ++ frontend/src/router/routes.ts | 24 +- frontend/src/shared/constants/mobile-app.ts | 93 ++++ .../src/shared/constants/settings-menu.ts | 9 +- frontend/src/shared/types/app-release.ts | 12 + frontend/src/shared/utils/app-release.spec.ts | 86 ++++ frontend/src/shared/utils/app-release.ts | 61 +++ frontend/src/stores/app-release.store.spec.ts | 146 +++++++ frontend/src/stores/app-release.store.ts | 70 +++ frontend/src/styles/tokens.css | 1 + frontend/src/test-utils/router.ts | 8 + 24 files changed, 2141 insertions(+), 10 deletions(-) create mode 100644 frontend/src/components/mobile-app/MobileAppDownloadLink.vue create mode 100644 frontend/src/components/mobile-app/MobileAppIcon.vue create mode 100644 frontend/src/components/mobile-app/MobileAppIphoneNote.vue create mode 100644 frontend/src/components/mobile-app/MobileAppSteps.vue create mode 100644 frontend/src/composables/useAppReleases.ts create mode 100644 frontend/src/pages/mobile-app/MobileAppPage.spec.ts create mode 100644 frontend/src/pages/mobile-app/MobileAppPage.vue create mode 100644 frontend/src/pages/settings/AccountMobileAppPage.spec.ts create mode 100644 frontend/src/pages/settings/AccountMobileAppPage.vue create mode 100644 frontend/src/shared/constants/mobile-app.ts create mode 100644 frontend/src/shared/types/app-release.ts create mode 100644 frontend/src/shared/utils/app-release.spec.ts create mode 100644 frontend/src/shared/utils/app-release.ts create mode 100644 frontend/src/stores/app-release.store.spec.ts create mode 100644 frontend/src/stores/app-release.store.ts diff --git a/frontend/src/components/QrCodeImage.vue b/frontend/src/components/QrCodeImage.vue index 6e212cc..54c9fb3 100644 --- a/frontend/src/components/QrCodeImage.vue +++ b/frontend/src/components/QrCodeImage.vue @@ -1,5 +1,5 @@