standardize all backbtns to use AppHeader widget

This commit is contained in:
Shawn 2022-12-22 10:36:46 -07:00
parent 8b997644ab
commit 77ecacabf7
8 changed files with 30 additions and 29 deletions

View File

@ -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),

View File

@ -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),
],
);
}

View File

@ -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<FullscreenUrlImgViewer> {
child: Stack(
children: [
Positioned.fill(child: content),
BackBtn.close(onPressed: _handleBackPressed).safe(),
AppHeader(onBack: _handleBackPressed, isTransparent: true),
],
),
);

View File

@ -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<ArtifactDetailsScreen> {
return Stack(children: [
content,
BackBtn().safe(),
AppHeader(isTransparent: true),
]);
},
),

View File

@ -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),
]);
}

View File

@ -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<HomeScreen> 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,
),
),
),

View File

@ -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<HomeMenu> {
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

View File

@ -134,7 +134,6 @@ class _PhotoGalleryState extends State<PhotoGallery> {
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);