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/common_libs.dart';
|
||||||
|
import 'package:wonders/ui/common/app_icons.dart';
|
||||||
|
|
||||||
class AppHeader extends StatelessWidget {
|
class AppHeader extends StatelessWidget {
|
||||||
const AppHeader(
|
const AppHeader(
|
||||||
@ -8,11 +9,15 @@ class AppHeader extends StatelessWidget {
|
|||||||
this.showBackBtn = true,
|
this.showBackBtn = true,
|
||||||
this.isTransparent = false,
|
this.isTransparent = false,
|
||||||
this.onBack,
|
this.onBack,
|
||||||
this.trailing})
|
this.trailing,
|
||||||
|
this.backIcon = AppIcons.prev,
|
||||||
|
this.backBtnSemantics})
|
||||||
: super(key: key);
|
: super(key: key);
|
||||||
final String? title;
|
final String? title;
|
||||||
final String? subtitle;
|
final String? subtitle;
|
||||||
final bool showBackBtn;
|
final bool showBackBtn;
|
||||||
|
final AppIcons backIcon;
|
||||||
|
final String? backBtnSemantics;
|
||||||
final bool isTransparent;
|
final bool isTransparent;
|
||||||
final VoidCallback? onBack;
|
final VoidCallback? onBack;
|
||||||
final Widget Function(BuildContext context)? trailing;
|
final Widget Function(BuildContext context)? trailing;
|
||||||
@ -31,7 +36,12 @@ class AppHeader extends StatelessWidget {
|
|||||||
child: Center(
|
child: Center(
|
||||||
child: Row(children: [
|
child: Row(children: [
|
||||||
Gap($styles.insets.sm),
|
Gap($styles.insets.sm),
|
||||||
if (showBackBtn) BackBtn(onPressed: onBack),
|
if (showBackBtn)
|
||||||
|
BackBtn(
|
||||||
|
onPressed: onBack,
|
||||||
|
icon: backIcon,
|
||||||
|
semanticLabel: backBtnSemantics,
|
||||||
|
),
|
||||||
Spacer(),
|
Spacer(),
|
||||||
if (trailing != null) trailing!.call(context),
|
if (trailing != null) trailing!.call(context),
|
||||||
Gap($styles.insets.sm),
|
Gap($styles.insets.sm),
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||||
import 'package:wonders/common_libs.dart';
|
import 'package:wonders/common_libs.dart';
|
||||||
import 'package:wonders/logic/data/wonder_data.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';
|
import 'package:wonders/ui/common/google_maps_marker.dart';
|
||||||
|
|
||||||
class FullscreenMapsViewer extends StatelessWidget {
|
class FullscreenMapsViewer extends StatelessWidget {
|
||||||
@ -20,7 +21,7 @@ class FullscreenMapsViewer extends StatelessWidget {
|
|||||||
initialCameraPosition: startPos,
|
initialCameraPosition: startPos,
|
||||||
myLocationButtonEnabled: false,
|
myLocationButtonEnabled: false,
|
||||||
),
|
),
|
||||||
BackBtn().safe(),
|
AppHeader(isTransparent: true),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:wonders/common_libs.dart';
|
import 'package:wonders/common_libs.dart';
|
||||||
|
import 'package:wonders/ui/common/controls/app_header.dart';
|
||||||
import 'package:wonders/ui/common/utils/app_haptics.dart';
|
import 'package:wonders/ui/common/utils/app_haptics.dart';
|
||||||
|
|
||||||
class FullscreenUrlImgViewer extends StatefulWidget {
|
class FullscreenUrlImgViewer extends StatefulWidget {
|
||||||
@ -52,7 +53,7 @@ class _FullscreenUrlImgViewerState extends State<FullscreenUrlImgViewer> {
|
|||||||
child: Stack(
|
child: Stack(
|
||||||
children: [
|
children: [
|
||||||
Positioned.fill(child: content),
|
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/common_libs.dart';
|
||||||
import 'package:wonders/logic/data/artifact_data.dart';
|
import 'package:wonders/logic/data/artifact_data.dart';
|
||||||
import 'package:wonders/ui/common/compass_divider.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/controls/app_loading_indicator.dart';
|
||||||
import 'package:wonders/ui/common/gradient_container.dart';
|
import 'package:wonders/ui/common/gradient_container.dart';
|
||||||
import 'package:wonders/ui/common/modals/fullscreen_url_img_viewer.dart';
|
import 'package:wonders/ui/common/modals/fullscreen_url_img_viewer.dart';
|
||||||
@ -56,7 +57,7 @@ class _ArtifactDetailsScreenState extends State<ArtifactDetailsScreen> {
|
|||||||
|
|
||||||
return Stack(children: [
|
return Stack(children: [
|
||||||
content,
|
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/logic/data/collectible_data.dart';
|
||||||
import 'package:wonders/ui/common/app_backdrop.dart';
|
import 'package:wonders/ui/common/app_backdrop.dart';
|
||||||
import 'package:wonders/ui/common/centered_box.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';
|
import 'package:wonders/ui/common/pop_navigator_underlay.dart';
|
||||||
|
|
||||||
part 'widgets/_animated_ribbon.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/common_libs.dart';
|
||||||
import 'package:wonders/logic/data/wonder_data.dart';
|
import 'package:wonders/logic/data/wonder_data.dart';
|
||||||
import 'package:wonders/ui/common/app_icons.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/controls/app_page_indicator.dart';
|
||||||
import 'package:wonders/ui/common/gradient_container.dart';
|
import 'package:wonders/ui/common/gradient_container.dart';
|
||||||
import 'package:wonders/ui/common/themed_text.dart';
|
import 'package:wonders/ui/common/themed_text.dart';
|
||||||
@ -324,12 +325,11 @@ class _HomeScreenState extends State<HomeScreen> with SingleTickerProviderStateM
|
|||||||
child: AnimatedOpacity(
|
child: AnimatedOpacity(
|
||||||
duration: $styles.times.fast,
|
duration: $styles.times.fast,
|
||||||
opacity: _isMenuOpen ? 0 : 1,
|
opacity: _isMenuOpen ? 0 : 1,
|
||||||
child: MergeSemantics(
|
child: AppHeader(
|
||||||
child: CircleIconBtn(
|
backIcon: AppIcons.menu,
|
||||||
icon: AppIcons.menu,
|
backBtnSemantics: $strings.homeSemanticOpenMain,
|
||||||
onPressed: _handleOpenMenuPressed,
|
onBack: _handleOpenMenuPressed,
|
||||||
semanticLabel: $strings.homeSemanticOpenMain,
|
isTransparent: true,
|
||||||
).safe(),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -4,6 +4,7 @@ import 'package:wonders/common_libs.dart';
|
|||||||
import 'package:wonders/logic/data/wonder_data.dart';
|
import 'package:wonders/logic/data/wonder_data.dart';
|
||||||
import 'package:wonders/ui/common/app_backdrop.dart';
|
import 'package:wonders/ui/common/app_backdrop.dart';
|
||||||
import 'package:wonders/ui/common/app_icons.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/controls/locale_switcher.dart';
|
||||||
import 'package:wonders/ui/common/pop_navigator_underlay.dart';
|
import 'package:wonders/ui/common/pop_navigator_underlay.dart';
|
||||||
import 'package:wonders/ui/screens/home_menu/about_dialog_content.dart';
|
import 'package:wonders/ui/screens/home_menu/about_dialog_content.dart';
|
||||||
@ -58,22 +59,9 @@ class _HomeMenuState extends State<HomeMenu> {
|
|||||||
|
|
||||||
PopNavigatorUnderlay(),
|
PopNavigatorUnderlay(),
|
||||||
|
|
||||||
SafeArea(
|
AppHeader(
|
||||||
child: PaddedRow(
|
isTransparent: true,
|
||||||
padding: EdgeInsets.symmetric(
|
trailing: (_) => LocaleSwitcher(),
|
||||||
horizontal: $styles.insets.md,
|
|
||||||
vertical: $styles.insets.sm,
|
|
||||||
),
|
|
||||||
children: [
|
|
||||||
/// Back btn
|
|
||||||
BackBtn.close(
|
|
||||||
bgColor: Colors.transparent,
|
|
||||||
iconColor: $styles.colors.offWhite,
|
|
||||||
),
|
|
||||||
Spacer(),
|
|
||||||
LocaleSwitcher()
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
|
|
||||||
/// Content
|
/// Content
|
||||||
|
@ -134,7 +134,6 @@ class _PhotoGalleryState extends State<PhotoGallery> {
|
|||||||
if (value.isEmpty) {
|
if (value.isEmpty) {
|
||||||
return Center(child: AppLoadingIndicator());
|
return Center(child: AppLoadingIndicator());
|
||||||
}
|
}
|
||||||
|
|
||||||
Size imgSize = context.isLandscape
|
Size imgSize = context.isLandscape
|
||||||
? Size(context.widthPx * .5, context.heightPx * .66)
|
? Size(context.widthPx * .5, context.heightPx * .66)
|
||||||
: Size(context.widthPx * .66, context.heightPx * .5);
|
: Size(context.widthPx * .66, context.heightPx * .5);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user