standardize all backbtns to use AppHeader widget
This commit is contained in:
parent
8b997644ab
commit
77ecacabf7
@ -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),
|
||||
|
@ -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),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
@ -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),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
@ -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),
|
||||
]);
|
||||
},
|
||||
),
|
||||
|
@ -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),
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -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,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user