From 77ecacabf799a146aa97a00bd0cd4dfec93e8d8d Mon Sep 17 00:00:00 2001 From: Shawn Date: Thu, 22 Dec 2022 10:36:46 -0700 Subject: [PATCH] standardize all backbtns to use AppHeader widget --- lib/ui/common/controls/app_header.dart | 14 +++++++++++-- .../common/modals/fullscreen_maps_viewer.dart | 3 ++- .../modals/fullscreen_url_img_viewer.dart | 3 ++- .../artifact_details_screen.dart | 3 ++- .../collectible_found_screen.dart | 3 ++- lib/ui/screens/home/wonders_home_screen.dart | 12 +++++------ lib/ui/screens/home_menu/home_menu.dart | 20 ++++--------------- .../screens/photo_gallery/photo_gallery.dart | 1 - 8 files changed, 30 insertions(+), 29 deletions(-) diff --git a/lib/ui/common/controls/app_header.dart b/lib/ui/common/controls/app_header.dart index eabb6565..1fbf5db2 100644 --- a/lib/ui/common/controls/app_header.dart +++ b/lib/ui/common/controls/app_header.dart @@ -1,4 +1,5 @@ import 'package:wonders/common_libs.dart'; +import 'package:wonders/ui/common/app_icons.dart'; class AppHeader extends StatelessWidget { const AppHeader( @@ -8,11 +9,15 @@ class AppHeader extends StatelessWidget { this.showBackBtn = true, this.isTransparent = false, this.onBack, - this.trailing}) + this.trailing, + this.backIcon = AppIcons.prev, + this.backBtnSemantics}) : super(key: key); final String? title; final String? subtitle; final bool showBackBtn; + final AppIcons backIcon; + final String? backBtnSemantics; final bool isTransparent; final VoidCallback? onBack; final Widget Function(BuildContext context)? trailing; @@ -31,7 +36,12 @@ class AppHeader extends StatelessWidget { child: Center( child: Row(children: [ Gap($styles.insets.sm), - if (showBackBtn) BackBtn(onPressed: onBack), + if (showBackBtn) + BackBtn( + onPressed: onBack, + icon: backIcon, + semanticLabel: backBtnSemantics, + ), Spacer(), if (trailing != null) trailing!.call(context), Gap($styles.insets.sm), diff --git a/lib/ui/common/modals/fullscreen_maps_viewer.dart b/lib/ui/common/modals/fullscreen_maps_viewer.dart index a076277c..595860de 100644 --- a/lib/ui/common/modals/fullscreen_maps_viewer.dart +++ b/lib/ui/common/modals/fullscreen_maps_viewer.dart @@ -1,6 +1,7 @@ import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:wonders/common_libs.dart'; import 'package:wonders/logic/data/wonder_data.dart'; +import 'package:wonders/ui/common/controls/app_header.dart'; import 'package:wonders/ui/common/google_maps_marker.dart'; class FullscreenMapsViewer extends StatelessWidget { @@ -20,7 +21,7 @@ class FullscreenMapsViewer extends StatelessWidget { initialCameraPosition: startPos, myLocationButtonEnabled: false, ), - BackBtn().safe(), + AppHeader(isTransparent: true), ], ); } diff --git a/lib/ui/common/modals/fullscreen_url_img_viewer.dart b/lib/ui/common/modals/fullscreen_url_img_viewer.dart index 5e5571cc..29ee5351 100644 --- a/lib/ui/common/modals/fullscreen_url_img_viewer.dart +++ b/lib/ui/common/modals/fullscreen_url_img_viewer.dart @@ -1,4 +1,5 @@ import 'package:wonders/common_libs.dart'; +import 'package:wonders/ui/common/controls/app_header.dart'; import 'package:wonders/ui/common/utils/app_haptics.dart'; class FullscreenUrlImgViewer extends StatefulWidget { @@ -52,7 +53,7 @@ class _FullscreenUrlImgViewerState extends State { child: Stack( children: [ Positioned.fill(child: content), - BackBtn.close(onPressed: _handleBackPressed).safe(), + AppHeader(onBack: _handleBackPressed, isTransparent: true), ], ), ); diff --git a/lib/ui/screens/artifact/artifact_details/artifact_details_screen.dart b/lib/ui/screens/artifact/artifact_details/artifact_details_screen.dart index a94006a0..2b3df379 100644 --- a/lib/ui/screens/artifact/artifact_details/artifact_details_screen.dart +++ b/lib/ui/screens/artifact/artifact_details/artifact_details_screen.dart @@ -1,6 +1,7 @@ import 'package:wonders/common_libs.dart'; import 'package:wonders/logic/data/artifact_data.dart'; import 'package:wonders/ui/common/compass_divider.dart'; +import 'package:wonders/ui/common/controls/app_header.dart'; import 'package:wonders/ui/common/controls/app_loading_indicator.dart'; import 'package:wonders/ui/common/gradient_container.dart'; import 'package:wonders/ui/common/modals/fullscreen_url_img_viewer.dart'; @@ -56,7 +57,7 @@ class _ArtifactDetailsScreenState extends State { return Stack(children: [ content, - BackBtn().safe(), + AppHeader(isTransparent: true), ]); }, ), diff --git a/lib/ui/screens/collectible_found/collectible_found_screen.dart b/lib/ui/screens/collectible_found/collectible_found_screen.dart index 93ac4324..3a968667 100644 --- a/lib/ui/screens/collectible_found/collectible_found_screen.dart +++ b/lib/ui/screens/collectible_found/collectible_found_screen.dart @@ -3,6 +3,7 @@ import 'package:wonders/common_libs.dart'; import 'package:wonders/logic/data/collectible_data.dart'; import 'package:wonders/ui/common/app_backdrop.dart'; import 'package:wonders/ui/common/centered_box.dart'; +import 'package:wonders/ui/common/controls/app_header.dart'; import 'package:wonders/ui/common/pop_navigator_underlay.dart'; part 'widgets/_animated_ribbon.dart'; @@ -91,7 +92,7 @@ class CollectibleFoundScreen extends StatelessWidget { ), ), ), - BackBtn.close().safe().animate().fade(delay: t * 4, duration: t * 2), + AppHeader(isTransparent: true).animate().fade(delay: t * 4, duration: t * 2), ]); } diff --git a/lib/ui/screens/home/wonders_home_screen.dart b/lib/ui/screens/home/wonders_home_screen.dart index ae18cbb3..9008358c 100644 --- a/lib/ui/screens/home/wonders_home_screen.dart +++ b/lib/ui/screens/home/wonders_home_screen.dart @@ -1,6 +1,7 @@ import 'package:wonders/common_libs.dart'; import 'package:wonders/logic/data/wonder_data.dart'; import 'package:wonders/ui/common/app_icons.dart'; +import 'package:wonders/ui/common/controls/app_header.dart'; import 'package:wonders/ui/common/controls/app_page_indicator.dart'; import 'package:wonders/ui/common/gradient_container.dart'; import 'package:wonders/ui/common/themed_text.dart'; @@ -324,12 +325,11 @@ class _HomeScreenState extends State with SingleTickerProviderStateM child: AnimatedOpacity( duration: $styles.times.fast, opacity: _isMenuOpen ? 0 : 1, - child: MergeSemantics( - child: CircleIconBtn( - icon: AppIcons.menu, - onPressed: _handleOpenMenuPressed, - semanticLabel: $strings.homeSemanticOpenMain, - ).safe(), + child: AppHeader( + backIcon: AppIcons.menu, + backBtnSemantics: $strings.homeSemanticOpenMain, + onBack: _handleOpenMenuPressed, + isTransparent: true, ), ), ), diff --git a/lib/ui/screens/home_menu/home_menu.dart b/lib/ui/screens/home_menu/home_menu.dart index 603b33b4..5f688250 100644 --- a/lib/ui/screens/home_menu/home_menu.dart +++ b/lib/ui/screens/home_menu/home_menu.dart @@ -4,6 +4,7 @@ import 'package:wonders/common_libs.dart'; import 'package:wonders/logic/data/wonder_data.dart'; import 'package:wonders/ui/common/app_backdrop.dart'; import 'package:wonders/ui/common/app_icons.dart'; +import 'package:wonders/ui/common/controls/app_header.dart'; import 'package:wonders/ui/common/controls/locale_switcher.dart'; import 'package:wonders/ui/common/pop_navigator_underlay.dart'; import 'package:wonders/ui/screens/home_menu/about_dialog_content.dart'; @@ -58,22 +59,9 @@ class _HomeMenuState extends State { PopNavigatorUnderlay(), - SafeArea( - child: PaddedRow( - padding: EdgeInsets.symmetric( - horizontal: $styles.insets.md, - vertical: $styles.insets.sm, - ), - children: [ - /// Back btn - BackBtn.close( - bgColor: Colors.transparent, - iconColor: $styles.colors.offWhite, - ), - Spacer(), - LocaleSwitcher() - ], - ), + AppHeader( + isTransparent: true, + trailing: (_) => LocaleSwitcher(), ), /// Content diff --git a/lib/ui/screens/photo_gallery/photo_gallery.dart b/lib/ui/screens/photo_gallery/photo_gallery.dart index bb728ee6..ee8c22e7 100644 --- a/lib/ui/screens/photo_gallery/photo_gallery.dart +++ b/lib/ui/screens/photo_gallery/photo_gallery.dart @@ -134,7 +134,6 @@ class _PhotoGalleryState extends State { if (value.isEmpty) { return Center(child: AppLoadingIndicator()); } - Size imgSize = context.isLandscape ? Size(context.widthPx * .5, context.heightPx * .66) : Size(context.widthPx * .66, context.heightPx * .5);