From 55f3f503a3ddbeb9ae54a5a9213b4b0098fc9687 Mon Sep 17 00:00:00 2001 From: Sn-Kinos Date: Tue, 6 Oct 2026 04:03:51 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B0=84=ED=8E=B8=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=C2=B7=20=EC=84=B1=EC=9A=B4/=ED=96=89=EC=84=B1=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=EC=9D=84=20=EC=95=84=EB=9E=98=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=98=AC=EB=9D=BC=EC=98=A4=EB=8A=94=20=EC=A0=84?= =?UTF-8?q?=ED=99=98=EC=9C=BC=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/lib/core/ui/app_dialog.dart | 14 -------------- app/lib/core/ui/sheet_route.dart | 3 ++- app/lib/features/auth/login_screen.dart | 10 +++++----- app/lib/features/auth/onboarding_screens.dart | 3 ++- app/lib/features/galaxy/galaxy_home_screen.dart | 3 ++- app/lib/features/home/growth_complete_screen.dart | 4 +++- app/lib/features/home/home_screen.dart | 4 ++-- 7 files changed, 16 insertions(+), 25 deletions(-) diff --git a/app/lib/core/ui/app_dialog.dart b/app/lib/core/ui/app_dialog.dart index 2f98682..b4d311c 100644 --- a/app/lib/core/ui/app_dialog.dart +++ b/app/lib/core/ui/app_dialog.dart @@ -213,17 +213,3 @@ Future showAlertDialog( confirmLabel: confirmLabel ?? context.l10n.commonConfirm, ), ); - -/// 아래에서 올라오고 닫으면 아래로 내려가는 전체 화면 — Figma 설명 「닫기 버튼 클릭 시, 하단 -/// move out 페이지 종료」(`516:87382` 성운 생성 · `516:87457` 행성 생성 · `516:88164` 이클립스 상세). -/// 안드로이드 기본 전환(확대)과 iOS 기본 전환(옆으로)이 모두 이 동작이 아니라 따로 둔다. -Route slideUpRoute(WidgetBuilder builder) => PageRouteBuilder( - pageBuilder: (context, _, _) => builder(context), - transitionsBuilder: (_, animation, _, child) => SlideTransition( - position: Tween( - begin: const Offset(0, 1), - end: Offset.zero, - ).chain(CurveTween(curve: Curves.easeOutCubic)).animate(animation), - child: child, - ), -); diff --git a/app/lib/core/ui/sheet_route.dart b/app/lib/core/ui/sheet_route.dart index c506378..03b31f0 100644 --- a/app/lib/core/ui/sheet_route.dart +++ b/app/lib/core/ui/sheet_route.dart @@ -2,7 +2,8 @@ import 'package:flutter/material.dart'; /// 아래에서 올라와 아래로 닫히는 전체 화면 — Figma 설명 프레임의 「닫기 버튼 클릭 시, 하단 move out /// 페이지 종료 후 이전 화면 이동」(퀘스트 생성 `523:18123` · 위치 선택 `523:18207` · 신고하기 `548:21389` -/// · 이클립스 상세 `516:88158`). +/// · 이클립스 상세 `516:88158` · 성운 생성 `516:87382` · 행성 생성 `516:87457` · 간편 로그인 `510:86374`). +/// 이 전환은 앱에서 이 클래스 하나로만 만든다. /// /// `MaterialPageRoute(fullscreenDialog: true)` 는 iOS 에서만 아래로 내려간다(Android 는 기본 전환). /// 두 플랫폼 모두 같은 방향으로 움직이게 전환만 바꾼다. diff --git a/app/lib/features/auth/login_screen.dart b/app/lib/features/auth/login_screen.dart index 40e7068..7fa19a3 100644 --- a/app/lib/features/auth/login_screen.dart +++ b/app/lib/features/auth/login_screen.dart @@ -6,6 +6,7 @@ import '../../core/firebase/firebase_boot.dart'; import '../../core/i18n/app_locale.dart'; import '../../core/theme/tokens.dart'; import '../../core/ui/app_icons.dart'; +import '../../core/ui/sheet_route.dart'; import 'auth.dart'; import 'auth_repository.dart'; import 'signup_screens.dart'; @@ -101,9 +102,9 @@ class _LoginScreenState extends State { void _open({required bool signUp}) { Navigator.of(context).push( - MaterialPageRoute( - // 명세 `510:86374` 「닫기 — 아래 방향 Move Out 으로 이전 화면」 — 아래에서 올라오는 전체 화면. - fullscreenDialog: true, + // 명세 `510:86374` 「닫기 — 아래 방향 Move Out 으로 이전 화면」 — 아래에서 올라오는 전체 화면. + // fullscreenDialog 만으로는 Android 에서 페이드 · 확대로 열렸다(10/6 실기기 E-5). + SheetRoute( builder: (_) => SimpleLoginScreen(auth: widget.auth, signUp: signUp), ), ); @@ -248,8 +249,7 @@ class _SimpleLoginScreenState extends State { void _switchMode() { Navigator.of(context).pushReplacement( - MaterialPageRoute( - fullscreenDialog: true, + SheetRoute( builder: (_) => SimpleLoginScreen(auth: widget.auth, signUp: !widget.signUp), ), diff --git a/app/lib/features/auth/onboarding_screens.dart b/app/lib/features/auth/onboarding_screens.dart index 249bb21..ad402fd 100644 --- a/app/lib/features/auth/onboarding_screens.dart +++ b/app/lib/features/auth/onboarding_screens.dart @@ -5,6 +5,7 @@ import '../../core/i18n/app_locale.dart'; import '../../core/push/push_messaging.dart'; import '../../core/theme/tokens.dart'; import '../../core/ui/app_icons.dart'; +import '../../core/ui/sheet_route.dart'; import '../home/coach_mark.dart'; import '../home/home_data.dart'; import '../home/nebula_create_screen.dart'; @@ -259,7 +260,7 @@ class _OnboardingFlowState extends State { }), onCreateNebula: () async { final created = await Navigator.of(context).push( - MaterialPageRoute( + SheetRoute( builder: (_) => NebulaCreateScreen(repository: widget.home), ), ); diff --git a/app/lib/features/galaxy/galaxy_home_screen.dart b/app/lib/features/galaxy/galaxy_home_screen.dart index b4d05d6..c08a330 100644 --- a/app/lib/features/galaxy/galaxy_home_screen.dart +++ b/app/lib/features/galaxy/galaxy_home_screen.dart @@ -17,6 +17,7 @@ import '../../core/data/backend.dart' show BackendException; import '../home/nebula_create_screen.dart'; import '../planet/planet_detail_screen.dart'; import '../../core/i18n/app_locale.dart'; +import '../../core/ui/sheet_route.dart'; /// GALAXY 탭 루트 — 시안 `354:220228` Galaxy. /// @@ -116,7 +117,7 @@ class _GalaxyHomeScreenState extends State { } final myPop = snapshot.myPop; final fandomId = await navigator.push( - MaterialPageRoute( + SheetRoute( builder: (_) => NebulaCreateScreen(repository: widget.home, myPop: myPop), ), diff --git a/app/lib/features/home/growth_complete_screen.dart b/app/lib/features/home/growth_complete_screen.dart index 7be43a3..4b705a5 100644 --- a/app/lib/features/home/growth_complete_screen.dart +++ b/app/lib/features/home/growth_complete_screen.dart @@ -1,5 +1,7 @@ import 'package:flutter/material.dart'; +import '../../core/ui/sheet_route.dart'; + import 'home_data.dart'; import 'home_screen.dart' show HomeHeader; import 'planet_create_screen.dart'; @@ -65,7 +67,7 @@ class GrowthCompleteScreen extends StatelessWidget { growth: growth, fandomId: nebulaName, onBirth: () => Navigator.of(context).push( - MaterialPageRoute( + SheetRoute( builder: (_) => PlanetCreateScreen(nebulaName: nebulaName), ), ), diff --git a/app/lib/features/home/home_screen.dart b/app/lib/features/home/home_screen.dart index cc587ab..f3e2af5 100644 --- a/app/lib/features/home/home_screen.dart +++ b/app/lib/features/home/home_screen.dart @@ -16,7 +16,7 @@ import 'package:go_router/go_router.dart'; import '../../core/format.dart'; import '../../core/i18n/app_locale.dart'; import '../../core/theme/tokens.dart'; -import '../../core/ui/app_dialog.dart' show slideUpRoute; +import '../../core/ui/sheet_route.dart'; import '../../core/ui/app_icons.dart'; import '../../core/data/planet_visual_state.dart'; import '../../core/ui/live_stream.dart'; @@ -168,7 +168,7 @@ class _HomeScreenState extends State with WidgetsBindingObserver { final created = await Navigator.of( context, rootNavigator: true, - ).push(slideUpRoute((_) => screen)); + ).push(SheetRoute(builder: (_) => screen)); if (created == null || !mounted) return; if (widget.galaxyRepository case final repository?) { setState(() {